Mercurial > repos > iuc > ncbi_eutils_efetch
annotate esearch.py @ 7:796d694b41dc draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit b399ac5996d8225353d3abaff58eb986da5545d7"
| author | iuc | 
|---|---|
| date | Wed, 06 Oct 2021 08:00:25 +0000 | 
| parents | c09fcbe4b16a | 
| children | 
| rev | line source | 
|---|---|
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 1 #!/usr/bin/env python | 
| 1 
0fc65a60436f
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit a4b0969b33a68a0ea9ba12291f6694aec24f13ed
 iuc parents: 
0diff
changeset | 2 | 
| 
0fc65a60436f
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit a4b0969b33a68a0ea9ba12291f6694aec24f13ed
 iuc parents: 
0diff
changeset | 3 import argparse | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 4 import json | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 5 import logging | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 6 | 
| 1 
0fc65a60436f
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit a4b0969b33a68a0ea9ba12291f6694aec24f13ed
 iuc parents: 
0diff
changeset | 7 | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 8 import eutils | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 9 | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 10 | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 11 logging.basicConfig(level=logging.INFO) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 12 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 13 | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 14 if __name__ == '__main__': | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 15 parser = argparse.ArgumentParser(description='ESearch', epilog='') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 16 parser.add_argument('db', help='Database to use') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 17 parser.add_argument('term', help='Query') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 18 parser.add_argument('--history_file', help='Filter existing history') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 19 parser.add_argument('--datetype', help='Date type') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 20 parser.add_argument('--reldate', help='In past N days') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 21 parser.add_argument('--mindate', help='Minimum date') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 22 parser.add_argument('--maxdate', help='maximum date') | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 23 # History | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 24 parser.add_argument('--history_out', action="store_true", help='Output history file') | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 25 parser.add_argument('--user_email', help="User email") | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 26 parser.add_argument('--admin_email', help="Admin email") | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 27 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 28 parser.add_argument('--version', action='version', version=eutils.Client.getVersion(), help='Version (reports Biopython version)') | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 29 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 30 # Output | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 31 parser.add_argument('--retmode', help='Retmode') | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 32 parser.add_argument('--rettype', help='Rettype') | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 33 parser.add_argument('--retstart', type=int, default=0, help='Retstart - Starting rec number (0)') | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 34 parser.add_argument('--retmax', type=int, default=20, help='Retmax - max number of recs returned (20, max 100000)') | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 35 | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 36 args = parser.parse_args() | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 37 | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 38 c = eutils.Client(history_file=args.history_file, user_email=args.user_email, admin_email=args.admin_email) | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 39 | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 40 max_retmax = 100000 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 41 min_retmax = 1 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 42 max = max(min(args.retmax, max_retmax), min_retmax) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 43 | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 44 payload = { | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 45 'db': args.db, | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 46 'term': args.term, | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 47 } | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 48 if args.history_file is not None: | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 49 payload.update(c.get_history()) | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 50 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 51 # if args.history_out is not None: | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 52 if args.history_out: | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 53 payload['usehistory'] = 'y' | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 54 | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 55 payload['retmode'] = args.retmode | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 56 | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 57 for attr in ('datetype', 'reldate', 'mindate', 'maxdate', 'rettype', 'retmax', 'retstart'): | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 58 if getattr(args, attr, None) is not None: | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 59 payload[attr] = getattr(args, attr) | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 60 | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 61 logging.info("Payload used for query:" + json.dumps(payload, indent=4)) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 62 | 
| 0 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 63 results = c.search(**payload) | 
| 
71bcf87a7031
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
 iuc parents: diff
changeset | 64 | 
| 3 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 65 # We're going to infer that rettype being uilist means convert to text format (which esearch does not do) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 66 if args.retmode == 'text': | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 67 ids = c.xmlstring2UIlist(results) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 68 for id in ids: | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 69 print(id) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 70 elif args.retmode == 'json': | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 71 json_data = c.jsonstring2jsondata(results) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 72 print(json.dumps(json_data, indent=4)) | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 73 else: | 
| 
c09fcbe4b16a
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit dae34e5e182b4cceb808d7353080f14aa9a78ca9"
 iuc parents: 
1diff
changeset | 74 print(results) | 
