Mercurial > repos > iuc > data_manager_funannotate
annotate data_manager/extract.py @ 5:5459ec34767a draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
author | iuc |
---|---|
date | Fri, 07 Mar 2025 22:33:29 +0000 |
parents | |
children |
rev | line source |
---|---|
5
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
1 import json |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
2 import os |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
3 import sys |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
4 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
5 fun_db = sys.argv[1] |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
6 fun_db_value = sys.argv[2] |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
7 dmjson = sys.argv[3] |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
8 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
9 content = [] |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
10 # get options for parameter --busco_db |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
11 # which are just the subfolders of the db dir (minus outgroups/ and trained_species/) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
12 # https://github.com/nextgenusfs/funannotate/blob/8cc40728fee61566fdf736c1f2292e14cc117660/funannotate/predict.py#L319 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
13 for d in os.scandir(fun_db): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
14 if not d.is_dir(): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
15 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
16 if d.name in ['outgroups', 'trained_species']: |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
17 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
18 if not os.path.exists(os.path.join(d, "dataset.cfg")): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
19 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
20 name = d.name.replace("_", " ").capitalize() |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
21 content.append({'value': d.name, 'name': name, 'select': 'busco_db', 'db_value': fun_db_value}) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
22 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
23 # --busco_seed_species |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
24 # trained_species |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
25 for d in os.scandir(os.path.join(fun_db, "trained_species")): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
26 if not d.is_dir(): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
27 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
28 if not os.path.exists(os.path.join(d, "info.json")): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
29 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
30 name = d.name.replace("_", " ").capitalize() |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
31 content.append({'value': d.name, 'name': name, 'select': 'trained_species', 'db_value': fun_db_value}) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
32 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
33 # --busco_seed_species |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
34 # outgroups |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
35 for f in os.scandir(os.path.join(fun_db, "outgroups")): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
36 if f.is_dir(): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
37 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
38 if not f.name.endswith("_buscos.fa"): |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
39 continue |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
40 value = f.name[:-10] |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
41 name = ' - '.join([x.replace("_", " ").capitalize() for x in value.split('.')]) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
42 content.append({'value': value, 'name': name, 'select': 'outgroup', 'db_value': fun_db_value}) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
43 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
44 with open(dmjson, "w") as fh: |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
45 json.dump({"data_tables": {"funannotate_options": content}}, fh) |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
46 |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
47 print(f'{len([c for c in content if c["select"]=="busco_db"])} x busco_db\n') |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
48 print(f'{len([c for c in content if c["select"]=="trained_species"])} x trained_species\n') |
5459ec34767a
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/data_managers/data_manager_funannotate commit 8341270dd36185ebf59d15282bc79f1215e936a4
iuc
parents:
diff
changeset
|
49 print(f'{len([c for c in content if c["select"]=="outgroup"])} x outgroup\n') |