changeset 0:a04c5659aac3 draft

planemo upload for repository https://gitlab.pasteur.fr/galaxy-team/galaxy-tools/-/tree/master/data_managers/data_manager_defense_finder commit cd90d22094f1128738ca4614b51d81af00a83d50
author rplanel
date Tue, 12 Sep 2023 09:06:45 +0000
parents
children e661b9ac3223
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/defense-finder.loc.sample tool_data_table_conf.xml.sample tool_data_table_conf.xml.test
diffstat 7 files changed, 135 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/data_manager_defense_finder.xml	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,32 @@
+<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@">1.1.1</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}'
+    ]]></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"/>
+    </inputs>
+    <outputs>
+        <data name="out_file" format="data_manager_json"/>
+    </outputs>
+    <tests>
+        <test>
+            <param name="model_version" value="1.2.2"/>
+            <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
+    ]]></help>
+    <citations>
+        <citation type="doi">10.1038/s41467-022-30269-9</citation>
+        <citation type="doi">10.24072/pcjournal.250</citation>
+    </citations>
+</tool>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager/defense_finder_models_fetcher.py	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,60 @@
+#!/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
+    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"Defense Finder models (version {models_version})",
+        description="MacSyFinder models allowing for a systematic search of anti-phage systems",
+        path=dataset_value,
+    )
+
+    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="dataset version"
+    )
+
+    args = parser.parse_args()
+    main(args)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/data_manager_conf.xml	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>
+<data_managers>
+    <data_manager tool_file="data_manager/data_manager_defense_finder.xml"
+        id="defense_finder_models_fetcher">
+        <data_table name="defense-finder">
+            <output>
+                <column name="value" />
+                <column name="dbkey" />
+                <column name="name" />
+                <column name="version" />
+                <column name="description" />
+                <column name="path" output_ref="out_file">
+                    <move type="directory" relativize_symlinks="True">
+                        <source>${path}</source>
+                        <target base="${GALAXY_DATA_MANAGER_DATA_PATH}">defense-finder/${value}/</target>
+                    </move>
+                    <value_translation>${GALAXY_DATA_MANAGER_DATA_PATH}/defense-finder/${value}</value_translation>
+                    <value_translation type="function">abspath</value_translation>
+                </column>
+            </output>
+        </data_table>
+    </data_manager>
+</data_managers>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/test-data/defense_finder_test_data_manager.json	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,1 @@
+{"data_tables": {"defense-finder": {"dbkey": "defense-finder-models", "description": "MacSyFinder models allowing for a systematic search of anti-phage systems", "name": "Defense Finder models (version 1.2.2)", "path": "defense-finder-models_1.2.2", "value": "defense-finder-models_1.2.2", "version": "1.2.2"}}}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool-data/defense-finder.loc.sample	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,7 @@
+# this is a tab separated file describing the location of defense finder models
+#
+# the columns are:
+# value, dbkey, name, version, description, path
+#
+# for example
+# defense-finder-models_1.2.2	defense-finder-models	Defense Finder models (version 1.2.2)	1.2.2	MacSyFinder models allowing for a systematic search of anti-phage systems	/depot/data/galaxy/defense-finder/defense-finder-models_1.2.2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.sample	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,6 @@
+<tables>
+    <table name="defense-finder" comment_char="#" allow_duplicate_entries="False">
+        <columns>value, dbkey, name, version, description, path</columns>
+        <file path="tool-data/defense-finder.loc.sample" />
+    </table>
+</tables>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tool_data_table_conf.xml.test	Tue Sep 12 09:06:45 2023 +0000
@@ -0,0 +1,6 @@
+<tables>
+    <table name="defense-finder" comment_char="#" allow_duplicate_entries="False">
+        <columns>value, dbkey, name, version, description, path</columns>
+        <file path="${__HERE__}/test-data/defense-finder.loc" />
+    </table>
+</tables>
\ No newline at end of file