comparison ecitmatch.py @ 0:1b4ac594d02a draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/ncbi_entrez_eutils commit 780c9984a9c44d046aadf1e316a668d1e53aa1f0
author iuc
date Sat, 31 Oct 2015 12:44:54 -0400
parents
children e269b3b5185b
comparison
equal deleted inserted replaced
-1:000000000000 0:1b4ac594d02a
1 #!/usr/bin/env python
2 import argparse
3 import eutils
4
5
6 if __name__ == '__main__':
7 parser = argparse.ArgumentParser(description='ECitMatch', epilog='')
8 parser.add_argument('--file', help='Tabular file containing citations to search')
9
10 parser.add_argument('--key', nargs='*', help='Citation Key')
11 parser.add_argument('--journal_title', nargs='*', help='Journal Title')
12 parser.add_argument('--year', nargs='*', help='Year')
13 parser.add_argument('--volume', nargs='*', help='Volume')
14 parser.add_argument('--first_page', nargs='*', help='First Page')
15 parser.add_argument('--author_name', nargs='*', help='Author name')
16
17 # Emails
18 parser.add_argument('--user_email', help="User email")
19 parser.add_argument('--admin_email', help="Admin email")
20 args = parser.parse_args()
21
22 c = eutils.Client(user_email=args.user_email, admin_email=args.admin_email)
23
24 citations = []
25 if args.file is None:
26 for key, journal, year, volume, first_page, author_name in \
27 zip(args.key, args.journal_title, args.year, args.volume, args.first_page, args.author_name):
28 citations.append({
29 'key': key,
30 'journal': journal,
31 'year': year,
32 'volume': volume,
33 'first_page': first_page,
34 'author_name': author_name,
35 })
36 else:
37 for line in args.file:
38 if not line.startswith('#'):
39 tmp = line.split('\t')
40 try:
41 citations.append({
42 'journal': tmp[0],
43 'year': tmp[1],
44 'volume': tmp[2],
45 'first_page': tmp[3],
46 'author_name': tmp[4],
47 'key': tmp[5],
48 })
49 except KeyError:
50 print "Could not parse line: %s" % line
51
52 payload = {
53 'db': 'pubmed',
54 'bdata': citations
55 }
56
57 results = c.citmatch(**payload)
58 # We get data back as pipe separated, so just replace those with tabs
59 print results.replace('|', '\t')