diff ecitmatch.py @ 0:c8a84e910e6b draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 15bcc5104c577b4b9c761f2854fc686c07ffa9db
author iuc
date Thu, 07 Jul 2016 02:40:48 -0400
parents
children 30150bd36c9a
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ecitmatch.py	Thu Jul 07 02:40:48 2016 -0400
@@ -0,0 +1,60 @@
+#!/usr/bin/env python
+import argparse
+import eutils
+
+
+if __name__ == '__main__':
+    parser = argparse.ArgumentParser(description='ECitMatch', epilog='')
+    parser.add_argument('--file', type=argparse.FileType('r'), help='Tabular file containing citations to search')
+
+    parser.add_argument('--key', nargs='*', help='Citation Key')
+    parser.add_argument('--journal_title', nargs='*', help='Journal Title')
+    parser.add_argument('--year', nargs='*', help='Year')
+    parser.add_argument('--volume', nargs='*', help='Volume')
+    parser.add_argument('--first_page', nargs='*', help='First Page')
+    parser.add_argument('--author_name', nargs='*', help='Author name')
+
+    # Emails
+    parser.add_argument('--user_email', help="User email")
+    parser.add_argument('--admin_email', help="Admin email")
+    args = parser.parse_args()
+
+    c = eutils.Client(user_email=args.user_email, admin_email=args.admin_email)
+
+    citations = []
+    if args.file is None:
+        for key, journal, year, volume, first_page, author_name in \
+                zip(args.key, args.journal_title, args.year, args.volume, args.first_page, args.author_name):
+            citations.append({
+                'key': key,
+                'journal': journal,
+                'year': year,
+                'volume': volume,
+                'first_page': first_page,
+                'author_name': author_name,
+            })
+    else:
+        for line in args.file:
+            line = line.strip()
+            if not line.startswith('#'):
+                tmp = line.split('\t')
+                try:
+                    citations.append({
+                        'journal': tmp[0],
+                        'year': tmp[1],
+                        'volume': tmp[2],
+                        'first_page': tmp[3],
+                        'author_name': tmp[4],
+                        'key': tmp[5],
+                    })
+                except KeyError:
+                    print "Could not parse line: %s" % line
+
+    payload = {
+        'db': 'pubmed',
+        'bdata': citations
+    }
+
+    results = c.citmatch(**payload)
+    # We get data back as pipe separated, so just replace those with tabs
+    print results.replace('|', '\t')