Skip to content

Add the chirality fine-tuning split - #3

Merged
ComDec merged 1 commit into
mainfrom
splits/chirality-finetune
Sep 18, 2026
Merged

ComDec merged 1 commit into
mainfrom
splits/chirality-finetune

Conversation

@ComDec

@ComDec ComDec commented Sep 18, 2026

Copy link
Copy Markdown
Owner

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

File Data rows
train.csv 11,927
valid.csv 1,496
test.csv 1,480
README.md counts, verification, usage

Each CSV has the header key,mol_id,en_id. The three columns are copied verbatim from the corresponding row of the published dataset EscheWang/3dcs, config chirality, so key joins against that config directly and no re-derivation is needed on the user's side. Rows are sorted by mol_id, then en_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

train valid test total
Entries (key) 11,927 1,496 1,480 14,903
Parent molecules (mol_id) 3,072 431 400 3,903
… with ≥ 2 stereoisomers 3,024 421 397 3,842
Conformers (Σ n_conformers) 42,389 5,071 4,931 52,391
Distinct Murcko scaffolds 1,995 195 271 2,461

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/3dcs chirality config with RDKit 2026.03.6, not carried over from the original run.

  • Mapping coverage: 14,903 / 14,903 matched, 0 unmatched. Every row of the three CSVs resolves to a row of the chirality config, and mol_id / en_id agree with the stored values on all 14,903 rows (0 mismatches).
  • Union is set-equal to the full chirality config — 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.
  • No key in two splits — 0 for all three pairs.
  • No mol_id in two splits — 0 for all three pairs.
  • No Murcko scaffold in two splits — 0 for all three pairs. Scaffolds were computed from the mol_blocks field (MolFromMolBlock(..., removeHs=True) then MurckoScaffoldSmiles(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.
  • Conformer totals from n_conformers agree with the per-split figures above.
  • The usage snippet in the README was run against the published dataset and returns the documented 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 in valid — that is why valid has 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

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>
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-18T07:36:25.841652Z 7de4610 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@codacy-production

Copy link
Copy Markdown

Up to standards ✅

🟢 Issues 0 issues

Results:
0 new issues

View in Codacy

NEW Get contextual insights on your PRs based on Codacy's metrics, along with PR and Jira context, without leaving GitHub. Enable AI reviewer
TIP This summary will be updated as you push new changes.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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".

Comment on lines +25 to +26
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@ComDec
ComDec merged commit 41048de into main Sep 18, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant