annotate data_manager/data_manager_humann2_download.py @ 2:6112a571f012 draft

planemo upload for repository https://github.com/ASaiM/galaxytools/tree/master/data_managers/data_manager_humann2_database_downloader commit f474a24a52dcda7fb6681869e24f566d28f1e457
author iuc
date Fri, 23 Jun 2017 06:00:47 -0400
parents 048593e41359
children 9244804f69a7
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 """
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
41 params = json.loads(open(jsonfile).read())
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
42 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
43 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
44
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 # 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
47 #
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 # 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
49 # >>> 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
50 # >>> 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
51 # >>> 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
52 # >>> add_data_table_entry(dict(dbkey='mm9',value='mouse'))
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 # >>> print str(json.dumps(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
54 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
55 """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
56
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 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
58 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
59 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
60 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
61
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 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
64 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
65 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
66
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 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
69 """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
70
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 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
72
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 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
75
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 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
78 """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
79
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 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
81 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
82 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
83
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 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
85 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
86
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 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
89 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
90 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
91 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
92
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 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
95 """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
96
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 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
98 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
99 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
100
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 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
102 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
103
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 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
105 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
106 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
107 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
108 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
109 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
110
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 value = "%s-%s-%s" % (database, build, datetime.date.today().isoformat())
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
113 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
114 build_target_dir = os.path.join(db_target_dir, 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
115 os.makedirs(build_target_dir)
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
116 cmd = "humann2_databases --download %s %s %s --update-config no" % (
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")
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
175 print(str(json.dumps(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
176 open(jsonfile, 'wb').write(json.dumps(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
177 print("Done.")