annotate mutationassesor_web/mutation_assesor.py @ 3:f556d221daa2 draft

Uploaded
author saketkc
date Mon, 14 Apr 2014 14:01:35 -0400
parents
children ef0e61eded84
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
1 #!/usr/bin/env python
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
2 import sys
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
3 import requests
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
4 import os
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
5 import argparse
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
6 import re
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
7
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
8 __url__ = 'http://mutationassessor.org/'
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
9
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
10
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
11 def stop_err(msg, err=1):
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
12 sys.stderr.write('%s\n' % msg)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
13 sys.exit(err)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
14
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
15
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
16 def main_web(args):
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
17 assert os.path.exists(args.input)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
18 with open(args.input) as f:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
19 contents = f.read().strip()
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
20 if args.hg19 is True and args.protein is True:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
21 stop_err('--hg19 option conflicts with --protein')
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
22 if args.protein is False:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
23 ## Replace tabs/space with commas
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
24 re.sub('[\t\s]+', ',', contents)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
25 if args.hg19:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
26 ## Append hg19 to each line
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
27 lines = contents.split('\n')
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
28 contents = ('\n').join(
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
29 map((lambda x: 'hg19,' + x),
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
30 lines))
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
31
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
32 payload = {'vars': contents, 'tableQ': 1}
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
33 request = requests.post(__url__, data=payload)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
34 response = request.text
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
35 if request.status_code != requests.codes.ok:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
36 stop_err("""Error retrieving response from server.
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
37 Server returned %s .
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
38 Output: %s
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
39 """ % (request.status_code, response))
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
40 with open(args.output, 'wb') as fp:
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
41 fp.write(response)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
42
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
43 if __name__ == '__main__':
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
44 parser = argparse.ArgumentParser(description="Process input output paths")
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
45 parser.add_argument('--input',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
46 type=str,
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
47 required=True,
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
48 help='Input file location')
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
49 parser.add_argument('--output',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
50 type=str,
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
51 required=True,
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
52 help='Output file locatio')
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
53 parser.add_argument('--log',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
54 type=str,
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
55 required=False)
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
56 parser.add_argument('--hg19',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
57 action='store_true',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
58 help="""Use hg19 build.
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
59 Appends 'hg19' to each input line""")
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
60 parser.add_argument('--protein',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
61 action='store_true',
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
62 help='Inputs are in protein space')
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
63 args = parser.parse_args()
f556d221daa2 Uploaded
saketkc
parents:
diff changeset
64 main_web(args)