changeset 3:46528ab18f85 draft

planemo upload for repository https://gitlab.pasteur.fr/galaxy-team/galaxy-tools/-/tree/master/data_managers/data_manager_defense_finder commit 3fd15f07b1a8750245e5748aedf33d5d407f2ae5-dirty
author pasteur
date Fri, 02 May 2025 11:11:35 +0000
parents 6dd2220e0a1c
children 502208b90cfe
files data_manager/data_manager_defense_finder.xml data_manager/defense_finder_models_fetcher.py data_manager_conf.xml test-data/defense_finder_test_data_manager.json tool_data_table_conf.xml.sample tool_data_table_conf.xml.test
diffstat 6 files changed, 68 insertions(+), 104 deletions(-) [+]
line wrap: on
line diff
--- a/data_manager/data_manager_defense_finder.xml	Thu Feb 13 14:36:45 2025 +0000
+++ b/data_manager/data_manager_defense_finder.xml	Fri May 02 11:11:35 2025 +0000
@@ -1,29 +1,48 @@
-<tool id="defense_finder_models_fetcher_data_manager" name="DefenseFinder" tool_type="manage_data" version="@TOOL_VERSION@+galaxy0">
-    <description>genotype data fetcher</description>
-    <macros>
-        <token name="@TOOL_VERSION@">2.0.0</token>
-    </macros>
-    <requirements>
-        <requirement type="package" version="@TOOL_VERSION@">defense-finder</requirement>
-    </requirements>
-    <command detect_errors="exit_code"><![CDATA[
-        python '$__tool_directory__/defense_finder_models_fetcher.py' --out '${out_file}' --version '${model_version}'
+<tool id="defense_finder_models_fetcher_data_manager" name="DefenseFinder" tool_type="manage_data" version="@TOOL_VERSION@+galaxy1" profile="21.05">
+  <description>DefenseFinder models fetcher</description>
+  <macros>
+    <token name="@TOOL_VERSION@">2.0.0</token>
+  </macros>
+  <requirements>
+    <requirement type="package" version="@TOOL_VERSION@">defense-finder</requirement>
+  </requirements>
+  <command detect_errors="exit_code"><![CDATA[
+        mkdir -p '$out_file.extra_files_path' &&
+        defense-finder update --models-dir '$out_file.extra_files_path'/'defense-finder-models_$model_version' &&
+        cp '$dmjson' '$out_file'
     ]]></command>
-    <inputs>
-        <param name="model_version" type="text" label="Defense finder models version" help="The available versions can be found at : https://github.com/mdmparis/defense-finder-models/releases"/>
-        <param name="software_compatibility" type="text" label="List of defenseFinder versions compatibility" help="Enter the list of defenseFinder software versions that are compatible with the current model (e.g., 1.2.0,1.3.0,2.0.0). Separate multiple versions with commas if required."/>
-    </inputs>
-    <outputs>
-        <data name="out_file" format="data_manager_json"/>
-    </outputs>
-    <tests>
-        <test>
-            <param name="model_version" value="2.0.2"/>
-            <param name="software_compatibility" value="2.0.0"/>
-            <output name="out_file" value="defense_finder_test_data_manager.json"/>
-        </test>
-    </tests>
-    <help><![CDATA[
+  <configfiles>
+    <configfile name="dmjson">{
+  "data_tables": {
+    "defense-finder-2": [
+      {
+        "value": "defense-finder-models_$model_version",
+        "dbkey": "defense-finder-models",
+        "version": "$model_version",
+        "name": "version $model_version",
+        "description": "MacSyFinder models allowing for a systematic search of anti-phage systems",
+        "path": "defense-finder-models_$model_version",
+        "compatibility_version": "$software_compatibility"
+      }
+    ]
+  }
+}</configfile>
+  </configfiles>
+  <inputs>
+    <param name="model_version" type="text" label="Defense finder models version" help="The available versions can be found at : https://github.com/mdmparis/defense-finder-models/releases"/>
+    <param name="software_compatibility" type="text" label="List of defenseFinder versions compatibility" help="Enter the list of defenseFinder software versions that are compatible with the current model (e.g., 1.2.0,1.3.0,2.0.0). Separate multiple versions with commas if required."/>
+  </inputs>
+  <outputs>
+    <data name="out_file" format="data_manager_json"/>
+  </outputs>
+  <tests>
+    <test>
+      <param name="model_version" value="2.0.2"/>
+      <param name="software_compatibility" value="2.0.0"/>
+      <output name="out_file" value="defense_finder_test_data_manager.json"/>
+    </test>
+  </tests>
+  <help><![CDATA[
 Download Defense Finder models : https://github.com/mdmparis/defense-finder-models/
 check out the defense finder models versions from https://github.com/mdmparis/defense-finder-models/releases
 
@@ -31,9 +50,9 @@
 Starting from models version 2.0.0, only DefenseFinder version 2.0.0 is comaptible.
 
 
-    ]]></help>
-    <citations>
-        <citation type="doi">10.1038/s41467-022-30269-9</citation>
-        <citation type="doi">10.24072/pcjournal.250</citation>
-    </citations>
+    ]]>  </help>
+  <citations>
+    <citation type="doi">10.1038/s41467-022-30269-9</citation>
+    <citation type="doi">10.24072/pcjournal.250</citation>
+  </citations>
 </tool>
--- a/data_manager/defense_finder_models_fetcher.py	Thu Feb 13 14:36:45 2025 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-import argparse
-import json
-
-import subprocess
-import sys
-from pathlib import Path
-
-
-def main(args):
-    dataset_basename = "defense-finder-models"
-    models_version = args.version
-    output_file = args.output
-    compat_version = args.compat_version
-    dataset_value = f"{dataset_basename}_{models_version}"
-    with open(output_file) as fh:
-        params = json.load(fh)
-    target_directory = Path(params["output_data"][0]["extra_files_path"])
-    target_directory.mkdir(parents=True, exist_ok=True)
-    # download models with macsydata
-    args = [
-        "defense-finder",
-        "update",
-        "--models-dir",
-        dataset_value,
-    ]
-
-    proc = subprocess.Popen(args=args, shell=False, cwd=target_directory)
-    return_code = proc.wait()
-    if return_code:
-        print("Error building index.", file=sys.stderr)
-        sys.exit(return_code)
-
-    data_table_entry = dict(
-        value=dataset_value,
-        dbkey=dataset_basename,
-        version=models_version,
-        name=f"version {models_version}",
-        description="MacSyFinder models allowing for a systematic search of anti-phage systems",
-        path=dataset_value,
-        compatibility_version=compat_version,
-    )
-
-    data_manager_json = dict(data_tables={"defense-finder": data_table_entry})
-
-    # move dir to final target dir
-    # shutil.move(workdir / dataset_name, target_directory_tax)
-    # data_manager_json = dict(data_tables=dict(pasteurqtl=data_table_entry))
-    with open(output_file, "w") as fh:
-        json.dump(data_manager_json, fh, sort_keys=True)
-
-
-if __name__ == "__main__":
-    parser = argparse.ArgumentParser(description="Create data manager json.")
-    parser.add_argument("--out", dest="output", action="store", help="JSON filename")
-    parser.add_argument(
-        "--version", dest="version", action="store", default="1", help="model version"
-    )
-    parser.add_argument(
-        "--soft-compat-version",
-        dest="compat_version",
-        action="store",
-        default="2.0.0",
-        help="Which version of DefenseFinder is compatible with these models",
-    )
-
-    args = parser.parse_args()
-    main(args)
--- a/data_manager_conf.xml	Thu Feb 13 14:36:45 2025 +0000
+++ b/data_manager_conf.xml	Fri May 02 11:11:35 2025 +0000
@@ -2,7 +2,7 @@
 <data_managers>
     <data_manager tool_file="data_manager/data_manager_defense_finder.xml"
         id="defense_finder_models_fetcher">
-        <data_table name="defense-finder">
+        <data_table name="defense-finder-2">
             <output>
                 <column name="value" />
                 <column name="dbkey" />
--- a/test-data/defense_finder_test_data_manager.json	Thu Feb 13 14:36:45 2025 +0000
+++ b/test-data/defense_finder_test_data_manager.json	Fri May 02 11:11:35 2025 +0000
@@ -1,1 +1,15 @@
-{"data_tables": {"defense-finder": {"compatibility_version": "2.0.0", "dbkey": "defense-finder-models", "description": "MacSyFinder models allowing for a systematic search of anti-phage systems", "name": "version 2.0.2", "path": "defense-finder-models_2.0.2", "value": "defense-finder-models_2.0.2", "version": "2.0.2"}}}
\ No newline at end of file
+{
+  "data_tables": {
+    "defense-finder-2": [
+      {
+        "value": "defense-finder-models_2.0.2",
+        "dbkey": "defense-finder-models",
+        "version": "2.0.2",
+        "name": "version 2.0.2",
+        "description": "MacSyFinder models allowing for a systematic search of anti-phage systems",
+        "path": "defense-finder-models_2.0.2",
+        "compatibility_version": "2.0.0"
+      }
+    ]
+  }
+}
\ No newline at end of file
--- a/tool_data_table_conf.xml.sample	Thu Feb 13 14:36:45 2025 +0000
+++ b/tool_data_table_conf.xml.sample	Fri May 02 11:11:35 2025 +0000
@@ -1,6 +1,6 @@
 <tables>
-    <table name="defense-finder" comment_char="#" allow_duplicate_entries="False">
+    <table name="defense-finder-2" comment_char="#" allow_duplicate_entries="False">
         <columns>value, dbkey, name, version, soft compatibility version, description, path</columns>
-        <file path="tool-data/defense-finder.2.loc.sample" />
+        <file path="tool-data/defense-finder.2.loc" />
     </table>
 </tables>
\ No newline at end of file
--- a/tool_data_table_conf.xml.test	Thu Feb 13 14:36:45 2025 +0000
+++ b/tool_data_table_conf.xml.test	Fri May 02 11:11:35 2025 +0000
@@ -1,5 +1,5 @@
 <tables>
-    <table name="defense-finder" comment_char="#" allow_duplicate_entries="False">
+    <table name="defense-finder-2" comment_char="#" allow_duplicate_entries="False">
         <columns>value, dbkey, name, version, soft compatibility version, description, path</columns>
         <file path="${__HERE__}/test-data/defense-finder.2.loc" />
     </table>