# HG changeset patch # User galaxyp # Date 1481149626 18000 # Node ID 1af0f79877415b18cea15efce7ae6e18d4c0efca planemo upload for repository https://github.com/galaxyproteomics/tools-galaxyp/tree/master/tools/uniprotxml_downloader commit b4871f9659a924a68430aed3a93f4f9bad733fd6 diff -r 000000000000 -r 1af0f7987741 tool-data/uniprot_taxons.loc.sample --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tool-data/uniprot_taxons.loc.sample Wed Dec 07 17:27:06 2016 -0500 @@ -0,0 +1,14 @@ +Homo sapiens (Human) 9606 +Rattus norvegicus (Rat) 10116 +Mus musculus (Mouse) 10090 +Bos taurus (Bovine) 9913 +Sus scrofa (Pig) 9823 +Escherichia coli (strain K12) 83333 +Arabidopsis thaliana (Mouse-ear cress) 3702 +Caenorhabditis elegans (C.elegans) 6239 +Drosophila melanogaster (Fruit fly) 7227 +Saccharomyces cerevisiae (Baker's Yeast) 4932 +Canis familiaris (Dog) 9615 +Halobacterium salinarum (strain ATCC 700922 / JCM 11081 / NRC-1) 64091 +Apis mellifera (Honeybee) 7460 +Mycobacterium tuberculosis H37Rv (MTB) [Not complete proteome] 83332 diff -r 000000000000 -r 1af0f7987741 uniprotxml_downloader.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uniprotxml_downloader.py Wed Dec 07 17:27:06 2016 -0500 @@ -0,0 +1,78 @@ +#!/usr/bin/env python +""" +# +#------------------------------------------------------------------------------ +# University of Minnesota +# Copyright 2016, Regents of the University of Minnesota +#------------------------------------------------------------------------------ +# Author: +# +# James E Johnson +# +#------------------------------------------------------------------------------ +""" +import sys +import re +import optparse +import urllib + + +def __main__(): + # Parse Command Line + parser = optparse.OptionParser() + parser.add_option('-t', '--taxon', dest='taxon', action='append', default=[], help='NCBI taxon ID to download') + parser.add_option('-r', '--reviewed', dest='reviewed', help='file path for th downloaed uniprot xml') + parser.add_option('-o', '--output', dest='output', help='file path for th downloaed uniprot xml') + parser.add_option('-v', '--verbose', dest='verbose', action='store_true', default=False, help='Print UniProt Info') + parser.add_option('-d', '--debug', dest='debug', action='store_true', default=False, help='Turn on wrapper debugging to stderr') + (options, args) = parser.parse_args() + + taxids = options.taxon if options.taxon else ['9606'] + taxon_queries = ['taxonomy:"%s"' % taxid for taxid in taxids] + taxon_query = ' OR '.join(taxon_queries) + if options.output: + dest_path = options.output + else: + dest_path = "uniprot_%s.xml" % '_'.join(taxids) + reviewed = " reviewed:%s" % options.reviewed if options.reviewed else '' + url = 'http://www.uniprot.org/uniprot/?query=%s%s&force=yes&format=xml' % (taxon_query, reviewed) + if options.debug: + print >> sys.stderr, url + try: + (fname, msg) = urllib.urlretrieve(url, dest_path) + headers = {j[0]: j[1].strip() for j in [i.split(':', 1) for i in str(msg).strip().splitlines()]} + if 'Content-Length' in headers and headers['Content-Length'] == 0: + print >> sys.stderr, url + print >> sys.stderr, msg + exit(1) + elif True: + pass + else: + with open(dest_path, 'r') as contents: + while True: + line = contents.readline() + if options.debug: + print >> sys.stderr, line + if line is None or not line.startswith('> sys.stderr, "failed: Not a uniprot xml file" + exit(1) + + if options.verbose: + print >> sys.stdout, "NCBI Taxon ID:%s" % taxids + if 'X-UniProt-Release' in headers: + print >> sys.stdout, "UniProt-Release:%s" % headers['X-UniProt-Release'] + if 'X-Total-Results' in headers: + print >> sys.stdout, "Entries:%s" % headers['X-Total-Results'] + print >> sys.stdout, "%s" % url + except Exception, e: + print >> sys.stderr, "failed: %s" % e + + +if __name__ == "__main__": + __main__() diff -r 000000000000 -r 1af0f7987741 uniprotxml_downloader.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/uniprotxml_downloader.xml Wed Dec 07 17:27:06 2016 -0500 @@ -0,0 +1,92 @@ + + proteome + + python + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ^\d+(,\d+)*$ + + + + + + + + + + + + + + + + + + + + + + + 10.1093/nar/gku989 + + +