Mercurial > repos > rplanel > data_manager_defense_finder
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)
