Mercurial > repos > iuc > humann_associate
annotate test-data/test-db/metaphlan-db/customizemapping.py @ 5:1dbfcd56a5d3 draft default tip
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit ccaedf215676efa9afe412f2f8c95d8220c885ee
| author | iuc | 
|---|---|
| date | Sun, 13 Aug 2023 17:01:42 +0000 | 
| parents | 5ae955d5bd2b | 
| children | 
| rev | line source | 
|---|---|
| 
2
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
1 #!/usr/bin/env python | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
2 # -*- coding: utf-8 -*- | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
3 # Script to generate a extract a custom mapping file from input mapping file. | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
4 # Mostly used for a reduced-size demo data generation. | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
5 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
6 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
7 import argparse | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
8 from pathlib import Path | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
9 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
10 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
11 if __name__ == '__main__': | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
12 # Read command line | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
13 parser = argparse.ArgumentParser(description='Customize HUMAnN utility mapping') | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
14 parser.add_argument('--in_mapping', help="Path to mapping file to reduce") | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
15 parser.add_argument('--features', help="Path to tabular file with features to keep in first column") | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
16 parser.add_argument('--elements', help="Path to tabular file with elements to keep in other columns") | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
17 parser.add_argument('--out_mapping', help="Path to reduced mapping file") | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
18 args = parser.parse_args() | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
19 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
20 in_mapping_fp = Path(args.in_mapping) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
21 feature_fp = Path(args.features) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
22 element_fp = Path(args.elements) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
23 out_mapping_fp = Path(args.out_mapping) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
24 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
25 # extract features to keep | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
26 features = set() | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
27 with open(feature_fp, 'r') as feature_f: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
28 for line in feature_f.readlines(): | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
29 features.add(line.split("\t")[0]) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
30 print(features) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
31 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
32 # extract elements to keep | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
33 elements = set() | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
34 with open(element_fp, 'r') as element_f: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
35 for line in element_f.readlines(): | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
36 elements.add(line.split("\t")[0]) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
37 print(elements) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
38 | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
39 # write mapping for features to keep while keeping only elements | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
40 with open(in_mapping_fp, 'r') as in_mapping_f: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
41 with open(out_mapping_fp, 'w') as out_mapping_f: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
42 for line in in_mapping_f.readlines(): | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
43 l_split = line.split("\t") | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
44 feat = l_split[0] | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
45 if feat in features: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
46 to_write = [feat] | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
47 for e in l_split[1:]: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
48 if e in elements: | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
49 to_write.append(e) | 
| 
 
5ae955d5bd2b
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/humann commit 0966faf8782e9043772acfa32f4a4281687a19dd
 
iuc 
parents:  
diff
changeset
 | 
50 out_mapping_f.write("%s\n" % '\t'.join(to_write)) | 
