Skip to content

Block-wise ablation, manuscript preview tooling, repaired binding sites - #4

Open
hallelx2 wants to merge 1 commit into
mainfrom
backup/pre-wipe-2026-08-21
Open

Block-wise ablation, manuscript preview tooling, repaired binding sites#4
hallelx2 wants to merge 1 commit into
mainfrom
backup/pre-wipe-2026-08-21

Conversation

@hallelx2

Copy link
Copy Markdown
Collaborator

Why

The previous ablation dropped the whole docking arm as one block. That block mixed three different information sources, so it could not answer whether receptor structure helps — 11 of its columns describe the docked ligand's own 3D shape and need no receptor at all.

What changed

scripts/ablation_by_block.py — ablates each block separately under stratified, scaffold-grouped and receptor-grouped CV (3 seeds × 3 folds). Contribution = full − without:

Split Receptor-dependent (132) Ligand pose shape (11) Both Noise ±
Stratified +0.0038 +0.0107 −0.0134 0.0139
Scaffold-grouped +0.0004 +0.0019 −0.0051 0.0135
Receptor-grouped −0.0016 +0.0082 −0.0065 0.0104

Every value is smaller than the seed spread of its own baseline, so none is distinguishable from zero. The receptor-dependent block contributes nothing on the split that tests it.

scripts/build_preview_html.py — renders a reading preview with each figure placed at its first mention, rather than under the legends at the end.

data/processed/binding_sites.json — repaired boxes for the seven receptors whose written chain was a G-protein subunit, a nanobody, or a different receptor entirely, plus a repaired_receptors record. main still shipped the stale boxes.

Note

The earlier ablation ran StratifiedKFold while being reported as scaffold-grouped. The delta itself was right; the split label was not. Figures now carry split, seeds, folds, baseline spread and sign convention explicitly.

🤖 Generated with Claude Code

…ding sites

Separate the docking arm into blocks that carry different information rather
than ablating it as one lump. Eleven columns describe the docked *ligand's* 3D
shape and need no receptor to compute; 132 are receptor-dependent. The combined
ablation could not distinguish them, so it could not answer whether receptor
structure helps.

Measured over three seeds x three folds under stratified, scaffold-grouped and
receptor-grouped CV, the receptor-dependent block contributes -0.002 / +0.000 /
+0.004 macro-F1 -- each inside the seed spread of its own baseline.

Also:
- build_preview_html.py renders a reading preview with figures placed at first
  mention; the DOCX pipeline puts them under the legends, which makes a draft
  hard to read.
- binding_sites.json carries the repaired boxes for the seven receptors whose
  written chain was a G-protein subunit, a nanobody or a different receptor,
  plus a repaired_receptors record. main still shipped the stale boxes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
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