Mercurial > repos > recetox > matchms_networking
annotate matchms_networking_wrapper.py @ 15:3cd1cf3034d1 draft
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit b797ce0fea5cb3d9a0cf0ec31a21f9b73f112b4e
author | recetox |
---|---|
date | Mon, 15 Jan 2024 12:30:14 +0000 |
parents | 0fd1e5d4ca3c |
children |
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 |