Mercurial > repos > iuc > data_manager_omamer
comparison data_manager/omamer.py @ 1:57db282ca204 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
| author | iuc |
|---|---|
| date | Thu, 07 Mar 2024 14:28:42 +0000 |
| parents | e1502e4f8725 |
| children | f8d72275878e |
comparison
equal
deleted
inserted
replaced
| 0:e1502e4f8725 | 1:57db282ca204 |
|---|---|
| 2 | 2 |
| 3 import argparse | 3 import argparse |
| 4 import json | 4 import json |
| 5 import os | 5 import os |
| 6 import sys | 6 import sys |
| 7 from pathlib import Path | |
| 8 | 7 |
| 9 import requests | 8 import requests |
| 10 | 9 |
| 11 # URL for downloading OMAmer datasets | 10 # URL for downloading OMAmer datasets |
| 12 OMAMER_DATASETS_URL = "https://omabrowser.org/All/{dataset}" | 11 OMAMER_DATASETS_URL = "https://omabrowser.org/All/{dataset}" |
| 16 "Primates": "Primates-v2.0.0.h5", | 15 "Primates": "Primates-v2.0.0.h5", |
| 17 "Viridiplantae": "Viridiplantae-v2.0.0.h5", | 16 "Viridiplantae": "Viridiplantae-v2.0.0.h5", |
| 18 "Metazoa": "Metazoa-v2.0.0.h5", | 17 "Metazoa": "Metazoa-v2.0.0.h5", |
| 19 "LUCA": "LUCA-v0.2.5.h5", | 18 "LUCA": "LUCA-v0.2.5.h5", |
| 20 } | 19 } |
| 21 | |
| 22 | 20 |
| 23 DEFAULT_OUTPUT_DIR = "database_omamer" | 21 DEFAULT_OUTPUT_DIR = "database_omamer" |
| 24 | 22 |
| 25 | 23 |
| 26 def download_file(url, dest): | 24 def download_file(url, dest): |
| 35 print(f"Error downloading {url}: {e}") | 33 print(f"Error downloading {url}: {e}") |
| 36 sys.exit(1) | 34 sys.exit(1) |
| 37 | 35 |
| 38 | 36 |
| 39 def main(args): | 37 def main(args): |
| 40 # Set output directory to default | 38 |
| 41 output_dir = DEFAULT_OUTPUT_DIR | 39 with open(args.json) as fh: |
| 40 params = json.load(fh) | |
| 41 target_directory = params["output_data"][0]["extra_files_path"] | |
| 42 | 42 |
| 43 # Create output directory if none exists | 43 # Create output directory if none exists |
| 44 if not os.path.exists(output_dir): | 44 if not os.path.exists(target_directory): |
| 45 os.makedirs(output_dir) | 45 os.makedirs(target_directory) |
| 46 | 46 |
| 47 # Check if the selected dataset exists | 47 # Check if the selected dataset exists |
| 48 if args.name not in OMAMER_DATASETS: | 48 if args.name not in OMAMER_DATASETS: |
| 49 print(f"Error: Selected dataset '{args.name}' not found.") | 49 print(f"Error: Selected dataset '{args.name}' not found.") |
| 50 sys.exit(1) | 50 sys.exit(1) |
| 51 | 51 |
| 52 # Download the selected OMAmer dataset | 52 # Download the selected OMAmer dataset |
| 53 dataset = OMAMER_DATASETS[args.name] | 53 dataset = OMAMER_DATASETS[args.name] |
| 54 url = OMAMER_DATASETS_URL.format(dataset=dataset) | 54 url = OMAMER_DATASETS_URL.format(dataset=dataset) |
| 55 base_name = os.path.splitext(dataset)[0] | 55 base_name = os.path.splitext(dataset)[0] |
| 56 destination_path = os.path.join(output_dir, base_name) | 56 destination_path = os.path.join(target_directory, dataset) |
| 57 download_file(url, destination_path) | 57 download_file(url, destination_path) |
| 58 | 58 |
| 59 data_manager_entry = { | 59 data_manager_entry = { |
| 60 "value": os.path.splitext(os.path.basename(base_name))[0], | 60 "value": dataset, |
| 61 "name": os.path.splitext(os.path.basename(base_name))[0], | 61 "name": base_name, |
| 62 "version": "2.0.2", | 62 "version": args.version, |
| 63 "path": str(Path(output_dir)), | 63 "path": dataset, |
| 64 } | 64 } |
| 65 | 65 |
| 66 # Creates a JSON dictionary representing the Data Manager configuration | 66 # Creates a JSON dictionary representing the Data Manager configuration |
| 67 data_manager_json = {"data_tables": {"omamer_data": [data_manager_entry]}} | 67 data_manager_json = {"data_tables": {"omamer": [data_manager_entry]}} |
| 68 | 68 |
| 69 # Writes this JSON dictionary to the specified output file | 69 # Writes this JSON dictionary to the specified output file |
| 70 with open(args.json, "w") as fh: | 70 with open(args.json, "w") as fh: |
| 71 json.dump(data_manager_json, fh, indent=2, sort_keys=True) | 71 json.dump(data_manager_json, fh, indent=2, sort_keys=True) |
| 72 | 72 |
| 74 if __name__ == "__main__": | 74 if __name__ == "__main__": |
| 75 # Set up argparse to specify expected command line arguments | 75 # Set up argparse to specify expected command line arguments |
| 76 parser = argparse.ArgumentParser(description='Download data for OMAmer') | 76 parser = argparse.ArgumentParser(description='Download data for OMAmer') |
| 77 parser.add_argument('--name', default='Primates', choices=OMAMER_DATASETS.keys(), help='Select dataset to download') | 77 parser.add_argument('--name', default='Primates', choices=OMAMER_DATASETS.keys(), help='Select dataset to download') |
| 78 parser.add_argument('--json', help='Path to JSON file') | 78 parser.add_argument('--json', help='Path to JSON file') |
| 79 parser.add_argument("--version", help="Omamer version") | |
| 79 | 80 |
| 80 args = parser.parse_args() | 81 args = parser.parse_args() |
| 81 | 82 |
| 82 main(args) | 83 main(args) |
