Mercurial > repos > bernhardlutz > rest_tool
diff rest_tool.py @ 6:9ee84d9fd3a7 draft
Uploaded
author | bernhardlutz |
---|---|
date | Thu, 03 Apr 2014 06:50:57 -0400 |
parents | |
children | 3c1e862e8cd6 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rest_tool.py Thu Apr 03 06:50:57 2014 -0400 @@ -0,0 +1,61 @@ +#!/usr/bin/env python + +import sys, os +import argparse + +import readfile + +txt_output=["cids", "aids", "sids", "synonyms" ] +csv_output=["assaysummary"] +check_for_id_type=["cids", "aids", "sids"] + +def main(args): + url="http://pubchem.ncbi.nlm.nih.gov/rest/pug/"+args.type+"/" + if args.type == "assay": + url+="aid/" + elif args.type == "compound": + url+="cid/" + elif args.type == "substance": + url+="sid/" + if args.id_file is None: + idstring=str(args.id) + else: + idlist=readfile.getListFromFile(args.id_file) + idstring=",".join(idlist) + url+=idstring+"/"+args.operation+"/" + if args.operation in csv_output: + url+="csv" + elif args.operation in txt_output: + url+="txt" + else: + url+="xml" + if args.operation in check_for_id_type and not args.id_type is None: + url+="?"+args.operation+"_type="+args.id_type + print(url) + data=readfile.getresult(url) + outfile=args.outfile + outfile.write(data) + outfile.close() + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + parser.add_argument('--type', type=str, required=True, + help="That you want BioAssay Compund ...") + parser.add_argument('--id', type=str, + help="Specify the ID") + parser.add_argument('--operation', type=str, required=True, + help="Specify the operation") + parser.add_argument('--property-value', dest="property_value", type=str, + help="Specify the property") + parser.add_argument('--id-type', dest="id_type", type=str, + help="Specify the property") + parser.add_argument('--outfile', type=argparse.FileType('w'), required=True, + help="Specify one output file") + parser.add_argument('--id-file', dest="id_file", type=argparse.FileType('r'), + help="Specify a file with a list of ids, one per line") + if len(sys.argv) < 8: + print "Too few arguments..." + parser.print_help() + exit(1) + args = parser.parse_args() + main( args )