Kaggle / October–December 2026
Molecule ID from Mass Spectra
An ongoing molecular-identification project combining spectral-library retrieval and learned fingerprint ranking to predict chemical structures from tandem mass spectra.
Ongoing
- Public rank
- 2,794
- MRR@25
- 0.226
As of 23 Oct 2026 View leaderboard ↗
Public leaderboard
The challenge
My approach
Solution notes — reviewed 23 October 2026. Methods, local experiments, and competition standings are identified separately.
Open pipeline diagram at full size
Identify structures, not individual spectra
Enveda CASMI 2026 provides tandem mass spectra and asks for up to 25 ranked molecular structures per query molecule. A molecule may have several spectra, so predictions must aggregate evidence at molecule level. The local metric implementation follows the competition’s normalized molecular-identity key and evaluates reciprocal rank, rather than comparing raw SMILES strings as if every representation were a different structure.
The library-search baseline
The first working pipeline searches known reference spectra. It establishes a useful starting point for molecules with close library coverage, but has limited reach for unseen structures. The first recorded public entry scored 0.148. Submission validation checks candidate identity, deduplication, row completeness, and the maximum list length so a ranking experiment cannot accidentally fail on output formatting.
Learning spectrum-to-fingerprint evidence
The owned FPNet implementation consumes up to 128 retained peaks, using m/z values and square-root intensities, together with precursor, adduct, instrument, polarity, and collision-energy information. It predicts fingerprint logits. A candidate fingerprint can then be scored against those logits with a matrix product, providing learned structural evidence even when a direct reference-spectrum match is weak. Training code is retained with the project.
Candidate coverage and a gated ranker
The expanded pool combines training structures with external candidate databases. A good fingerprint model cannot recover a molecule that is absent from the candidate set, so coverage and ranking are evaluated separately. rank.py implements both an additive library/fingerprint combination and a gate: strong library matches are ranked first, while the remaining candidates use the learned evidence. The selected public pipeline used a library threshold of 0.8 rather than adding the same library weight everywhere.
Validation that reflects different failure modes
The structure-disjoint harness distinguishes queries with reference spectra, structures present only in candidate databases, and harder absent-structure cases. It reports retrieval and ranking behavior by group and records held-out comparisons. The experiment log shows that additive combination could damage the easy library-covered group, which motivated gating. The reported validation intervals belong to those saved local comparisons and should not be presented as uncertainty on the public leaderboard rank.
Progress, not a finished solution
Recorded public entries progressed from 0.148 to 0.204 and then 0.226; the 23 October 2026 snapshot is rank 2,794 with three entries. A later listwise fine-tuning idea was prepared but had not run in the reviewed record, so it is not part of the achieved result. The project remains ongoing. Its main lesson is to diagnose missing candidates, weak spectral evidence, and ranking mistakes separately rather than treating every low reciprocal rank as the same modeling problem.
Sources and provenance
The implementation and experiment records for this entry are private. This account summarizes the reviewed local code and logs without publishing private artifacts.