annotate data_manager/data_manager.py @ 1:58bcd38cecb6 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit 2db6284f6077d80d05227180a809b921b4975c60"
author iuc
date Sun, 22 Nov 2020 18:02:48 +0000
parents c25855a79671
children 5408a9225788
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
1 import argparse
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
2 import json
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
3 import os
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
4 import shutil
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
5 import tarfile
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
6 try:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
7 # For Python 3.0 and later
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
8 from urllib.request import Request, urlopen
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
9 except ImportError:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
10 # Fall back to Python 2 imports
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
11 from urllib2 import Request, urlopen
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
12
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
13 ZENODO = {
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
14 "mitos": "2683856",
1
58bcd38cecb6 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit 2db6284f6077d80d05227180a809b921b4975c60"
iuc
parents: 0
diff changeset
15 "mitos2": "4284483"
0
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
16 }
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
17 NAMES = {
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
18 "mitos1-refdata": "RefSeq39 + MiTFi tRNA models",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
19 "refseq39": "RefSeq39 (equivalent to MITOS1 data)",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
20 "refseq63m": "RefSeq63 Metazoa",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
21 "refseq63f": "RefSeq63 Fungi",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
22 "refseq63o": "RefSeq63 Opisthokonta",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
23 "refseq89m": "RefSeq89 Metazoa",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
24 "refseq89f": "RefSeq89 Fungi",
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
25 "refseq89o": "RefSeq89 Opisthokonta"
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
26 }
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
27
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
28
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
29 def url_download(tpe, db, workdir):
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
30 """
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
31 download http://ab.inf.uni-tuebingen.de/data/software/megan6/download/FNAME
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
32 to workdir
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
33 and unzip
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
34
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
35 return the name of the resulting dir
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
36 """
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
37 tarfname = os.path.join(workdir, db + ".tar.bz")
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
38 if not os.path.exists(workdir):
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
39 os.makedirs(workdir)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
40 src = None
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
41 dst = None
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
42 try:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
43 req = Request("https://zenodo.org/record/{zenodoid}/files/{db}.tar.bz2?download=1".format(zenodoid=ZENODO[tpe], db=db))
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
44 src = urlopen(req)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
45 with open(tarfname, 'wb') as dst:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
46 while True:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
47 chunk = src.read(2**10)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
48 if chunk:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
49 dst.write(chunk)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
50 else:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
51 break
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
52 finally:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
53 if src:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
54 src.close()
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
55 with tarfile.open(tarfname, "r:bz2") as tar:
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
56 dirname = tar.getnames()[0]
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
57 tar.extractall(workdir)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
58 os.remove(tarfname)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
59 return dirname
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
60
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
61
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
62 def main(tpe, db, outjson):
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
63 workdir = os.getcwd()
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
64
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
65 path = url_download(tpe, db, workdir)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
66
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
67 data_manager_entry = {}
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
68 data_manager_entry['value'] = db
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
69 data_manager_entry['name'] = NAMES[db]
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
70 data_manager_entry['type'] = tpe
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
71 data_manager_entry['path'] = path
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
72 data_manager_json = dict(data_tables=dict(mitos=data_manager_entry))
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
73
1
58bcd38cecb6 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit 2db6284f6077d80d05227180a809b921b4975c60"
iuc
parents: 0
diff changeset
74 with open(outjson) as fh:
58bcd38cecb6 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit 2db6284f6077d80d05227180a809b921b4975c60"
iuc
parents: 0
diff changeset
75 params = json.load(fh)
0
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
76 target_directory = params['output_data'][0]['extra_files_path']
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
77 os.mkdir(target_directory)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
78 # output_path = os.path.abspath(os.path.join(os.getcwd(), 'mitos'))
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
79 shutil.move(os.path.join(workdir, path), target_directory)
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
80 with open(outjson, 'w') as fh:
1
58bcd38cecb6 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit 2db6284f6077d80d05227180a809b921b4975c60"
iuc
parents: 0
diff changeset
81 json.dump(data_manager_json, fh, sort_keys=True)
0
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
82
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
83
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
84 if __name__ == '__main__':
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
85 parser = argparse.ArgumentParser(description='Create data manager json.')
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
86 parser.add_argument('--out', action='store', help='JSON filename')
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
87 parser.add_argument('--type', action='store', help='mitos version')
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
88 parser.add_argument('--db', action='store', help='db name')
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
89 args = parser.parse_args()
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
90
c25855a79671 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mitos commit abf54c57544c5a08701163fb18a15877757d753e"
iuc
parents:
diff changeset
91 main(args.type, args.db, args.out)