# HG changeset patch
# User iuc
# Date 1722237211 0
# Node ID d8dc037e3c13194400df0cdab8aafaaef069d0d9
# Parent a88f077f1994ecf584b491e06beb7b44fd8055ce
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_metaphlan_database_downloader commit 3c1a0c4a94f78437c6df74b5348826e33e734a05
diff -r a88f077f1994 -r d8dc037e3c13 data_manager/data_manager_metaphlan_download.py
--- a/data_manager/data_manager_metaphlan_download.py Fri Jun 14 21:14:55 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-#!/usr/bin/env python
-#
-# Data manager for reference data for the MetaPhlAn Galaxy tools
-import argparse
-import json
-import subprocess
-from datetime import date
-from pathlib import Path
-
-
-# Utility functions for interacting with Galaxy JSON
-def read_input_json(json_fp):
- """Read the JSON supplied from the data manager tool
-
- Returns a tuple (param_dict,extra_files_path)
-
- 'param_dict' is an arbitrary dictionary of parameters
- input into the tool; 'extra_files_path' is the path
- to a directory where output files must be put for the
- receiving data manager to pick them up.
-
- NB the directory pointed to by 'extra_files_path'
- doesn't exist initially, it is the job of the script
- to create it if necessary.
-
- """
- with open(json_fp) as fh:
- params = json.load(fh)
- return (params['param_dict'],
- Path(params['output_data'][0]['extra_files_path']))
-
-
-# Utility functions for creating data table dictionaries
-#
-# Example usage:
-# >>> d = create_data_tables_dict()
-# >>> add_data_table(d,'my_data')
-# >>> add_data_table_entry(dict(dbkey='hg19',value='human'))
-# >>> add_data_table_entry(dict(dbkey='mm9',value='mouse'))
-# >>> print(json.dumps(d))
-def create_data_tables_dict():
- """Return a dictionary for storing data table information
-
- Returns a dictionary that can be used with 'add_data_table'
- and 'add_data_table_entry' to store information about a
- data table. It can be converted to JSON to be sent back to
- the data manager.
-
- """
- d = {
- 'data_tables': {}
- }
- return d
-
-
-def add_data_table(d, table):
- """Add a data table to the data tables dictionary
-
- Creates a placeholder for a data table called 'table'.
-
- """
- d['data_tables'][table] = []
-
-
-def add_data_table_entry(d, table, entry):
- """Add an entry to a data table
-
- Appends an entry to the data table 'table'. 'entry'
- should be a dictionary where the keys are the names of
- columns in the data table.
-
- Raises an exception if the named data table doesn't
- exist.
-
- """
- try:
- d['data_tables'][table].append(entry)
- except KeyError:
- raise Exception("add_data_table_entry: no table '%s'" % table)
-
-
-def download_metaphlan_db(data_tables, index, table_name, target_dp):
- """Download MetaPhlAn database
-
- Creates references to the specified file(s) on the Galaxy
- server in the appropriate data table (determined from the
- file extension).
-
- The 'data_tables' dictionary should have been created using
- the 'create_data_tables_dict' and 'add_data_table' functions.
-
- Arguments:
- data_tables: a dictionary containing the data table info
- index: version
- table_name: name of the table
- target_dp: directory to put copy or link to the data file
-
- """
- db_dp = target_dp / Path(index)
- cmd = "metaphlan --install --index %s --bowtie2db %s" % (index, db_dp)
- subprocess.check_call(cmd, shell=True)
- add_data_table_entry(
- data_tables,
- table_name,
- dict(
- dbkey=index,
- value='%s-%s' % (index, date.today().strftime("%d%m%Y")),
- name="MetaPhlAn clade-specific marker genes (%s)" % index,
- path=str(db_dp),
- db_version='SGB' if 'SGB' in index else 'legacy'))
-
-
-if __name__ == "__main__":
- print("Starting...")
-
- # Read command line
- parser = argparse.ArgumentParser(description='Download and build MetaPhlan database')
- parser.add_argument('--index', help="Version of the database")
- parser.add_argument('--json', help="Path to JSON file")
- args = parser.parse_args()
- print("args : %s" % args)
-
- # Read the input JSON
- json_fp = Path(args.json)
- params, target_dp = read_input_json(json_fp)
-
- # Make the target directory
- print("Making %s" % target_dp)
- target_dp.mkdir(parents=True, exist_ok=True)
-
- # Set up data tables dictionary
- data_tables = create_data_tables_dict()
- add_data_table(data_tables, "metaphlan_database_versioned")
-
- # Fetch data from specified data sources
- print("Download and build database")
- download_metaphlan_db(
- data_tables,
- args.index,
- "metaphlan_database_versioned",
- target_dp)
-
- # Write output JSON
- print("Outputting JSON")
- with open(json_fp, 'w') as fh:
- json.dump(data_tables, fh, sort_keys=True)
- print("Done.")
diff -r a88f077f1994 -r d8dc037e3c13 data_manager/data_manager_metaphlan_download.xml
--- a/data_manager/data_manager_metaphlan_download.xml Fri Jun 14 21:14:55 2024 +0000
+++ b/data_manager/data_manager_metaphlan_download.xml Mon Jul 29 07:13:31 2024 +0000
@@ -12,10 +12,32 @@
+
+
+
+
@@ -34,8 +56,11 @@
diff -r a88f077f1994 -r d8dc037e3c13 test-data/metaphlan_database_versioned.loc
--- a/test-data/metaphlan_database_versioned.loc Fri Jun 14 21:14:55 2024 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-#This is a sample file distributed with Galaxy that enables tools
-#to use a directory of metagenomics files.
-#file has this format (white space characters are TAB characters)
-#mpa_v30_CHOCOPhlAn_201901-20210420 MetaPhlAn clade-specific marker genes (mpa_v30_CHOCOPhlAn_201901) mpa_v30_CHOCOPhlAn_201901 /path/to/data SGB_or_legacy
diff -r a88f077f1994 -r d8dc037e3c13 test-data/metaphlan_database_versioned.loc.test
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/metaphlan_database_versioned.loc.test Mon Jul 29 07:13:31 2024 +0000
@@ -0,0 +1,4 @@
+#This is a sample file distributed with Galaxy that enables tools
+#to use a directory of metagenomics files.
+#file has this format (white space characters are TAB characters)
+#mpa_v30_CHOCOPhlAn_201901-20210420 MetaPhlAn clade-specific marker genes (mpa_v30_CHOCOPhlAn_201901) mpa_v30_CHOCOPhlAn_201901 /path/to/data SGB_or_legacy
diff -r a88f077f1994 -r d8dc037e3c13 tool_data_table_conf.xml.test
--- a/tool_data_table_conf.xml.test Fri Jun 14 21:14:55 2024 +0000
+++ b/tool_data_table_conf.xml.test Mon Jul 29 07:13:31 2024 +0000
@@ -1,6 +1,6 @@