annotate data_manager/data_manager_humann2_download.py @ 5:ff9cf22838d4 draft default tip

"planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
author iuc
date Sun, 22 Nov 2020 12:50:08 +0000
parents 9244804f69a7
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
1 #!/usr/bin/env python
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
2 #
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
3 # Data manager for reference data for the 'humann2' Galaxy tools
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
4 import datetime
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
5 import json
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
6 import optparse
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
7 import os
2
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
8 import shutil
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
9 import subprocess
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
10 import sys
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
11
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
12
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
13 HUMANN2_REFERENCE_DATA = {
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
14 "full": "Full",
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
15 "DEMO": "Demo",
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
16 "uniref50_diamond": "Full UniRef50",
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
17 "uniref50_ec_filtered_diamond": "EC-filtered UniRef50",
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
18 "uniref50_GO_filtered_rapsearch2": "GO filtered UniRef50 for rapsearch2",
2
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
19 "uniref90_diamond": "Full UniRef90",
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
20 "uniref90_ec_filtered_diamond": "EC-filtered UniRef90",
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
21 "DEMO_diamond": "Demo"
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
22 }
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
23
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
24
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
25 # Utility functions for interacting with Galaxy JSON
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
26 def read_input_json(jsonfile):
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
27 """Read the JSON supplied from the data manager tool
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
28
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
29 Returns a tuple (param_dict,extra_files_path)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
30
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
31 'param_dict' is an arbitrary dictionary of parameters
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
32 input into the tool; 'extra_files_path' is the path
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
33 to a directory where output files must be put for the
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
34 receiving data manager to pick them up.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
35
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
36 NB the directory pointed to by 'extra_files_path'
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
37 doesn't exist initially, it is the job of the script
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
38 to create it if necessary.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
39
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
40 """
5
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
41 with open(jsonfile) as fh:
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
42 params = json.load(fh)
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
43 return (params['param_dict'],
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
44 params['output_data'][0]['extra_files_path'])
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
45
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
46
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
47 # Utility functions for creating data table dictionaries
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
48 #
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
49 # Example usage:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
50 # >>> d = create_data_tables_dict()
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
51 # >>> add_data_table(d,'my_data')
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
52 # >>> add_data_table_entry(dict(dbkey='hg19',value='human'))
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
53 # >>> add_data_table_entry(dict(dbkey='mm9',value='mouse'))
5
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
54 # >>> print(json.dumps(d))
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
55 def create_data_tables_dict():
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
56 """Return a dictionary for storing data table information
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
57
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
58 Returns a dictionary that can be used with 'add_data_table'
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
59 and 'add_data_table_entry' to store information about a
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
60 data table. It can be converted to JSON to be sent back to
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
61 the data manager.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
62
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
63 """
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
64 d = {}
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
65 d['data_tables'] = {}
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
66 return d
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
67
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
68
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
69 def add_data_table(d, table):
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
70 """Add a data table to the data tables dictionary
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
71
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
72 Creates a placeholder for a data table called 'table'.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
73
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
74 """
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
75 d['data_tables'][table] = []
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
76
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
77
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
78 def add_data_table_entry(d, table, entry):
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
79 """Add an entry to a data table
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
80
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
81 Appends an entry to the data table 'table'. 'entry'
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
82 should be a dictionary where the keys are the names of
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
83 columns in the data table.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
84
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
85 Raises an exception if the named data table doesn't
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
86 exist.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
87
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
88 """
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
89 try:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
90 d['data_tables'][table].append(entry)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
91 except KeyError:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
92 raise Exception("add_data_table_entry: no table '%s'" % table)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
93
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
94
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
95 def download_humann2_db(data_tables, table_name, database, build, target_dir):
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
96 """Download HUMAnN2 database
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
97
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
98 Creates references to the specified file(s) on the Galaxy
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
99 server in the appropriate data table (determined from the
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
100 file extension).
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
101
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
102 The 'data_tables' dictionary should have been created using
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
103 the 'create_data_tables_dict' and 'add_data_table' functions.
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
104
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
105 Arguments:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
106 data_tables: a dictionary containing the data table info
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
107 table_name: name of the table
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
108 database: database to download (chocophlan or uniref)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
109 build: build of the database to download
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
110 target_dir: directory to put copy or link to the data file
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
111
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
112 """
5
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
113 value = "{}-{}-{}".format(database, build, datetime.date.today().isoformat())
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
114 db_target_dir = os.path.join(target_dir, database)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
115 build_target_dir = os.path.join(db_target_dir, build)
5
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
116 cmd = "humann2_databases --download {} {} {} --update-config no".format(
2
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
117 database,
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
118 build,
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
119 db_target_dir)
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
120 subprocess.check_call(cmd, shell=True)
2
6112a571f012 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
iuc
parents: 0
diff changeset
121 shutil.move(os.path.join(db_target_dir, database), build_target_dir)
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
122 add_data_table_entry(
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
123 data_tables,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
124 table_name,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
125 dict(
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
126 dbkey=build,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
127 value=value,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
128 name=HUMANN2_REFERENCE_DATA[build],
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
129 path=build_target_dir))
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
130
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
131
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
132 if __name__ == "__main__":
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
133 print("Starting...")
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
134
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
135 # Read command line
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
136 parser = optparse.OptionParser(description='Download HUMAnN2 database')
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
137 parser.add_option('--database', help="Database name")
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
138 parser.add_option('--build', help="Build of the database")
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
139 options, args = parser.parse_args()
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
140 print("args : %s" % args)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
141
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
142 # Check for JSON file
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
143 if len(args) != 1:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
144 sys.stderr.write("Need to supply JSON file name")
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
145 sys.exit(1)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
146
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
147 jsonfile = args[0]
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
148
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
149 # Read the input JSON
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
150 params, target_dir = read_input_json(jsonfile)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
151
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
152 # Make the target directory
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
153 print("Making %s" % target_dir)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
154 os.mkdir(target_dir)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
155
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
156 # Set up data tables dictionary
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
157 data_tables = create_data_tables_dict()
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
158
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
159 if options.database == "chocophlan":
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
160 table_name = 'humann2_nucleotide_database'
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
161 else:
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
162 table_name = 'humann2_protein_database'
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
163 add_data_table(data_tables, table_name)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
164
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
165 # Fetch data from specified data sources
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
166 download_humann2_db(
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
167 data_tables,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
168 table_name,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
169 options.database,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
170 options.build,
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
171 target_dir)
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
172
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
173 # Write output JSON
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
174 print("Outputting JSON")
5
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
175 with open(jsonfile, 'w') as fh:
ff9cf22838d4 "planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 02d2967f77e3fa5a18aea63dc84aa9ab418dc165"
iuc
parents: 4
diff changeset
176 json.dump(data_tables, fh, sort_keys=True)
0
048593e41359 planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit 3e179ac4ab2051414320b3811540dfc9b0966061
iuc
parents:
diff changeset
177 print("Done.")