Add the chirality fine-tuning split - #3
Conversation
splits/chirality_finetune/{train,valid,test}.csv index the published
chirality set (EscheWang/3dcs, config chirality) by its key/mol_id/en_id
fields: 11,927 / 1,496 / 1,480 stereoisomer entries over 3,072 / 431 / 400
parent molecules and 42,389 / 5,071 / 4,931 conformers.
The split is 8:1:1 by Bemis-Murcko scaffold of the parent molecule.
Recomputed from the published data with RDKit: all 14,903 rows resolve to a
row of the chirality config, the union of the three files is set-equal to
that config, and no key, mol_id or Murcko scaffold is shared between any two
splits.
The fine-tuning code and checkpoints are not part of this repository.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 7de46108ea
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| i.e. `<mol_id>::en<en_id>_<atom index>:<R|S>;...`, where the suffix lists the CIP label assigned to | ||
| each stereocentre of that stereoisomer. |
There was a problem hiding this comment.
Document the achiral key variant
The documented grammar does not cover every included row: seven records use the literal _achiral suffix, such as CHEMBL1182833::en1_achiral in test.csv, rather than an atom/CIP-label list. A consumer validating or parsing keys according to this format will reject legitimate entries, so the grammar should explicitly allow the achiral variant.
Useful? React with 👍 / 👎.
Adds
splits/chirality_finetune/, the train / validation / test split used for the chirality fine-tuning experiments. Data only — the fine-tuning code and the fine-tuned checkpoints are not part of this repository.Files
train.csvvalid.csvtest.csvREADME.mdEach CSV has the header
key,mol_id,en_id. The three columns are copied verbatim from the corresponding row of the published datasetEscheWang/3dcs, configchirality, sokeyjoins against that config directly and no re-derivation is needed on the user's side. Rows are sorted bymol_id, thenen_id.The split is 8:1:1 by Bemis–Murcko scaffold of the parent molecule: each parent molecule, with all of its enumerated stereoisomers and all of their conformers, sits entirely in one split.
Counts
key)mol_id)n_conformers)80.0 / 10.0 / 9.9 % by entry, 78.7 / 11.0 / 10.2 % by parent molecule, 80.9 / 9.7 / 9.4 % by conformer.
Verification
Every number was recomputed from the published
EscheWang/3dcschiralityconfig with RDKit 2026.03.6, not carried over from the original run.chiralityconfig, andmol_id/en_idagree with the stored values on all 14,903 rows (0 mismatches).chiralityconfig — 14,903 rows and 52,391 conformers, 0 rows in only one of the two. The split covers the whole set rather than a subset of it.keyin two splits — 0 for all three pairs.mol_idin two splits — 0 for all three pairs.mol_blocksfield (MolFromMolBlock(..., removeHs=True)thenMurckoScaffoldSmiles(includeChirality=False)); all 3,903 molecules parsed. Ignoring chirality is the stricter test, since it merges scaffolds that differ only in stereochemistry and so can only create collisions, not hide them.n_conformersagree with the per-split figures above.1480 4931.Two details recorded in the README rather than smoothed over: the two molecule counts differ (3,072 / 431 / 400 distinct
mol_id, of which 3,024 / 421 / 397 contribute ≥ 2 stereoisomers), and the 125 acyclic molecules, which all reduce to the empty Murcko scaffold, are all invalid— that is whyvalidhas 431 molecules but 195 distinct scaffolds. The empty scaffold stays within one split, so scaffold overlap is 0 whether or not it is counted.Format and layout follow
splits/rmd17/, including the SHA-256 block.🤖 Generated with Claude Code