Mercurial > repos > rplanel > data_manager_defense_finder
comparison 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 |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:a04c5659aac3 |
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 import argparse | |
| 4 import json | |
| 5 | |
| 6 import subprocess | |
| 7 import sys | |
| 8 from pathlib import Path | |
| 9 | |
| 10 | |
| 11 def main(args): | |
| 12 dataset_basename = "defense-finder-models" | |
| 13 models_version = args.version | |
| 14 output_file = args.output | |
| 15 dataset_value = f"{dataset_basename}_{models_version}" | |
| 16 with open(output_file) as fh: | |
| 17 params = json.load(fh) | |
| 18 target_directory = Path(params["output_data"][0]["extra_files_path"]) | |
| 19 target_directory.mkdir(parents=True, exist_ok=True) | |
| 20 # download models with macsydata | |
| 21 args = [ | |
| 22 "defense-finder", | |
| 23 "update", | |
| 24 "--models-dir", | |
| 25 dataset_value, | |
| 26 ] | |
| 27 | |
| 28 proc = subprocess.Popen(args=args, shell=False, cwd=target_directory) | |
| 29 return_code = proc.wait() | |
| 30 if return_code: | |
| 31 print("Error building index.", file=sys.stderr) | |
| 32 sys.exit(return_code) | |
| 33 | |
| 34 data_table_entry = dict( | |
| 35 value=dataset_value, | |
| 36 dbkey=dataset_basename, | |
| 37 version=models_version, | |
| 38 name=f"Defense Finder models (version {models_version})", | |
| 39 description="MacSyFinder models allowing for a systematic search of anti-phage systems", | |
| 40 path=dataset_value, | |
| 41 ) | |
| 42 | |
| 43 data_manager_json = dict(data_tables={"defense-finder": data_table_entry}) | |
| 44 | |
| 45 # move dir to final target dir | |
| 46 # shutil.move(workdir / dataset_name, target_directory_tax) | |
| 47 # data_manager_json = dict(data_tables=dict(pasteurqtl=data_table_entry)) | |
| 48 with open(output_file, "w") as fh: | |
| 49 json.dump(data_manager_json, fh, sort_keys=True) | |
| 50 | |
| 51 | |
| 52 if __name__ == "__main__": | |
| 53 parser = argparse.ArgumentParser(description="Create data manager json.") | |
| 54 parser.add_argument("--out", dest="output", action="store", help="JSON filename") | |
| 55 parser.add_argument( | |
| 56 "--version", dest="version", action="store", default="1", help="dataset version" | |
| 57 ) | |
| 58 | |
| 59 args = parser.parse_args() | |
| 60 main(args) |
