#!/usr/bin/env python3 # -*- coding: utf-8 -*- """ Created on Wed Aug 19 14:33:51 2020 @author: tanu """ #%% load packages import os,sys import subprocess import argparse import requests import re import time from bs4 import BeautifulSoup import pandas as pd from pandas.api.types import is_string_dtype from pandas.api.types import is_numeric_dtype #%% homedir homedir = os.path.expanduser('~') print('My homedir is:', homedir) #%% host = 'http://biosig.unimelb.edu.au' prediction_url = f"{host}/dynamut/prediction_list" print(prediction_url) #%% example params gene_name = 'gid' drug = 'streptomycin' datadir = homedir + '/git/Data' indir = datadir + '/' + drug + '/input' #outdir = datadir + '/' + drug + '/output' outdir = homedir + '/git/LSHTM_analysis/dynamut' # for example dynamut_temp_dir = outdir + '/dynamut_temp' if not os.path.exists(dynamut_temp_dir): print('Creating dynamut_temp in outdir', outdir ) os.makedirs(dynamut_temp_dir) batch_no = 1 out_url_file = dynamut_temp_dir + '/dynamut_result_url_batch_' + str(batch_no) + '.txt' #%% request calculation (no def) with open("/home/tanu/git/Data/streptomycin/input/gid_complex.pdb", "rb") as pdb_file, open ("/home/tanu/git/LSHTM_analysis/dynamut/snp_test2.csv") as mutation_list: files = {"wild": pdb_file , "mutation_list": mutation_list} body = {"chain": 'A' , "email": 'tanushree.tunstall@lshtm.ac.uk'} response = requests.post(prediction_url, files = files, data = body) print(response.status_code) if response.history: print('PASS: valid mutation submitted. Fetching result url') url_match = re.search('/dynamut/results_prediction/.+(?=")', response.text) url = host + url_match.group() print(url) #=============== # writing file: result urls #=============== out_url_file = dynamut_temp_dir + '/dynamut_result_url_batch_' + str(batch_no) + '.txt' print('Writing output url file:', out_url_file) myfile = open(out_url_file, 'a') myfile.write(url) myfile.close() #%% def request_calculation(pdb_file, mutation_list , chain , my_email , prediction_url , output_dir , gene_name , batch_no , out_url_file): """ Makes a POST request for a ligand affinity prediction. @param pdb_file: valid path to pdb structure @type string @param mutation_list: list of mutations (1 per line) of the format: {WT}{Mut} @type string @param chain: single-letter(caps) @type chr @param prediction_url: dynamut url for prediction @type string @return response object @type object """ #====================