annotate fathmm/fathmm.py @ 0:fd66648ce5f9 draft default tip

Uploaded
author saket-choudhary
date Tue, 07 Oct 2014 19:25:07 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
1 import requests
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
2 import argparse
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
3 import os
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
4 import sys
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
5
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
6 __base_url__ = "http://supfam3.cs.bris.ac.uk/FATHMM/"
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
7 __submit_url__ = __base_url__ + "cgi-bin/submit.cgi"
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
8 __result_url__ = __base_url__ + "cgi-bin/"
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
9 __download_url__ = __base_url__ + "tmp/"
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
10 __type__="CANCER" ##Hidden field to show which type of variants we are processing
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
11
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
12
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
13 def stop_err(msg, err=1):
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
14 sys.stderr.write('%s\n' % msg)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
15 sys.exit(err)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
16
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
17 def main_web(args):
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
18 assert os.path.exists(args.input)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
19 with open(args.input) as f:
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
20 contents = f.read().strip()
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
21 threshold = -0.75
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
22 if (args.threshold):
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
23 threshold = float(args.threshold)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
24 data = {"weighted": __type__,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
25 "batch": contents,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
26 "threshold": threshold
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
27 }
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
28 response = requests.post(__submit_url__, data=data)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
29 if response.status_code!=200:
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
30 stop_err("Error processing request, got" + response.status_code)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
31 text = response.text
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
32 split_text = text.split("window.location = ")
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
33 try:
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
34 url = split_text[1]
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
35 url = url.split(";")[0]
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
36 url = url.split("session=")[1]
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
37 url = url.replace("'", "").replace("./","")
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
38 url = __download_url__ + url + ".tab"
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
39 except IndexError:
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
40 stop_err("Unable to parse result id")
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
41 response = requests.get(url)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
42 with open(args.output, 'wb') as fp:
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
43 fp.write(response.text)
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
44
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
45 if __name__ == '__main__':
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
46 parser = argparse.ArgumentParser(description="Process input output paths")
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
47 parser.add_argument('--input',
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
48 type=str,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
49 required=True,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
50 help='Input file location')
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
51 parser.add_argument('--output',
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
52 type=str,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
53 required=True,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
54 help='Output file location')
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
55 parser.add_argument('--threshold',
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
56 type=float,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
57 required=False,
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
58 help='Predictions with score less than threshold are possibly cancer causing')
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
59 args = parser.parse_args()
fd66648ce5f9 Uploaded
saket-choudhary
parents:
diff changeset
60 main_web(args)