Mercurial > repos > recetox > matchms_metadata_match
annotate matchms_similarity_wrapper.py @ 0:1280d36344be 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:22:23 +0000 | 
| parents | |
| children | 
| rev | line source | 
|---|---|
| 0 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 1 import argparse | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 2 import json | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 3 import sys | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 4 | 
| 
1280d36344be
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 | 
| 
1280d36344be
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 | 
| 
1280d36344be
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, | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 8 ModifiedCosine, NeutralLossesCosine) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 9 from spec2vec import Spec2Vec | 
| 
1280d36344be
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 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 11 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 12 | 
| 
1280d36344be
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): | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 14 """ | 
| 
1280d36344be
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 | 
| 
1280d36344be
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. | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 17 """ | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 18 | 
| 
1280d36344be
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: | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 20 metadata = spectrum.metadata | 
| 
1280d36344be
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"]) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 22 spectrum.metadata = metadata | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 23 return spectrum | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 24 else: | 
| 
1280d36344be
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.") | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 26 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 27 | 
| 
1280d36344be
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: | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 29 """ | 
| 
1280d36344be
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. | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 31 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 32 Parameters | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 33 ---------- | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 34 model_file: | 
| 
1280d36344be
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. | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 36 weights_file: | 
| 
1280d36344be
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. | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 38 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 39 Returns | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 40 ------- | 
| 
1280d36344be
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 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 42 :class:`~gensim.models.Word2Vec` | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 43 """ | 
| 
1280d36344be
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: | 
| 
1280d36344be
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) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 46 del (model["mapfile_path"]) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 47 | 
| 
1280d36344be
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"]) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 49 return Word2VecLight(model, weights) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 50 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 51 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 52 def main(argv): | 
| 
1280d36344be
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") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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).") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.') | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
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.") | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 69 args = parser.parse_args() | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 70 | 
| 
1280d36344be
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': | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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)) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 75 else: | 
| 
1280d36344be
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.') | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 77 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 78 if args.symmetric: | 
| 
1280d36344be
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() | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 80 else: | 
| 
1280d36344be
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': | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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)) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 85 else: | 
| 
1280d36344be
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.') | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 87 | 
| 
1280d36344be
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': | 
| 
1280d36344be
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) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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) | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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) | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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)) | 
| 
1280d36344be
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': | 
| 
1280d36344be
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) | 
| 
1280d36344be
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) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 103 else: | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 104 return -1 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 105 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 106 print("Calculating scores...") | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 107 scores = calculate_scores( | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 108 references=reference_spectra, | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 109 queries=queries_spectra, | 
| 
1280d36344be
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, | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 111 similarity_function=similarity_metric, | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 112 is_symmetric=args.symmetric | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 113 ) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 114 | 
| 
1280d36344be
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: | 
| 
1280d36344be
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) | 
| 
1280d36344be
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, | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 118 queries=queries_spectra, | 
| 
1280d36344be
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), | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 120 array_type="numpy", | 
| 
1280d36344be
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 | 
| 
1280d36344be
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") | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 123 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 124 write_outputs(args, scores) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 125 return 0 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 126 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 127 | 
| 
1280d36344be
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): | 
| 
1280d36344be
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.""" | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 130 print("Storing outputs...") | 
| 
1280d36344be
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) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 132 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 133 | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 134 if __name__ == "__main__": | 
| 
1280d36344be
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:]) | 
| 
1280d36344be
planemo upload for repository https://github.com/RECETOX/galaxytools/tree/master/tools/matchms commit f79a5b51599254817727bc9028b9797ea994cb4e
 recetox parents: diff
changeset | 136 pass | 
