annotate test-data/test-db/metaphlan-db/customizemapping.py @ 0:81e57f1d3937 draft default tip

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