diff data_manager/defense_finder_models_fetcher.py @ 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 6dd2220e0a1c
line wrap: on
line diff
--- /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)