Mercurial > repos > recetox > matchms_convert
annotate matchms_similarity_wrapper.py @ 3:4216e42a5534 draft default tip
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
| author | recetox | 
|---|---|
| date | Tue, 27 Jun 2023 14:21:13 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 
3
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
1 import argparse | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
2 import json | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
3 import sys | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
4 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
5 from matchms import calculate_scores | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
6 from matchms.importing import load_from_mgf, load_from_msp | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
7 from matchms.similarity import (CosineGreedy, CosineHungarian, MetadataMatch, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
8 ModifiedCosine, NeutralLossesCosine) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
9 from spec2vec import Spec2Vec | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
10 from spec2vec.serialization.model_importing import load_weights, Word2VecLight | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
11 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
12 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
13 def convert_precursor_mz(spectrum): | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
14 """ | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
15 Check the presence of precursor m/z since it is needed for ModifiedCosine similarity metric. Convert to float if | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
16 needed, raise error if missing. | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
17 """ | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
18 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
19 if "precursor_mz" in spectrum.metadata: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
20 metadata = spectrum.metadata | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
21 metadata["precursor_mz"] = float(metadata["precursor_mz"]) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
22 spectrum.metadata = metadata | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
23 return spectrum | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
24 else: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
25 raise ValueError("Precursor_mz missing. Apply 'add_precursor_mz' filter first.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
26 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
27 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
28 def load_model(model_file, weights_file) -> Word2VecLight: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
29 """ | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
30 Read a lightweight version of a :class:`~gensim.models.Word2Vec` model from disk. | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
31 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
32 Parameters | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
33 ---------- | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
34 model_file: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
35 A path of json file to load the model. | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
36 weights_file: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
37 A path of `.npy` file to load the model's weights. | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
38 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
39 Returns | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
40 ------- | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
41 :class:`~spec2vec.serialization.model_importing.Word2VecLight` – a lightweight version of a | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
42 :class:`~gensim.models.Word2Vec` | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
43 """ | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
44 with open(model_file, "r", encoding="utf-8") as f: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
45 model: dict = json.load(f) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
46 del (model["mapfile_path"]) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
47 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
48 weights = load_weights(weights_file, model["__weights_format"]) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
49 return Word2VecLight(model, weights) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
50 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
51 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
52 def main(argv): | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
53 parser = argparse.ArgumentParser(description="Compute MSP similarity scores") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
54 parser.add_argument("-r", dest="ri_tolerance", type=float, help="Use RI filtering with given tolerance.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
55 parser.add_argument("-s", dest="symmetric", action='store_true', help="Computation is symmetric.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
56 parser.add_argument("--array_type", type=str, help="Type of array to use for storing scores (numpy or sparse).") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
57 parser.add_argument("--ref", dest="references_filename", type=str, help="Path to reference spectra library.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
58 parser.add_argument("--ref_format", dest="references_format", type=str, help="Reference spectra library file format.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
59 parser.add_argument("--spec2vec_model", dest="spec2vec_model", type=str, help="Path to spec2vec model.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
60 parser.add_argument("--spec2vec_weights", dest="spec2vec_weights", type=str, help="Path to spec2vec weights.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
61 parser.add_argument("--allow_missing_percentage", dest="allowed_missing_percentage", type=lambda x: float(x) * 100.0, help="Maximum percentage of missing peaks in model corpus.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
62 parser.add_argument("queries_filename", type=str, help="Path to query spectra.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
63 parser.add_argument("queries_format", type=str, help="Query spectra file format.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
64 parser.add_argument("similarity_metric", type=str, help='Metric to use for matching.') | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
65 parser.add_argument("tolerance", type=float, help="Tolerance to use for peak matching.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
66 parser.add_argument("mz_power", type=float, help="The power to raise mz to in the cosine function.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
67 parser.add_argument("intensity_power", type=float, help="The power to raise intensity to in the cosine function.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
68 parser.add_argument("output_filename_scores", type=str, help="Path where to store the output .json scores.") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
69 args = parser.parse_args() | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
70 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
71 if args.queries_format == 'msp': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
72 queries_spectra = list(load_from_msp(args.queries_filename)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
73 elif args.queries_format == 'mgf': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
74 queries_spectra = list(load_from_mgf(args.queries_filename)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
75 else: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
76 raise ValueError(f'File format {args.queries_format} not supported for query spectra.') | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
77 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
78 if args.symmetric: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
79 reference_spectra = queries_spectra.copy() | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
80 else: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
81 if args.references_format == 'msp': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
82 reference_spectra = list(load_from_msp(args.references_filename)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
83 elif args.references_format == 'mgf': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
84 reference_spectra = list(load_from_mgf(args.references_filename)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
85 else: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
86 raise ValueError(f'File format {args.references_format} not supported for reference spectra library.') | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
87 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
88 if args.similarity_metric == 'CosineGreedy': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
89 similarity_metric = CosineGreedy(args.tolerance, args.mz_power, args.intensity_power) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
90 elif args.similarity_metric == 'CosineHungarian': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
91 similarity_metric = CosineHungarian(args.tolerance, args.mz_power, args.intensity_power) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
92 elif args.similarity_metric == 'ModifiedCosine': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
93 similarity_metric = ModifiedCosine(args.tolerance, args.mz_power, args.intensity_power) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
94 reference_spectra = list(map(convert_precursor_mz, reference_spectra)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
95 queries_spectra = list(map(convert_precursor_mz, queries_spectra)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
96 elif args.similarity_metric == 'NeutralLossesCosine': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
97 similarity_metric = NeutralLossesCosine(args.tolerance, args.mz_power, args.intensity_power) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
98 reference_spectra = list(map(convert_precursor_mz, reference_spectra)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
99 queries_spectra = list(map(convert_precursor_mz, queries_spectra)) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
100 elif args.similarity_metric == 'Spec2Vec': | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
101 model = load_model(args.spec2vec_model, args.spec2vec_weights) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
102 similarity_metric = Spec2Vec(model, intensity_weighting_power=args.intensity_power, allowed_missing_percentage=args.allowed_missing_percentage) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
103 else: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
104 return -1 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
105 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
106 print("Calculating scores...") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
107 scores = calculate_scores( | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
108 references=reference_spectra, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
109 queries=queries_spectra, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
110 array_type=args.array_type, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
111 similarity_function=similarity_metric, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
112 is_symmetric=args.symmetric | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
113 ) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
114 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
115 if args.ri_tolerance is not None: | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
116 print("RI filtering with tolerance ", args.ri_tolerance) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
117 ri_matches = calculate_scores(references=reference_spectra, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
118 queries=queries_spectra, | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
119 similarity_function=MetadataMatch("retention_index", "difference", args.ri_tolerance), | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
120 array_type="numpy", | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
121 is_symmetric=args.symmetric).scores | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
122 scores.scores.add_coo_matrix(ri_matches, "MetadataMatch", join_type="inner") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
123 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
124 write_outputs(args, scores) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
125 return 0 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
126 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
127 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
128 def write_outputs(args, scores): | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
129 """Write Scores to json file.""" | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
130 print("Storing outputs...") | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
131 scores.to_json(args.output_filename_scores) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
132 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
133 | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
134 if __name__ == "__main__": | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
135 main(argv=sys.argv[1:]) | 
| 
 
4216e42a5534
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 
recetox 
parents:  
diff
changeset
 | 
136 pass | 
