Repository 'data_manager_mothur_toolsuite'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/data_manager_mothur_toolsuite

Changeset 4:0db22932bc39 (2021-06-25)
Previous changeset 3:9d09724f2bf1 (2020-11-22) Next changeset 5:f21e77139fb5 (2023-12-18)
Commit message:
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_mothur_toolsuite/ commit f845716f6ac93500f143a30abef97eaba406344e"
modified:
data_manager/data_manager_fetch_mothur_reference_data.xml
data_manager/fetch_mothur_reference_data.py
b
diff -r 9d09724f2bf1 -r 0db22932bc39 data_manager/data_manager_fetch_mothur_reference_data.xml
--- a/data_manager/data_manager_fetch_mothur_reference_data.xml Sun Nov 22 12:51:44 2020 +0000
+++ b/data_manager/data_manager_fetch_mothur_reference_data.xml Fri Jun 25 09:37:05 2021 +0000
[
@@ -1,8 +1,8 @@
 <?xml version="1.0"?>
-<tool id="data_manager_fetch_mothur_reference_data" name="Fetch Mothur toolsuite reference data" version="0.1.5" tool_type="manage_data" profile="19.05">
+<tool id="data_manager_fetch_mothur_reference_data" name="Fetch Mothur toolsuite reference data" version="0.2.1" tool_type="manage_data" profile="19.05">
     <description>Fetch and install reference data for Mothur</description>
     <requirements>
-        <requirement type="package" version="2.7">python</requirement>
+        <requirement type="package" version="3.8">python</requirement>
     </requirements>
     <command><![CDATA[
         python '$__tool_directory__/fetch_mothur_reference_data.py'
@@ -31,12 +31,14 @@
                     <option value="lookup_titanium">GS FLX Titanium lookup files</option>
                     <option value="lookup_gsflx">GSFLX lookup files</option>
                     <option value="lookup_gs20">GS20 lookup files</option>
+                    <option value="RDP_v18">RDP reference files (training set version 18)</option>
                     <option value="RDP_v16">RDP reference files (training set version 16)</option>
                     <option value="RDP_v14">RDP reference files (training set version 14)</option>
                     <option value="RDP_v10">RDP reference files (training set version 10)</option>
                     <option value="RDP_v9">RDP reference files (training set version 9)</option>
                     <option value="RDP_v7">RDP reference files (training set version 7)</option>
                     <option value="RDP_v6">RDP reference files (training set version 6)</option>
+                    <option value="silva_release_138.1">SILVA reference files (release 138.1)</option>
                     <option value="silva_release_128">SILVA reference files (release 128)</option>
                     <option value="silva_release_123">SILVA reference files (release 123)</option>
                     <option value="silva_release_119">SILVA reference files (release 119)</option>
@@ -93,6 +95,18 @@
             </output>
         </test>
         <test>
+            <param name="data_source|ref_data" value="RDP_v18"/>
+            <output name="out_file">
+                <assert_contents>
+                    <has_text text="16S rRNA RDP training set 18" />
+                    <has_text text="trainset18_062020.rdp.fasta" />
+                    <has_text text="trainset18_062020.rdp.tax" />
+                    <has_text text="trainset18_062020.pds.fasta" />
+                    <has_text text="trainset18_062020.pds.tax" />
+                </assert_contents>
+            </output>
+        </test>
+        <test>
             <param name="data_source|ref_data" value="RDP_v16"/>
             <output name="out_file">
                 <assert_contents>
b
diff -r 9d09724f2bf1 -r 0db22932bc39 data_manager/fetch_mothur_reference_data.py
--- a/data_manager/fetch_mothur_reference_data.py Sun Nov 22 12:51:44 2020 +0000
+++ b/data_manager/fetch_mothur_reference_data.py Fri Jun 25 09:37:05 2021 +0000
[
b'@@ -1,6 +1,7 @@\n-#!/usr/bin/env python\n+#!/usr/bin/env python3\n #\n # Data manager for reference data for the \'mothur_toolsuite\' Galaxy tools\n+import io\n import json\n import optparse\n import os\n@@ -8,7 +9,9 @@\n import sys\n import tarfile\n import tempfile\n-import urllib2\n+import urllib.error\n+import urllib.parse\n+import urllib.request\n import zipfile\n from functools import reduce\n \n@@ -38,6 +41,14 @@\n     },\n     # RDP reference files\n     # http://www.mothur.org/wiki/RDP_reference_files\n+    "RDP_v18": {\n+        "16S rRNA RDP training set 18":\n+            [\n+                "https://mothur.s3.us-east-2.amazonaws.com/wiki/trainset18_062020.rdp.tgz", ],\n+        "16S rRNA PDS training set 18":\n+            [\n+                "https://mothur.s3.us-east-2.amazonaws.com/wiki/trainset18_062020.pds.tgz", ],\n+    },\n     "RDP_v16": {\n         "16S rRNA RDP training set 16":\n         ["https://mothur.s3.us-east-2.amazonaws.com/wiki/trainset16_022016.rdp.tgz", ],\n@@ -76,6 +87,12 @@\n     },\n     # Silva reference files\n     # http://www.mothur.org/wiki/Silva_reference_files\n+    "silva_release_138.1": {\n+        "SILVA release 138.1":\n+            [\n+                "https://mothur.s3.us-east-2.amazonaws.com/wiki/silva.nr_v138_1.tgz",\n+                "https://mothur.s3.us-east-2.amazonaws.com/wiki/silva.seed_v138_1.tgz", ],\n+    },\n     "silva_release_128": {\n         "SILVA release 128":\n         ["https://mothur.s3.us-east-2.amazonaws.com/wiki/silva.nr_v128.tgz",\n@@ -230,14 +247,19 @@\n     Returns the name that the file is saved with.\n \n     """\n-    print("Downloading %s" % url)\n+    print(f"Downloading {url}")\n     if not target:\n         target = os.path.basename(url)\n     if wd:\n         target = os.path.join(wd, target)\n-    print("Saving to %s" % target)\n+    print(f"Saving to {target}")\n     with open(target, \'wb\') as fh:\n-        fh.write(urllib2.urlopen(url).read())\n+        url_h = urllib.request.urlopen(url)\n+        while True:\n+            buffer = url_h.read(io.DEFAULT_BUFFER_SIZE)\n+            if buffer == b"":\n+                break\n+            fh.write(buffer)\n     return target\n \n \n@@ -257,13 +279,13 @@\n \n     """\n     if not zipfile.is_zipfile(filen):\n-        print("%s: not ZIP formatted file")\n+        print(f"{filen}: not ZIP formatted file")\n         return [filen]\n     file_list = []\n     with zipfile.ZipFile(filen) as z:\n         for name in z.namelist():\n             if reduce(lambda x, y: x or name.startswith(y), IGNORE_PATHS, False):\n-                print("Ignoring %s" % name)\n+                print(f"Ignoring {name}")\n                 continue\n             if wd:\n                 target = os.path.join(wd, name)\n@@ -271,14 +293,14 @@\n                 target = name\n             if name.endswith(\'/\'):\n                 # Make directory\n-                print("Creating dir %s" % target)\n+                print(f"Creating dir {target}")\n                 try:\n                     os.makedirs(target)\n                 except OSError:\n                     pass\n             else:\n                 # Extract file\n-                print("Extracting %s" % name)\n+                print("Extracting {target}")\n                 try:\n                     os.makedirs(os.path.dirname(target))\n                 except OSError:\n@@ -286,7 +308,7 @@\n                 with open(target, \'wb\') as fh:\n                     fh.write(z.read(name))\n                 file_list.append(target)\n-    print("Removing %s" % filen)\n+    print(f"Removing {filen}")\n     os.remove(filen)\n     return file_list\n \n@@ -309,23 +331,23 @@\n     """\n     file_list = []\n     if not tarfile.is_tarfile(filen):\n-        print("%s: not TAR file")\n+        print(f"{filen}: not TAR file")\n         return [filen]\n     with tarfile.open(filen) as t:\n         for name in t.getnames():\n             # Check for unwanted files\n             if reduce(lambda x, y: x or name.startswith(y), IGNORE_PATHS, False):\n-                print("Ignoring %s" % name)\n+                pr'..b')\n     if ext == ".zip":\n         return unpack_zip_archive(filen, wd=wd)\n     elif ext == ".tgz":\n@@ -386,7 +408,7 @@\n     try:\n         return MOTHUR_FILE_TYPES[ext]\n     except KeyError:\n-        print("WARNING: unknown file type for " + filen + ", skipping")\n+        print(f"WARNING: unknown file type for {filen}, skipping")\n         return None\n \n \n@@ -419,26 +441,27 @@\n     """\n     # Make working dir\n     wd = tempfile.mkdtemp(suffix=".mothur", dir=os.getcwd())\n-    print("Working dir %s" % wd)\n+    print(f"Working dir {wd}")\n     # Iterate over all requested reference data URLs\n     for dataset in datasets:\n-        print("Handling dataset \'%s\'" % dataset)\n+        print(f"Handling dataset \'{dataset}\'")\n         for name in MOTHUR_REFERENCE_DATA[dataset]:\n             for f in fetch_files(MOTHUR_REFERENCE_DATA[dataset][name], wd=wd):\n                 type_ = identify_type(f)\n-                entry_name = "%s (%s)" % (os.path.splitext(os.path.basename(f))[0], name)\n-                print("%s\\t\\\'%s\'\\t.../%s" % (type_, entry_name, os.path.basename(f)))\n+                name_from_file = os.path.splitext(os.path.basename(f))[0]\n+                entry_name = f"{name_from_file} ({name})"\n+                print(f"{type_}\\t\\\'{entry_name}\'\\t.../{os.path.basename(f)}")\n                 if type_ is not None:\n                     # Move to target dir\n                     ref_data_file = os.path.basename(f)\n                     f1 = os.path.join(target_dir, ref_data_file)\n-                    print("Moving %s to %s" % (f, f1))\n-                    os.rename(f, f1)\n+                    print(f"Moving {f} to {f1}")\n+                    shutil.move(f, f1)\n                     # Add entry to data table\n-                    table_name = "mothur_%s" % type_\n+                    table_name = f"mothur_{type_}"\n                     add_data_table_entry(data_tables, table_name, dict(name=entry_name, value=ref_data_file))\n     # Remove working dir\n-    print("Removing %s" % wd)\n+    print(f"Removing {wd}")\n     shutil.rmtree(wd)\n \n \n@@ -454,7 +477,7 @@\n     files = []\n     for path in paths:\n         path = os.path.abspath(path)\n-        print("Examining \'%s\'..." % path)\n+        print(f"Examining \'{path}\'...")\n         if os.path.isfile(path):\n             # Store full path for file\n             files.append(path)\n@@ -493,21 +516,21 @@\n     for f in files:\n         type_ = identify_type(f)\n         if type_ is None:\n-            print("%s: unrecognised type, skipped" % f)\n+            print(f"{f}: unrecognised type, skipped")\n             continue\n         ref_data_file = os.path.basename(f)\n         target_file = os.path.join(target_dir, ref_data_file)\n         entry_name = "%s" % os.path.splitext(ref_data_file)[0]\n         if description:\n             entry_name += " (%s)" % description\n-        print("%s\\t\\\'%s\'\\t.../%s" % (type_, entry_name, ref_data_file))\n+        print(f"{type_}\\t\\\'{entry_name}\'\\t.../{ref_data_file}")\n         # Link to or copy the data\n         if link_to_data:\n             os.symlink(f, target_file)\n         else:\n             shutil.copyfile(f, target_file)\n         # Add entry to data table\n-        table_name = "mothur_%s" % type_\n+        table_name = f"mothur_{type_}"\n         add_data_table_entry(data_tables, table_name, dict(name=entry_name, value=ref_data_file))\n \n \n@@ -522,8 +545,8 @@\n     parser.add_option(\'--description\', action=\'store\', dest=\'description\', default=\'\')\n     parser.add_option(\'--link\', action=\'store_true\', dest=\'link_to_data\')\n     options, args = parser.parse_args()\n-    print("options: %s" % options)\n-    print("args   : %s" % args)\n+    print(f"options: {options}")\n+    print(f"args   : {args}")\n \n     # Check for JSON file\n     if len(args) != 1:\n@@ -536,7 +559,7 @@\n     params, target_dir = read_input_json(jsonfile)\n \n     # Make the target directory\n-    print("Making %s" % target_dir)\n+    print(f"Making {target_dir}")\n     os.mkdir(target_dir)\n \n     # Set up data tables dictionary\n'