# MSMS Desk > Score one unknown small-molecule MS/MS spectrum against the candidate library spectra you paste, in the browser, then get an annotation at the confidence level the evidence supports, or the methods and results text for it. https://msms-desk.skillsafe.ai/ ## What it does - Free, in the browser, nothing uploaded: parses MGF, MSP, MassBank records, JSON peak lists (GNPS-style records included) and plain "m/z intensity" peak lists, including one-line "m/z:intensity" spectrum strings; harmonises precursor m/z, ion mode, adduct, formula and InChIKey; processes query and references identically (invalid peaks dropped, duplicate m/z merged, intensities scaled to the base peak, peaks under a relative-intensity floor removed); scores every pair with greedy cosine and greedy modified cosine using matchms CosineGreedy / ModifiedCosineGreedy semantics (mz_power 0, intensity_power 1); reports matched peaks, precursor difference in Da and ppm and the share of query intensity explained; draws a mirror plot (downloadable as a standalone SVG with the scores in the caption); exports CSV and Markdown and a methods paragraph for the scoring settings. A query file with many features (an MZmine or MS-DIAL MGF export) gets a feature picker and an all-features CSV of each feature's best hit. - The scoring was checked against the matchms 0.33.1 source functions on 3,000 random score pairs with no difference beyond floating-point rounding (max 2.2e-16). - Flags: no candidate passes, too few peaks, missing query precursor, precursor mismatch on a passing candidate, ion-mode conflict, adduct mismatch, two distinct candidates within 0.05 cosine, a high score on few matched peaks, analog-only (modified cosine) matches, low explained intensity, unfragmented precursor, stereochemistry not resolved, single reference. - Defaults (adjustable, no universal threshold): tolerance 0.02 Da, score 0.6 with at least 5 matched peaks (the source skill's library-search example), relative-intensity floor 0.01, precursor tolerance 10 ppm. ## Paid lanes (model gpt-terra, signed-in users) - task "annotate": one call per candidate (supported, analog, ambiguous, rejected) with evidence for and against and key query peaks; fragment readings in words; caveats; a Schymanski et al. 2014 level (1, 2a, 2b, 3, 4, 5) and verdict (probable, tentative, unassigned); next evidence to collect. - task "report": a conservative methods paragraph, a results sentence, an annotation table row and limitations, with AUTHOR_INPUT_NEEDED where the input lacks a fact. - Every reply is reconciled in the browser: flags and candidates answered once, level and verdict consistent, verdict no looser than the scores allow, best candidate a scored one under its exact name, every quoted score, matched-peak count and m/z present in the scores, and no number or tool in the report text that the input lacks. Level 1 requires an authentic standard stated in the notes. ## Limits - Similarity is evidence, not proof of identity. No clinical, forensic or regulatory conclusions. - Up to 2,000 reference spectra are scored in the browser; a run is sent the top candidates (default 8, plus any other candidate that matches with an agreeing precursor) and up to 60 query peaks. The all-features CSV covers up to 500 features. Any cut is stated in the page and marked "-partial" in download names. - Vendor raw files and mzML are not read; export MGF or MSP first. ## Pages - App: https://msms-desk.skillsafe.ai/ - API tutorial: https://msms-desk.skillsafe.ai/api.html ## Source Derived from the agent skill @k-dense-ai/matchms (https://skillsafe.ai/skill/@k-dense-ai/matchms), part of k-dense-ai/scientific-agent-skills by K-Dense Inc. (https://github.com/k-dense-ai/scientific-agent-skills). Confidence levels: Schymanski et al., "Identifying Small Molecules via High Resolution Mass Spectrometry: Communicating Confidence", Environ. Sci. Technol. 2014. The example spectra are illustrative, not measured.