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