annotate data_manager/data_manager.py @ 5:ba3aab283a68 draft

planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit c529846e9c5cf125d11dd8d4f843cfadf7da3cec-dirty
author matthias
date Thu, 01 Nov 2018 15:46:01 -0400
parents 4b46c7c32984
children 2aadd067ea24
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
1 import argparse
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
2 import json
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
3 import os
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
4 import shutil
2
24c02af5fd77 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 6a91765e86532f90dc2bdaae50d9d1a87cf62d9d-dirty
matthias
parents: 1
diff changeset
5 import sys
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
6 import zipfile
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
7 try:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
8 # For Python 3.0 and later
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
9 from urllib.request import Request, urlopen
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
10 except ImportError:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
11 # Fall back to Python 2 imports
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
12 from urllib2 import Request, urlopen
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
13
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
14 FILE2NAME = {
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
15 "prot_acc2tax-June2018X1.abin.zip":"Protein accession to NCBI-taxonomy (June2018X1)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
16 "nucl_acc2tax-June2018.abin.zip":"Nucleotide accession to NCBI-taxonomy (June2018)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
17 "acc2interpro-June2018X.abin.zip":"Protein accession to InterPro (June2018X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
18 "acc2eggnog-Oct2016X.abin.zip":"Protein accession to eggNOG (Oct2016X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
19 "acc2seed-May2015XX.abin.zip":"Protein accession to SEED (May2015XX)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
20 "acc2kegg-Dec2017X1-ue.abin.zip":"Protein accession to KEGG (Dec2017X1). Only for use with the Ultimate Edition of MEGAN.",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
21 "SSURef_Nr99_132_tax_silva_to_NCBI_synonyms.map.gz":"SSURef_Nr99_132_tax_silva_to_NCBI_synonyms.map.gz",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
22 "SSURef_NR99_128_tax_silva_to_NCBI_synonyms.map.gz":"SSURef_NR99_128_tax_silva_to_NCBI_synonyms.map.gz",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
23 "prot_gi2tax-Aug2016X.bin.zip":"Protein accession to NCBI-taxonomy (Aug2016X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
24 "nucl_gi2tax-Aug2016.bin.zip":"Nucleotide accession to NCBI-taxonomy (Aug2016)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
25 "gi2eggnog-June2016X.bin.zip":"Protein accession to InterPro (June2016X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
26 "gi2interpro-June2016X.bin.zip":"Protein accession to eggNOG (June2016X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
27 "gi2seed-May2015X.bin.zip":"Protein accession to SEED (May2015X)",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
28 "gi2kegg-Aug2016X-ue.bin.zip":"Protein accession to KEGG (Aug2016X). Only for use with the Ultimate Edition of MEGAN."
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
29 }
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
30
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
31 FILE2TYPE = {
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
32 "prot_acc2tax-June2018X1.abin.zip":"acc2tax",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
33 "nucl_acc2tax-June2018.abin.zip":"acc2tax",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
34 "acc2interpro-June2018X.abin.zip":"acc2interpro",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
35 "acc2eggnog-Oct2016X.abin.zip":"acc2eggnog",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
36 "acc2seed-May2015XX.abin.zip":"acc2seed",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
37 "acc2kegg-Dec2017X1-ue.abin.zip":"acc2kegg",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
38 "SSURef_Nr99_132_tax_silva_to_NCBI_synonyms.map.gz":"syn2taxa",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
39 "SSURef_NR99_128_tax_silva_to_NCBI_synonyms.map.gz":"syn2taxa",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
40 "prot_gi2tax-Aug2016X.bin.zip":"gi2tax",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
41 "nucl_gi2tax-Aug2016.bin.zip":"gi2tax",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
42 "gi2eggnog-June2016X.bin.zip":"gi2eggnog",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
43 "gi2interpro-June2016X.bin.zip":"gi2interpro",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
44 "gi2seed-May2015X.bin.zip":"gi2seed-",
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
45 "gi2kegg-Aug2016X-ue.bin.zip":"gi2kegg"
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
46 }
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
47
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
48 def url_download(fname, workdir):
1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
49 """
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
50 download http://ab.inf.uni-tuebingen.de/data/software/megan6/download/FNAME
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
51 to workdir
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
52 and unzip zip file (not gz)
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
53
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
54 return the name of the resulting file
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
55 ie gz-file of extracted file in zip-file
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
56 """
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
57 file_path = os.path.join(workdir, fname)
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
58 if not os.path.exists(workdir):
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
59 os.makedirs(workdir)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
60 src = None
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
61 dst = None
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
62 try:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
63 req = Request("http://ab.inf.uni-tuebingen.de/data/software/megan6/download/"+fname)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
64 src = urlopen(req)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
65 with open(file_path, 'wb') as dst:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
66 while True:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
67 chunk = src.read(2**10)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
68 if chunk:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
69 dst.write(chunk)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
70 else:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
71 break
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
72 finally:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
73 if src:
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
74 src.close()
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
75 if zipfile.is_zipfile(file_path):
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
76 fh = zipfile.ZipFile(file_path, 'r')
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
77 else:
1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
78 return fname
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
79 fh.extractall(workdir)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
80 os.remove(file_path)
1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
81 unzipped = os.listdir(workdir)
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
82 assert len(unzipped) == 1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
83 return unzipped[0]
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
84
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
85 def main(fname, outjson):
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
86 workdir = os.path.join(os.getcwd(), 'megan_tools')
1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
87 path = url_download(fname, workdir)
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
88
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
89 data_manager_entry = {}
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
90 data_manager_entry['value'] = fname.split(".")[0]
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
91 data_manager_entry['name'] = FILE2NAME[fname]
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
92 data_manager_entry['type'] = FILE2TYPE[fname]
1
f7ad11d31098 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 0e93d2fb8e3c10949811b19ec3329bd1abbb73bf-dirty
matthias
parents: 0
diff changeset
93 data_manager_entry['path'] = path
2
24c02af5fd77 planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit 6a91765e86532f90dc2bdaae50d9d1a87cf62d9d-dirty
matthias
parents: 1
diff changeset
94
0
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
95 data_manager_json = dict(data_tables=dict(megan_tools=data_manager_entry))
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
96
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
97 params = json.loads(open(outjson).read())
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
98 target_directory = params['output_data'][0]['extra_files_path']
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
99 os.mkdir(target_directory)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
100 output_path = os.path.abspath(os.path.join(os.getcwd(), 'megan_tools'))
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
101 for filename in os.listdir(workdir):
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
102 shutil.move(os.path.join(output_path, filename), target_directory)
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
103 file(outjson, 'w').write(json.dumps(data_manager_json))
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
104
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
105
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
106 if __name__ == '__main__':
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
107 parser = argparse.ArgumentParser(description='Create data manager json.')
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
108 parser.add_argument('--out', action='store', help='JSON filename')
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
109 parser.add_argument('--file', action='store', help='Download filename')
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
110 args = parser.parse_args()
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
111
1f839ba466da planemo upload for repository https://github.com/bernt-matthias/mb-galaxy-tools/tree/master/data_managers/data_manager_megan_tools commit d7a7a198e8f8c9b95491f1520d478e7400a1f59c-dirty
matthias
parents:
diff changeset
112 main(args.file, args.out)