annotate data_manager/omamer.py @ 1:57db282ca204 draft default tip

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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
1 #!/usr/bin/env python
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
2
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
3 import argparse
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
4 import json
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
5 import os
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
6 import sys
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
7
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
8 import requests
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
9
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
10 # URL for downloading OMAmer datasets
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
11 OMAMER_DATASETS_URL = "https://omabrowser.org/All/{dataset}"
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
12
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
13 # List of OMAmer data sets with versions
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
14 OMAMER_DATASETS = {
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
15 "Primates": "Primates-v2.0.0.h5",
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
16 "Viridiplantae": "Viridiplantae-v2.0.0.h5",
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
17 "Metazoa": "Metazoa-v2.0.0.h5",
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
18 "LUCA": "LUCA-v0.2.5.h5",
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
19 }
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
20
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
21 DEFAULT_OUTPUT_DIR = "database_omamer"
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
22
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
23
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
24 def download_file(url, dest):
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
25 try:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
26 with requests.get(url, stream=True) as r:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
27 r.raise_for_status()
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
28 with open(dest, 'wb') as f:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
29 for chunk in r.iter_content(chunk_size=8192):
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
30 f.write(chunk)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
31 print(f"Downloaded: {url} to {dest}")
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
32 except requests.exceptions.RequestException as e:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
33 print(f"Error downloading {url}: {e}")
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
34 sys.exit(1)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
35
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
36
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
37 def main(args):
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
38
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
39 with open(args.json) as fh:
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
40 params = json.load(fh)
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
41 target_directory = params["output_data"][0]["extra_files_path"]
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
42
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
43 # Create output directory if none exists
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
44 if not os.path.exists(target_directory):
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
45 os.makedirs(target_directory)
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
46
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
47 # Check if the selected dataset exists
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
48 if args.name not in OMAMER_DATASETS:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
49 print(f"Error: Selected dataset '{args.name}' not found.")
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
50 sys.exit(1)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
51
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
52 # Download the selected OMAmer dataset
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
53 dataset = OMAMER_DATASETS[args.name]
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
54 url = OMAMER_DATASETS_URL.format(dataset=dataset)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
55 base_name = os.path.splitext(dataset)[0]
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
56 destination_path = os.path.join(target_directory, dataset)
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
57 download_file(url, destination_path)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
58
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
59 data_manager_entry = {
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
60 "value": dataset,
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
61 "name": base_name,
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
62 "version": args.version,
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
63 "path": dataset,
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
64 }
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
65
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
66 # Creates a JSON dictionary representing the Data Manager configuration
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
67 data_manager_json = {"data_tables": {"omamer": [data_manager_entry]}}
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
68
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
69 # Writes this JSON dictionary to the specified output file
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
70 with open(args.json, "w") as fh:
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
71 json.dump(data_manager_json, fh, indent=2, sort_keys=True)
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
72
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
73
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
74 if __name__ == "__main__":
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
75 # Set up argparse to specify expected command line arguments
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
76 parser = argparse.ArgumentParser(description='Download data for OMAmer')
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
77 parser.add_argument('--name', default='Primates', choices=OMAMER_DATASETS.keys(), help='Select dataset to download')
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
78 parser.add_argument('--json', help='Path to JSON file')
1
57db282ca204 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 67067cd7917545904b3a9980948abdd19f0576bd
iuc
parents: 0
diff changeset
79 parser.add_argument("--version", help="Omamer version")
0
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
80
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
81 args = parser.parse_args()
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
82
e1502e4f8725 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/data_managers/data_manager_omamer commit 8ff9ada22d22cb94ddfff51bcdd3ab7d30104f1a
iuc
parents:
diff changeset
83 main(args)