Mercurial > repos > saket-choudhary > mutationassessor_web
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mutationassesor_web/mutation_assesor.py Tue Oct 07 19:40:29 2014 -0400 @@ -0,0 +1,66 @@ +#!/usr/bin/env python +import sys +import requests +import os +import argparse +import re +import csv +import StringIO +__url__ = 'http://mutationassessor.org/' + + +def stop_err(msg, err=1): + sys.stderr.write('%s\n' % msg) + sys.exit(err) + + +def main_web(args): + assert os.path.exists(args.input) + with open(args.input) as f: + contents = f.read().strip() + if args.hg19 is True and args.protein is True: + stop_err('--hg19 option conflicts with --protein') + if args.protein is False: + ## Replace tabs/space with commas + re.sub('[\t\s]+', ',', contents) + if args.hg19: + ## Append hg19 to each line + lines = contents.split('\n') + contents = ('\n').join( + map((lambda x: 'hg19,' + x), + lines)) + + payload = {'vars': contents, 'tableQ': 1} + request = requests.post(__url__, data=payload) + response = request.text + if request.status_code != requests.codes.ok: + stop_err("""Error retrieving response from server. + Server returned %s . + Output: %s + """ % (request.status_code, response)) + r = StringIO.StringIO(response) + reader = csv.reader(r, delimiter=",") + csv.writer(open(args.output, "wb"), delimiter='\t').writerows(reader) + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description="Process input output paths") + parser.add_argument('--input', + type=str, + required=True, + help='Input file location') + parser.add_argument('--output', + type=str, + required=True, + help='Output file locatio') + parser.add_argument('--log', + type=str, + required=False) + parser.add_argument('--hg19', + action='store_true', + help="""Use hg19 build. + Appends 'hg19' to each input line""") + parser.add_argument('--protein', + action='store_true', + help='Inputs are in protein space') + args = parser.parse_args() + main_web(args)