comparison chasm_webservice/chasm_webservice.py @ 7:af0c2fa5bc76 draft

Uploaded
author saketkc
date Wed, 16 Jul 2014 20:29:51 -0400
parents d88b17f16b14
children
comparison
equal deleted inserted replaced
6:d88b17f16b14 7:af0c2fa5bc76
38 import os 38 import os
39 sheet_map = {0: 'Variant_Analysis.csv', 39 sheet_map = {0: 'Variant_Analysis.csv',
40 1: 'Amino_Acid_Level_Analysis.csv', 2: 'Gene_Level_Analysis.csv'} 40 1: 'Amino_Acid_Level_Analysis.csv', 2: 'Gene_Level_Analysis.csv'}
41 41
42 42
43 def retry(ExceptionToCheck, tries=4, delay=3, backoff=2, logger=None): 43 def retry(ExceptionToCheck, tries=40000, delay=3, backoff=2, logger=None):
44 '''Retry calling the decorated function using an exponential backoff. 44 '''Retry calling the decorated function using an exponential backoff.
45 45
46 http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/ 46 http://www.saltycrane.com/blog/2009/11/trying-out-retry-decorator-python/
47 original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry 47 original from: http://wiki.python.org/moin/PythonDecoratorLibrary#Retry
48 48
148 request = requests.post( 148 request = requests.post(
149 __URL__, data=stripped_data, files=file_payload) 149 __URL__, data=stripped_data, files=file_payload)
150 else: 150 else:
151 request = requests.post( 151 request = requests.post(
152 __URL__, data=stripped_data, files=dict(foo='bar')) 152 __URL__, data=stripped_data, files=dict(foo='bar'))
153 print request.text
153 job_id = json.loads(request.text)['jobid'] 154 job_id = json.loads(request.text)['jobid']
154 return job_id 155 return job_id
155 156
156 @retry(requests.exceptions.HTTPError) 157 @retry(requests.exceptions.HTTPError)
157 def zip_exists(self, job_id): 158 def zip_exists(self, job_id):
159 print job_id
158 url = 'http://www.cravat.us/results/%s/%s.zip' % (job_id, job_id) 160 url = 'http://www.cravat.us/results/%s/%s.zip' % (job_id, job_id)
159 zip_download_request = requests.request('GET', url) 161 zip_download_request = requests.request('GET', url)
160 if zip_download_request.status_code == 404: 162 if zip_download_request.status_code == 404:
161 raise requests.HTTPError() 163 raise requests.HTTPError()
162 else: 164 else:
241 dest='variant_analysis_out', 243 dest='variant_analysis_out',
242 type=str, required=True) 244 type=str, required=True)
243 parser.add_argument('--amino_acid_level_analysis_out', 245 parser.add_argument('--amino_acid_level_analysis_out',
244 dest='amino_acid_level_analysis_out', 246 dest='amino_acid_level_analysis_out',
245 type=str, required=True,) 247 type=str, required=True,)
248 parser.add_argument('--codon_level_analysis_out',
249 dest='codon_level_analysis_out',
250 type=str, required=True,)
246 parser.add_argument('--error_file', dest='error_file_out', 251 parser.add_argument('--error_file', dest='error_file_out',
247 type=str, required=True) 252 type=str, required=True)
248 parser.add_argument('--snv_box_out', dest='snv_box_out', 253 parser.add_argument('--snv_box_out', dest='snv_box_out',
249 type=str, required=False) 254 type=str, required=False)
250 parser.add_argument('--snv_features', dest='snv_features_out', 255 parser.add_argument('--snv_features', dest='snv_features_out',
264 file_map = {'Amino_Acid_Level_Analysis.Result.tsv': args.amino_acid_level_analysis_out, 269 file_map = {'Amino_Acid_Level_Analysis.Result.tsv': args.amino_acid_level_analysis_out,
265 'SNVBox.tsv': args.snv_box_out, 270 'SNVBox.tsv': args.snv_box_out,
266 'Variant_Analysis.Result.tsv': args.variant_analysis_out, 271 'Variant_Analysis.Result.tsv': args.variant_analysis_out,
267 'Gene_Level_Analysis.Result.tsv': args.gene_analysis_out, 272 'Gene_Level_Analysis.Result.tsv': args.gene_analysis_out,
268 'SnvGet Feature Description.xls': args.snv_features_out, 273 'SnvGet Feature Description.xls': args.snv_features_out,
269 'error.txt': args.error_file_out 274 'error.txt': args.error_file_out,
275 'Codon_Level_Analysis.Result.tsv': args.codon_level_analysis_out,
270 } 276 }
271 url = chasm_web.zip_exists(job_id) 277 url = chasm_web.zip_exists(job_id)
272 download = chasm_web.download_zip(url, job_id) 278 download = chasm_web.download_zip(url, job_id)
273 if download: 279 if download:
274 chasm_web.move_files(file_map=file_map) 280 chasm_web.move_files(file_map=file_map)