Mercurial > repos > iuc > data_manager_funannotate
comparison data_manager/funannotate.py @ 0:ef7f9e2f32f2 draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_funannotate commit 9613152729099079c7465c3d5d42005ef22ca91e"
| author | iuc | 
|---|---|
| date | Thu, 26 Aug 2021 06:54:45 +0000 | 
| parents | |
| children | 8dff71edbce5 | 
   comparison
  equal
  deleted
  inserted
  replaced
| -1:000000000000 | 0:ef7f9e2f32f2 | 
|---|---|
| 1 #!/usr/bin/env python | |
| 2 | |
| 3 import argparse | |
| 4 import json | |
| 5 import operator | |
| 6 import os | |
| 7 import subprocess | |
| 8 import sys | |
| 9 from datetime import datetime | |
| 10 | |
| 11 | |
| 12 if __name__ == "__main__": | |
| 13 | |
| 14 parser = argparse.ArgumentParser() | |
| 15 parser.add_argument('--partial', dest='partial', action='store_true', help='Only download a small subset of data (for testing)') | |
| 16 parser.add_argument("version_id") | |
| 17 parser.add_argument("datatable_name") | |
| 18 parser.add_argument("galaxy_datamanager_filename") | |
| 19 args = parser.parse_args() | |
| 20 | |
| 21 with open(args.galaxy_datamanager_filename) as fh: | |
| 22 config = json.load(fh) | |
| 23 | |
| 24 output_directory = config.get("output_data", [{}])[0].get("extra_files_path", None) | |
| 25 data_manager_dict = {} | |
| 26 data_manager_dict["data_tables"] = config.get("data_tables", {}) | |
| 27 data_manager_dict["data_tables"][args.datatable_name] = data_manager_dict[ | |
| 28 "data_tables" | |
| 29 ].get(args.datatable_name, []) | |
| 30 | |
| 31 os.mkdir(output_directory) | |
| 32 cmd_args = ['funannotate', 'setup', '-d', output_directory, '-b', 'all'] | |
| 33 if args.partial: | |
| 34 cmd_args += ['-i', 'merops', '-b', 'eukaryota'] | |
| 35 proc = subprocess.Popen(args=cmd_args, shell=False, cwd=output_directory) | |
| 36 return_code = proc.wait() | |
| 37 if return_code: | |
| 38 print("Error downloading Funannotate database.", file=sys.stderr) | |
| 39 sys.exit(return_code) | |
| 40 | |
| 41 version_id = datetime.today().strftime('%Y-%m-%d-%H%M%S') | |
| 42 | |
| 43 version = '1.0' | |
| 44 | |
| 45 data_manager_dict["data_tables"][args.datatable_name].append( | |
| 46 dict( | |
| 47 value=version_id, | |
| 48 description="Funannotate database %s" % version_id, | |
| 49 format_version=version, | |
| 50 path=output_directory, | |
| 51 ) | |
| 52 ) | |
| 53 | |
| 54 data_manager_dict["data_tables"][args.datatable_name].sort( | |
| 55 key=operator.itemgetter("value"), reverse=True | |
| 56 ) | |
| 57 with open(args.galaxy_datamanager_filename, "w") as fh: | |
| 58 json.dump(data_manager_dict, fh, indent=2, sort_keys=True) | 
