annotate matchms_networking_wrapper.py @ 10:5a24a419aafe draft

planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit a0565620150b69e0ca87aa686709c25356436f71
author recetox
date Wed, 22 Nov 2023 14:43:10 +0000
parents 0fd1e5d4ca3c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
1 import argparse
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
2 import sys
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
3
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
4 from matchms.importing import scores_from_json
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
5 from matchms.networking import SimilarityNetwork
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
6
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
7
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
8 def main(argv):
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
9 parser = argparse.ArgumentParser(description="Create network-graph from similarity scores.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
10 parser.add_argument("--graph_format", type=str, help="Format of the output similarity network.")
5
8147d93d372d planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
recetox
parents: 0
diff changeset
11 parser.add_argument("--score_name", type=str, help="Name of the score layer to use for creating the network graph.")
0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
12 parser.add_argument("--identifier", type=str, help="Unique metadata identifier of each spectrum from which scores are computed.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
13 parser.add_argument("--top_n", type=int, help="Number of highest-score edges to keep.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
14 parser.add_argument("--max_links", type=int, help="Maximum number of links to add per node.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
15 parser.add_argument("--score_cutoff", type=float, help="Minimum similarity score value to link two spectra.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
16 parser.add_argument("--link_method", type=str, help="Method for selecting top N edges for each node.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
17 parser.add_argument("--keep_unconnected_nodes", help="Keep unconnected nodes in the network.", action="store_true")
5
8147d93d372d planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
recetox
parents: 0
diff changeset
18 parser.add_argument("scores", type=str, help="Path to matchms similarity-scores .json file.")
0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
19 parser.add_argument("output_filename", type=str, help="Path where to store the output similarity network.")
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
20 args = parser.parse_args()
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
21
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
22 scores = scores_from_json(args.scores)
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
23
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
24 network = SimilarityNetwork(identifier_key=args.identifier,
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
25 top_n=args.top_n,
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
26 max_links=args.max_links,
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
27 score_cutoff=args.score_cutoff,
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
28 link_method=args.link_method,
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
29 keep_unconnected_nodes=args.keep_unconnected_nodes)
8
0fd1e5d4ca3c planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 13f4f7af12ec694a5f4ab7b3e52f46a4f67a245e
recetox
parents: 5
diff changeset
30 score_name = next((s for s in scores.score_names if args.score_name in s and "score" in s), None)
0fd1e5d4ca3c planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 13f4f7af12ec694a5f4ab7b3e52f46a4f67a245e
recetox
parents: 5
diff changeset
31 if score_name is None:
0fd1e5d4ca3c planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 13f4f7af12ec694a5f4ab7b3e52f46a4f67a245e
recetox
parents: 5
diff changeset
32 raise ValueError(f"Could not find any score name containing '{args.score_name}'.")
0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
33
8
0fd1e5d4ca3c planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit 13f4f7af12ec694a5f4ab7b3e52f46a4f67a245e
recetox
parents: 5
diff changeset
34 network.create_network(scores, score_name)
0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
35 network.export_to_file(filename=args.output_filename, graph_format=args.graph_format)
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
36
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
37 return 0
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
38
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
39
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
40 if __name__ == "__main__":
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
41 main(argv=sys.argv[1:])
e4ec3592507f planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f7bab98744e338dcdbdc9cf6f9de287632c76ea2
recetox
parents:
diff changeset
42 pass