Mercurial > repos > chrisb > gap_all_glycan_tools
diff get_data/kegg_glycan/linkKEGG.py @ 0:89592faa2875 draft
Uploaded
author | chrisb |
---|---|
date | Wed, 23 Mar 2016 14:35:56 -0400 |
parents | |
children | 0a5e0df17054 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/get_data/kegg_glycan/linkKEGG.py Wed Mar 23 14:35:56 2016 -0400 @@ -0,0 +1,50 @@ +__author__ = 'cbarnett' +__license__ = "MIT" +__version = "0.3" +# http://www.kegg.jp/kegg/rest/keggapi.html + + +def linked_entries_from_kegg(targetdb="glycan", sourcedb="pathway"): + """ + :param targetdb: + :param sourcedb: + :return: string of linked entries + """ + import urllib2 + + uri = 'http://rest.kegg.jp/link/' + fulluri = uri + targetdb + "/" + sourcedb + try: + response = urllib2.urlopen(fulluri).read() + except Exception as e: + raise urllib2.HTTPError(e.url, e.code, e.msg, e.hdrs, e.fp) + if str(response.strip()) == "": + return "" + return response + + +if __name__ == "__main__": + from optparse import OptionParser + + usage = "usage: python %prog [options]\n" + parser = OptionParser(usage=usage) + parser.add_option("-t", action="store", type="string", dest="t", default="glycan", + help="target db name pathway | brite | module | ko | genome | <org> | compound | glycan | reaction | rpair | rclass | enzyme | disease | drug | dgroup | environ") + parser.add_option("-s", action="store", type="string", dest="s", default="pathway", + help="source db name or db entry e.g. map00010") + parser.add_option("-o", action="store", type="string", dest="o", default="linked_entries.txt", + help="linked entries output in text format") + (options, args) = parser.parse_args() + try: + outstream = file(options.o, 'w') + except Exception as e: + raise IOError(e, "the output file cannot be opened. Use -h flag for help") + linked = linked_entries_from_kegg(targetdb=options.t, sourcedb=options.s) + try: + outstream.write(linked) + except Exception as e: + raise IOError(e, "cannot open output files. -h flag for help") + finally: + outstream.close() + +