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)