annotate mutationassesor_web/mutation_assesor.py @ 0:e51722489ddb draft default tip

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