V9 COCONUT candidate-pool integration
Outcome
BASE-02 V9 was pushed and completed successfully. Compared with V8, the mass-ranked structure candidate pool now merges the 274,195 competition-training candidates with 436,389 COCONUT candidates, deduplicated by source InChIKey14 (30 key overlaps; 710,554 merged unique source keys). COCONUT is used for candidate structures and exact masses only; reference-spectrum retrieval remains the competition training index.
No competition submission was made by this run.
Runtime and artifact verification
jamesl8/enveda-casmi26-base-02-cpu-submission, V9; status COMPLETE.base02-v9-coconut-candidates-20260926.14c56a0b9fd20a9dc31c9b150461a54b295cd337d7a5a68860d76255b9140e7e.2fa29c4aa06e93b48e0cd6619fd2de3f4e956f0019d242141678b7287f2b43e0, matching the local data/test.parquet.base02-runtime-report.json, submission.csv, and enveda-casmi26-base-02-cpu-submission.log. Their archived SHA-256 hashes are in manifest.json; a second download matched all three hashes.136 passed with python -m pytest -q tests; BASE-02 focused tests: 44 passed.Comparison with V8's visible run
V9's visible-run CSV differs from the archived V8 visible-run CSV in 48 of 400 rows; 352 rows are identical. This is a visible-run artifact comparison only—not evidence of improved hidden score. The run report says all 400 molecules routed spectrally, but the mass-candidate pool is also available for candidate completion and can change the emitted list. Kaggle does not expose hidden-run routing/predictions here, so no score attribution or gain is claimed.
Provenance and limitations
The attached upstream dataset is prvsiyan/coconut-casmi26-candidates (title: “COCONUT 2.0 candidates + fingerprints (CASMI26)”), whose metadata declares CC BY 4.0. Source array hashes and downloaded candidate count are recorded in coconut-manifest.json in the local prepared asset directory. COCONUT contributes no spectra. The V9 kernel pins SHA-256 hashes for the upstream coco_mass.npy and coco_meta.pkl files, checks array alignment, finite positive sorted masses, unique 14-character keys, and nonempty SMILES before merging.
A reviewer independently sampled 300 evenly spaced entries from the compact prepared bundle: the structures parsed, their raw InChIKey14s matched the stored source keys, and their exact masses agreed with the parsed structures. In my earlier six-entry spot-check, five raw source identities also matched, but the last was compared using the scorer's tautomer-canonicalized identity rather than the raw InChIKey; that mismatch is not evidence of a bad source key. Neither spot-check proves every upstream row consistent. During inference, emitted SMILES are parsed and deduplicated using the scorer identity function. The V9 run completed and passed output-format validation, but exhaustive identity/mass consistency remains unverified.
The reviewer found no V9 runtime or merge correctness blocker. It did flag a metric-label caveat: covered_molecules / coverage count rows with at least one mass-eligible training-reference candidate, not rows known to contain the true answer or correctly ranked. The report's separate hybrid_coverage_definition disclaims identification accuracy, but interpret the bare coverage: 1.0 only as candidate/reference availability, never as answer coverage, accuracy, or score. No hidden-answer performance claim is supported.
One reporting quirk: mass_only_database_sha256 in the runtime report hashes the training-only source NPZ even though mass_only_candidate_count reports the merged pool. The separate coconut_mass_sha256 and coconut_metadata_sha256 fields identify the added COCONUT inputs. Interpret the former field as the BASE dataset hash, not a hash of the merged in-memory pool.
See manifest.json for complete file hashes and validation.json for the saved runtime-ID validation result. The remote output inventory was retrieved twice; report, CSV and log hashes matched both downloads.