# METHODOLOGY — a more-correct binding-site-search protocol for Ir(III)-carbene complex 1a on the Girdin C-terminus (VAL-METH-001)

**Scope.** This document specifies, as an ordered and re-runnable pipeline, the protocol this
mission used to locate the binding site(s) by which the substitutionally-inert octahedral
iridium(III) carbene complex **1a** (and its 4-R congeners **1b–1e** plus the R=H control) binds
the C-terminal region of human **Girdin / CCDC88A** (UniProt **Q3V6T2**, 1871 aa). It is written
so a third party can re-run every stage from the commands and numeric acceptance criteria given
here. It then **explicitly contrasts** the protocol with the approach in the source paper and
states honestly what the method **cannot** decide.

**Source paper (the thing we are testing/replacing).** Ruan M-L, Ni W-X, Chu JCH, Lam T-L, Law
K-C, Zhang Y, Yang G, He Y, Zhang C, Fung YME, Liu T, Huang T, Lok C-N, Chan SL-F, Che C-M.
*Iridium(III) carbene complexes as potent girdin inhibitors against metastatic cancers.* Proc
Natl Acad Sci USA. 2024;**121**(25):e2316615121. doi:10.1073/pnas.2316615121 (PMC11194514). Full
text `provenance/main_plain.txt`; SI `provenance/si/sapp.txt` + `provenance/si/pnas.2316615121.sapp.pdf`.

**Repository root** for every path below: `/root/girdin-dock/`. Project Python venv:
`/root/girdin-dock/venv/bin/python3` (rdkit, gemmi, meeko, biopython, numpy 1.26.4, scipy 1.11.4);
organometallic-build venv `/root/biometaldb-3d/arch-env/bin/python3` (Architector 0.0.10, rdkit,
ase, openbabel). Docking/QM binaries in `bin/` (smina, AutoDock4/AutoGrid4 4.2.6, Vina 1.2.5,
Meeko, obabel) and `fpocket`, `xtb 6.7.0`, `crest 3.0.2`.

---

## 0. Conventions that hold for the whole pipeline

### 0.1 Residue numbering (state it for every residue)
All residue numbers in this document are **canonical UniProt Q3V6T2**. **The paper numbers residues
as canonical − 1** (verified: `altrecept/numbering_manifest.json`, `evidence/verify_numbering.py`).
So the paper's "SH2 domain 1702–1835" is canonical **1703–1836**; the paper's conserved motifs
"G¹⁷⁴⁰XFXXR¹⁷⁴⁵" and "pS¹⁷¹⁶XXF¹⁷¹⁹" are canonical **G1741…R1746** and **pS1717…F1720**; the
pEGFR-binding mutagenesis set (paper K1722E/R1745/K1749E/Q1777E) is canonical
**K1723 / R1746 / K1750 / Q1778**. Every residue quoted below is given in canonical numbering with
the −1 paper offset understood.

### 0.2 The experimental yardstick is FIXED, read-only, and primary-sourced
The only ground truth this pipeline is validated against is the experimental **structure–activity
relationship (SAR)**: the MST dissociation constants of the series to purified His-Girdin-CT
(1660–1870), in which **only the 4-R substituent on one iso-BIPY-NHC ligand varies**. Values are
re-extracted verbatim from the **primary source** (`provenance/main_plain.txt`, Fig. 7E/8E/7G text
+ SI Fig. S20) — never from a mission summary file (`dock_ctrl/kd_primary_source.json`,
grep-verified present in the article text):

| complex | R group | Kd (µM) | primary figure |
|---|---|---:|---|
| 1a | pyrrolidinyl | **1.3** | Fig. 7E + SI S20 |
| 1d | piperidinyl | **1.5** | Fig. 8E + SI S20 |
| 1e | dimethylamino (NMe₂) | **1.6** | Fig. 8E + SI S20 |
| 1c | morpholinyl | **2.6** | Fig. 8E + SI S20 |
| 1b | tert-butyl | **3.6** | Fig. 8E + SI S20 |
| Irppy-bipy (R=H) | none (plain 2,2′-bipy) | **> 20** | Fig. 7G + SI S20 |

Experimental rank (tightest → weakest): **1a < 1d < 1e < 1c < 1b ≪ R=H.**

**Two robust signals** a correct model must rationalize, and **one non-signal it must not claim**:
- **Signal A — the 4-R substituent is essential.** R=H is ≥ ~1.6 kcal/mol weaker than 1a
  (Kd > 20 vs 1.3 µM ⇒ ΔΔG ≈ RT·ln(20/1.3) ≥ 1.6 kcal/mol at 298 K).
- **Signal B — a coarse chemotype trend:** small basic amine ring (1a/1d/1e) > bulky/ether/tert-butyl
  (1c/1b).
- **NOT a signal — the fine intra-amine ordering** 1a<1d<1e<1c<1b spans only **~0.6 kcal/mol**,
  which is **at or below docking-score noise**. It is **not reproducible and is never claimed** by
  any stage below. (This is a hard rule of the method, not a post-hoc excuse.)

### 0.3 Why rigid-body docking with a metal surrogate is legitimate here
1a is a **substitutionally-inert octahedral Ir(III)** complex: the metal is fully coordinated and
buried, so binding is **outer-sphere**, shape/van-der-Waals-dominated (the paper's own AutoDock4
electrostatic term is a −0.36 kcal/mol rounding contribution). Rigid-body docking of the whole
complex with an Ir→Fe **shape surrogate** (smina rejects the `Ir` atom type; Fe matches the ionic
radius and is used for shape only) is therefore appropriate and was validated in prior work. Charges
are xTB-GFN2 Mulliken; smina's Vina scoring function has **no Coulomb term** so charges are
provenance only (proven bit-identical under xTB / zero / ±0.5 charge columns —
`dock_setup/charge_indep.csv`).

---

## 1. What the authors did, and why it is the wrong instrument for this target

**The authors' method (from the primary source).** The paper docks the complex into a **single,
rigid, homology-modeled "SH2-like" pocket**:

- *"( F ) Girdin-CT domain structure and molecular docking analysis of the interaction between
  **1a** and surrounding amino acid residues within the Girdin C-terminus protein-binding **SH2
  domain (1702 to 1835)**."* (Fig. 7F; canonical 1703–1836.)
- *"Molecular docking analysis of the C-terminus of Girdin (1702 to 1835) containing the protein
  binding SH2 domain revealed a pocket formed by conserved motifs (**G¹⁷⁴⁰XFXXR¹⁷⁴⁵** and
  **pS¹⁷¹⁶XXF¹⁷¹⁹**)."* (canonical G1741…R1746 / pS1717…F1720.)
- The receptor is a homology model templated on **mouse SOCS3-SH2 (PDB 2HMH)** over ~1714–1816
  (reproduced here as `homology/girdin_sh2_model.pdb`, renumbered 1–103). Docking is
  **single-complex** (1a; the Irppy-bipy pose is shown only for superimposition, Fig. 7H). The 4-R
  Kd series (1a–1e, Fig. 8E) **is measured but never used to validate the docking pose** (the SAR
  sits unused in the SI).

**Three fatal problems for this target:**

1. **The fold is refuted.** Prior work in this workspace established by **six independent methods**
   that Girdin-CT is **not** a spontaneously-folding SH2 domain: InterPro/Pfam and HMMER (PF00017)
   return 0 hits; TM-align 0.11–0.13 and Foldseek (PDB+AFDB) 0 hits vs any real SH2; 19.6% identity
   to the template; and a **functional test** — the SH2-segment + EGFR-pTyr co-fold **fails 0/5**
   (domain pLDDT 37–39) while the identical method recovers a *bona fide* SH2 at 2.4 Å on a positive
   control (`altrecept/verdicts.json` VAL_MODEL_001/003/004; `REPORT_template_assessment_2026-07-06.md`).
   Docking into a fold the target does not adopt anchors the entire result to a modeling artifact.
2. **A single rigid conformer cannot represent a disordered target.** The region is a genuine
   **intrinsically disordered region (IDR)**: UniProt annotates 1736–1871 "Disordered"; AlphaFold
   pLDDT ≈ 31 and ESMFold confidence ≈ 0.4 over 1714–1815; fpocket druggability at the authors'
   nominal pocket is **0.018** and a ligand-sized cavity exists in only 1/11 models
   (`REPORT_girdin_docking_2026-07-02.md`). One frozen pocket asserts a stable structure that the
   biophysics says is not there.
3. **No SAR validation = no falsification.** A single-complex docking pose can always be drawn; it
   makes no prediction that the experiment could contradict. The paper never asks whether the pocket
   reproduces the *measured dependence of Kd on R* — the only in-house quantitative test available.

The corrected protocol fixes all three: it (i) never assumes a fold, sampling a **disorder-aware
ensemble** instead; (ii) searches the **whole surface blindly** rather than one pocket; and (iii)
makes every candidate site **stand or fall against the fixed experimental SAR** under a
pre-registered, noise-gated, multiple-comparison-guarded test.

---

## 2. The corrected protocol — ordered, re-runnable pipeline

Pipeline: **(0) build & validate the exact ligand series → (1) disorder-aware target ensemble →
(2) per-conformer fpocket catalogue → (3) blind whole-surface docking of the full series →
(4) SAR rank-order validation vs the fixed Kd yardstick (MDE / Signal A / Signal B /
multiple-comparison guard) → (5) physics rescoring of the lead / best-occupied site →
(6) orthogonal-data consistency.** Each stage names inputs, tools, exact commands, numeric
acceptance criteria, and its committed evidence directory.

### Stage 0 — Build & chemically validate the exact 1a–1e + R=H series
*Everything downstream depends on correct ligand structures; the paper's exact coordinates
(CCDC 2203250) are license-gated, so the series is rebuilt and validated against the SI.*

- **Inputs:** SI SMILES / HRMS / EA / NMR (`provenance/si/sapp.txt`), ref 42 (Lam et al. Inorg Chem
  2017) ancillary NHC ligands, Fig. 1 ORTEP connectivity.
- **Tools:** Architector 0.0.10 (`/root/biometaldb-3d/arch-env`), GFN2-xTB (xtb 6.7.0), CREST 3.0.2.
- **Scaffold:** all seven species are +1, closed-shell-singlet **[Ir(ppy)₂(4-R-iso-BIPY-NHC)]⁺**
  octahedra differing **only** in the 4-R group of the mesoionic carbene ring (para to the
  pyridinium N). R = pyrrolidinyl (1a) / tert-butyl (1b) / morpholinyl (1c) / piperidinyl (1d) /
  NMe₂ (1e); plus two R=H controls (see below).
- **Commands:**
  ```bash
  cd /root/girdin-dock/stage1/ligands_series
  PY=/root/biometaldb-3d/arch-env/bin/python3
  $PY build_complexes.py <id>       # octahedron; 1b/1e via graft_r.py onto opt R=H scaffold
  $PY conformers_charges.py <id>     # CREST/Architector confs → consistent xtb-GFN2 SP → xtb Mulliken q
  $PY validate_formulas.py           # SMILES formulas/masses vs SI HRMS/EA
  $PY graph_diff_check.py            # proves ONLY R differs (R=H core ⊂ every member)
  ```
- **Numeric acceptance criteria (all met — `ligands_series/{SERIES_TABLE.md,graph_diff_check.json}`):**
  net charge **+1** and even-electron singlet on every complex; Ir **6-coordinate** (3 Ir–C + 3 Ir–N
  scaffold / 2 Ir–C + 4 Ir–N bipy control, 1.98–2.23 Å); **only the 4-R fragment differs** (heavy-atom
  induced-subgraph isomorphism: R=H scaffold is a subgraph of all 1a–1e; leftover = exact R group);
  formulas agree with SI HRMS calc m/z to **< 0.7 mDa** (¹⁹¹Ir isotopologue) and with EA salt
  formulas; xTB Mulliken charges sum **+1**, no NaN.
- **R=H is built two ways, deliberately** (`ligands_series/IRPPY_BIPY_RESOLUTION.md`): (i)
  **`ctrl_Irppy_bipy`** = the *actually MST-measured* control, plain **[Ir(ppy)₂(2,2′-bipy)]⁺**
  (SI: "reported previously", "no R group"; Kd > 20 µM) — a constitutional isomer of the scaffold;
  (ii) **`ctrl_scaffold_H`** = the iso-BIPY-NHC scaffold with R→H, which isolates the 4-R effect
  cleanly (only R differs from 1a–1e) but was never MST-measured. Both are docked; which one carries
  the ">20 µM" bound is stated per stage.
- **Evidence:** `stage1/ligands_series/` (7 complexes: `<id>.{xyz,sdf}`, `<id>_selected.{xyz,sdf}`,
  `<id>_charges.txt`, `SERIES_TABLE.md`, `series_manifest.json`, `graph_diff_check.json`).

### Stage 1 — Disorder-aware conformational ensemble of Girdin-CT
*Replace the single rigid fold with a diverse ensemble spanning independent structure sources.*

- **Inputs / source families:** AlphaFold2 (`receptor/AF-Q3V6T2-F1-v6.pdb`), ESMFold
  (`receptor/girdin_ct_esmfold.pdb`), 15 Boltz-2 co-folds (chain A of Girdin-CT + Gαi3 / EGFR-pY
  peptides, `cofold/out/**`, `altrecept/out/**`), SOCS3 homology (the authors' refuted template, kept
  as *one* conformer), and ANM normal-mode expansion (MD-surrogate flexibility sampler seeded from
  AF/ESMFold/Boltz). **Modeling window canonical 1690–1850; analysis span canonical 1713–1823**
  (covers the mutagenesis-critical region + flanks).
- **Tools:** gemmi / Biopython (slicing, canonical renumber), `anm_expand.py` (ProDy-style ANM),
  Kabsch Cα-RMSD.
- **Commands:**
  ```bash
  source /root/girdin-dock/venv/bin/activate
  cd /root/girdin-dock/stage1/ensemble
  python build_members.py && python analyze_ensemble.py
  python verify_selfcheck.py        # independent Biopython re-derivation; expect ALL CHECKS PASS
  ```
- **Numeric acceptance criteria (all met — `ensemble/diversity_summary.json`):** after dropping
  near-duplicates (< 1.5 Å Cα-RMSD), retain **≥ ~20 distinct** members from **≥ 2 independent source
  families**; pairwise Cα-RMSD over 1713–1823 with **median ≥ ~3 Å** and **min ≥ 1.5 Å**; disorder
  represented honestly (Rg spread + uniformly low pLDDT), **no single fold forced**. Achieved: **28
  distinct** members / **5** families; median **20.33 Å**, min **2.06 Å**, max 44.50 Å; Rg 13.4–46.5 Å
  (compact ↔ extended); mean pLDDT 23–42 (IDR-consistent).
- **Evidence:** `stage1/ensemble/{member_table.*,rmsd_matrix.csv,diversity_summary.json,provenance_manifest.json}`.

### Stage 2 — Per-conformer transient-pocket catalogue
*Ask where ligand-sized cavities recur across the ensemble, without assuming any is druggable.*

- **Tool:** `fpocket` on every member. **Command:**
  ```bash
  cd /root/girdin-dock/stage1/ensemble
  python run_fpocket.py && python catalogue_pockets.py
  ```
- **Numeric acceptance criteria (`ensemble/pocket_catalogue.json`):** enumerate all pockets; define a
  **recurrent site** = a contiguous canonical span whose residues are lined by **≥ half of the members
  (≥ 14/28)**; report per-site recurrence count, druggability (**max and recurrence-weighted mean**),
  volume, and which mutagenesis residues it contains. **Interpretation rule:** a high *max*
  druggability with a *low recurrence-weighted mean* = a **transient** pocket, **not** a stable
  druggable site. Achieved: **288 pockets**, **8 recurrent sites**; transient druggability (spikes to
  ~0.92 in single conformers, recurrence-weighted mean low) — including **S01 (1743–1767, over R1746 /
  K1750)** and **S07 (1778–1780, over Q1778)**. Consistent with **no single stable druggable pocket**.
- **Evidence:** `stage1/ensemble/{pocket_catalogue.*,pocket_residue_recurrence.csv,all_pockets.json,fpocket/}`.

### Stage 3 — Blind whole-surface global docking of the full series
*No assumed pocket: dock every complex over the whole surface of every tractable member, blind to Kd.*

- **Inputs:** the six SAR complexes `{1a,1b,1c,1d,1e,ctrl_scaffold_H}` (Stage 0) into the **compact /
  collapsed** ensemble members (Rg ≤ ~21 Å — a *blind, Kd-independent compactness cut*: a whole-surface
  box on an extended random coil is mostly empty space; the 8 docked members span all four collapsed
  families E005/E007/E008/E011/E012/E016/E020/E028).
- **Fixed docking protocol (held identical to the VAL-DOCK-001 baseline; `dock_setup/PROTOCOL.md`):**
  engine **smina**; ligand **rigid (TORSDOF 0)**, **Ir→Fe** shape surrogate, xTB-GFN2 charges;
  **exhaustiveness 32**; num_modes 20; **box = full-structure bounding box of all receptor heavy atoms
  + 8 Å margin per side** (`boxes.json`: `whole_surface:true, pocket_aimed:false`). Receptors are
  Girdin-CT chain A only (co-fold partner chains stripped, 0 HETATM, canonical numbering) so the search
  is uncontaminated.
- **Baseline / convergence acceptance criteria (`dock_setup/PROTOCOL.md`):** the exact 1a reproduces the
  same-engine reference score **−7.40** to within **±1.0 kcal/mol** (achieved 1a mean −8.355, Δ = 0.955);
  exhaustiveness chosen so **both** an easy and a hard ligand are seed-converged — exh 32 is the lowest
  setting where the reference conformer 4852 converges (SD 1.09 at exh 8 → 0.006 at exh 32).
- **Commands:**
  ```bash
  cd /root/girdin-dock/stage1/dock_blind
  ../../venv/bin/python3 prep_ligands.py && ../../venv/bin/python3 prep_receptors.py
  ../../venv/bin/python3 run_blind.py            # 6 complexes × 8 members × 3 seeds = 144 docks; writes ALL_DONE
  ```
- **Site clustering (pose-derived, canonical-residue based):** each pose's contact residues =
  receptor residues with a heavy atom within 4.5 Å of any ligand heavy atom; the pose **anchor** =
  most-contacted residue; anchors from all poses are single-linkage-clustered along the canonical
  sequence (6-residue gap) → each cluster is a site `Bxx`. (Sequence-space clustering is the only
  cross-member-consistent notion for an IDR with no shared 3-D fold.)
- **Evidence:** `stage1/dock_blind/{poses/,pose_scores.csv,site_clusters.*,boxes.json,README.md}`
  (144 poses / 20 modes each).

### Stage 4 — SAR rank-order validation against the fixed Kd yardstick
*The decisive test. Every candidate site is scored post-hoc against the fixed SAR under a
pre-registered, noise-gated, multiple-comparison-guarded rule. Kd is read-only; no per-complex tuning.*

- **Per-complex site score** = mean docking affinity over **all occupied (member × seed) cells** at
  that site (no favorable subset).
- **Minimum Detectable Effect (MDE), defined once and imported verbatim** (`dock_setup/MDE_ESTIMATOR.md`,
  `dock_setup/mde_estimator.py`):
  ```
  MDE = 2 × sqrt( mean over complexes of Var_within-complex( score over members × seeds ) )
  ```
  the pooled **within-complex** SD (ddof=1) at the claim surface, **doubled**, **excluding** the
  between-complex signal being tested (pooling it in would bias toward false negatives). A difference
  is **claimable only if it exceeds the MDE.** The claim granularity is **members × seeds** — the full
  operative band, **not** the tiny seed-only floor (σ_seed = 0.0115 kcal/mol).
- **Pre-registered signals (numeric pass/fail):**
  - **Signal A (R essential):** score(R=H) is the least-tight of the six **AND**
    `mean(1a–1e) − score(R=H) ≥ MDE`.
  - **Signal B (coarse chemotype):** `mean(1a,1d,1e) − mean(1b,1c) ≥ MDE`.
  - **Fine ordering:** never claimed (below noise, §0.2).
- **Multiple-comparison / metric-gaming guard:** because many sites × two signals are tested, compute
  the **expected number of false positives** by a **720-permutation** null (all 6! relabelings of the
  complexes onto the observed per-complex scores), summed over all scored sites (`perm_p_both`). A site
  is a **lead only if it clears both MDE-gated signals AND the site-wise expected-FP is ≈ 0.** Rank
  correlations (Spearman ρ, Kendall τ) are reported for context but are **not** sufficient on their own
  — a perfect ρ inside the noise band is explicitly **not** a hit.
- **Command:**
  ```bash
  cd /root/girdin-dock/stage1/site
  ../../venv/bin/python3 analyze_sites.py         # re-derives sites + SAR + guard from the raw poses
  ```
- **Result (blind search — `stage1/site/{sar_by_site.*,blind_summary.json,README.md}`): honest NEGATIVE.**
  **N_sites = 4** (B01 1692–1744, B02 1752–1792, B03 1804, B04 1811–1833); 3 have a complete 6-complex
  SAR and are signal-scored. **0 sites clear both MDE-gated signals; lead = none; expected-FP = 0.0**
  (720-perm, verified by independent brute force: the max-achievable Signal-A gap ≤ 0.58 < site MDE
  ≥ 0.72 at every site). The honest disclosure: **B04 has a *perfect* rank order (ρ = 1.0, τ = 1.0)**
  yet is **correctly not a lead** — its R-essential gap (0.46) is below the site MDE (0.72), i.e.
  exactly the ~0.6 kcal/mol fine ordering that is at/below docking noise. Reporting it would be the
  multiple-comparison failure this guard exists to prevent.

**Authors'-pocket control (VAL-CTRL-001 — the decisive cheap control).** The identical Stage-4 test is
run with all six complexes docked into the **reproduced authors' homology pocket**
(`homology/girdin_sh2_model.pdb`, 6 seeds each; `stage1/dock_ctrl/{CTRL_RESULTS.md,ctrl_results.json}`):
```bash
cd /root/girdin-dock/stage1/dock_ctrl
../../venv/bin/python3 prep_all.py && ./run_ctrl.sh && ../../venv/bin/python3 analyze_ctrl.py
```
Here the R=H control is the **measured** `ctrl_Irppy_bipy` (Kd > 20 µM). Result: the authors' pocket
**reproduces both** Signal A (best-score gap **0.95** / mean **0.94** ≫ MDE **0.125**) and Signal B
(gap **0.30 / 0.34** > MDE), with Spearman **ρ = +0.83 (p = 0.042)**, Kendall **τ = +0.73 (p = 0.056)**.
**Crucial honest reading:** reproducing these coarse signals does **not** validate the pocket — Signal
A is driven by R=H simply being a *smaller ligand* and Signal B by amine rings being *bulkier*; both are
shape/size effects that are **not pocket-specific** (they would emerge in almost any concave surface).
This is exactly why the blind whole-surface search + multiple-comparison guard (not a single hand-picked
pocket) is the load-bearing test. The fine ordering is not claimed (docking misplaces 1e).

### Stage 5 — Physics rescoring of the lead / best-occupied site
*Higher-fidelity quantum rescoring, band computed at the same claim granularity.*

- Because the blind verdict was NEGATIVE, rescore the **best-occupied** site **B01** (canonical
  1692–1744; all 8 members × 6 complexes; the most-occupied cluster) — **explicitly as the
  best-occupied site, not a validated lead.**
- **Method:** GFN2-xTB interaction energy `dE_int = E(complex+pocket) − E(complex) − E(pocket)`
  (more negative = tighter). Pose reconstructed by rigid Kabsch of `<id>_selected.xyz` onto the
  best-scoring docked mode (dock is rigid, RMSD ≤ 5.5e-4 Å; nothing invented). Pocket = whole
  receptor residues with any heavy atom ≤ 8.0 Å of the complex; **obabel `-h` neutral valence-fill →
  pocket charge 0** (the pocket self-energy cancels exactly in dE_int; only the 4-R group differs
  between complexes, so the neutral pocket does not bias the SAR). Complex charge +1, singlet;
  **gas phase, `--etemp 6000`** (opens the near-degenerate protein-pocket gap for SCF convergence,
  applied identically to all three SPs); `ulimit -s unlimited` + `OMP_STACKSIZE=4G` (avoids the xtb
  high-etemp `longjmp` crash). Same MDE formula, same claim granularity (members × seeds).
- **Commands:**
  ```bash
  cd /root/girdin-dock/stage1/rescore
  ../../venv/bin/python3 run_rescore.py                  # 140 poses, idempotent/resumable (~46 min)
  ../../venv/bin/python3 analyze_rescore.py
  ../../venv/bin/python3 verify_rescore.py --rederive 2  # re-derives 2 complexes end-to-end (|Δ| = 0.0000)
  ```
- **Acceptance criterion:** confirm the SAR only if Signal A / Signal B clear the **rescoring** MDE.
  **Result (`stage1/rescore/{README.md,rescore_results.json}`): DOES NOT CONFIRM.** Rescoring MDE =
  **14.22 kcal/mol**; Signal A gap **−6.54** and Signal B gap **−3.97** are both far **inside** the
  band (R=H is not even least-tight by mean xTB energy). The rescore mean-rank anti-correlates with Kd
  (ρ = −0.94) but that is **inside the 14 kcal/mol noise band → not claimable in either direction**;
  reported for completeness, not interpreted as "refuting" the SAR.

### Stage 6 — Orthogonal-data consistency
*Cross-check any candidate/focus site against independent experimental facts about this region.*

- **Gαi3 / GBA pulldown (the one validated interaction of this region):** the GBA motif (canonical
  ~1672–1702) binds Gαi3 (reproduced vs PDB **6MHF**, `altrecept/verdicts.json` VAL_MODEL_002), and 1a
  disrupts the Girdin–Gαi3 pulldown (paper SI Figs S23/S24). A physiologically-plausible 1a site should
  be *consistent with* — ideally overlap — this interface; but the GBA is a thin surface helix with **no
  deep pocket**.
- **Mutagenesis-critical residues** (K1723 / R1746 / K1750 / Q1778, pEGFR-binding) and **acidic patches**
  are the expected functional hotspots.
- **Result (`stage1/site/structural_rationalization.json`):** the best-occupied focus pose (1d in E008,
  −9.27 kcal/mol at B01) puts the 4-R group in measured < 4 Å contact (3.32 Å) with ILE1698 / PHE1743
  and overlaps the **GBA/Gαi3 interface (1698–1702)** and recurrent transient pockets S01/S06 — so an "R
  drives affinity" rationale is *geometrically admissible* there, **but** because B01 fails both
  MDE-gated signals (Stage 4) **no just-so mechanistic story is asserted**. No contact with the pEGFR
  mutagenesis residues or an acidic residue in this pose.

---

## 3. Explicit contrast: authors' method vs the corrected protocol

| dimension | Authors (Ruan et al. 2024) | Corrected protocol (this pipeline) |
|---|---|---|
| **receptor** | one **rigid homology model** of an assumed **SH2-like fold** (2HMH template) — a fold refuted by 6 methods + a failed functional co-fold | **disorder-aware ensemble**, 28 distinct members / 5 independent sources, **no fold assumed** (Stage 1) |
| **search** | into **one predefined pocket** (canonical ~1703–1836) | **blind whole-surface** boxes (bbox + 8 Å) over every compact member; pose-clustered into sites (Stage 3) |
| **ligands docked** | effectively **single-complex** (1a; Irppy-bipy only superimposed) | **full validated series** 1a–1e + R=H, differing only in 4-R (Stage 0) |
| **use of the Kd SAR** | **measured but never used** to validate the pose | **the primary acceptance test** — MDE-gated Signal A/B + 720-perm multiple-comparison guard (Stage 4) |
| **noise control** | none stated | explicit **MDE** at claim granularity; fine ~0.6 kcal/mol ordering declared **unclaimable** |
| **physics** | AutoDock4 score only | GFN2-xTB interaction-energy **rescoring** at the same claim band (Stage 5) |
| **orthogonal data** | not integrated | **Gαi3/GBA pulldown + mutagenesis residues** consistency (Stage 6) |
| **falsifiability** | a pose can always be drawn → **not falsifiable** | a site must **beat the experimental SAR above noise** or it is reported as **NEGATIVE** |
| **outcome** | a confident single binding pose | honest **NEGATIVE** blind lead; authors' pocket reproduces only coarse *shape/size* signals that are **not pocket-specific** |

### Why ensemble + blind + SAR-validation is the correct instrument for a disordered target
1. **A disordered target has no single structure to dock into.** With AF pLDDT ≈ 31 / ESMFold ≈ 0.4 and
   Rg ranging 13–46 Å, the physical object is an **ensemble**, not a fold. Any *single* conformer (the
   authors' homology model included) is one sample of a broad distribution; conclusions from it do not
   generalize. Sampling the ensemble is the only representation faithful to the biophysics.
2. **A blind whole-surface search removes the confirmation bias built into a chosen pocket.** Fixing the
   pocket first presupposes the answer; on an IDR with only **transient** pockets (Stage 2) that
   presupposition is unsupported. Searching the whole surface lets the data — not the modeler — nominate
   sites, and forces an explicit **multiple-comparison** accounting.
3. **The experimental SAR is the only in-house quantitative oracle, so it must be the acceptance test.**
   The complexes differ **only** in the 4-R group, so the Kd series is a controlled titration of one
   chemical variable. A correct binding model must reproduce the **robust** SAR signals above a
   defensible noise floor; requiring this converts docking from an illustration into a **falsifiable
   hypothesis test**. A rigorous NEGATIVE under this test is itself a real, publishable result.

---

## 4. Limitations (honest — the method's own boundaries)

1. **Fine ordering is not resolved, by design.** The intra-amine ordering (1a<1d<1e<1c<1b, ~0.6 kcal/mol)
   is at/below docking-score noise and is **never claimed** by any stage. Only Signals A and B are
   testable.
2. **A binding site here is a *computational hypothesis*, never a proof.** The blind search returned a
   **NEGATIVE** (no site reproduces the SAR above noise) and the physics rescore **does not confirm**; the
   authors'-pocket control reproduces only coarse *shape/size* signals that are **not pocket-specific**.
   None of this proves *where* 1a binds; it constrains and falsifies, it does not certify.
3. **The MDE is conservative on this ensemble.** A blind whole-surface search over a heterogeneous IDR
   spreads each complex over many transient contacts, giving a large **within-complex** variance → MDE
   0.7–1.1 kcal/mol (docking) and ~14 kcal/mol (raw supermolecular xTB) — **larger than the entire ~0.8
   kcal/mol SAR spread**. The test therefore *cannot certify a SAR that sits inside its own noise*; this
   yields honest negatives but could also **miss a true weak signal** (it is biased toward false
   negatives, by explicit construction of the MDE).
4. **Ensemble-sampling is incomplete and partly substituted.** The two GPU/host samplers named in the
   plan were environment-blocked (vast.ai ColabFold AF-subsampling blocked by the external-code guardrail;
   OpenMM MD on hive t06 blocked by a saturating unrelated job) → **ANM normal-mode expansion** was used
   as a standard flexibility surrogate, **labeled as such and not claimed to be MD**. Boltz members are
   partner-co-folded (partner-biased) chain-A conformers. The diversity floor is met with or without ANM,
   but the ensemble is a finite sample of an effectively infinite disordered manifold — the true binding
   conformer may be unsampled.
5. **Docking-score and rigid-body limits.** smina/Vina scoring is an empirical shape/VdW function with **no
   Coulomb term**; the Ir is a **Fe shape surrogate**; the complex is **rigid** (justified for an inert
   octahedron, but it forbids induced fit). GFN2-xTB rescoring is gas-phase on a truncated, neutral,
   valence-capped pocket — a documented approximation applied identically across complexes (so it does not
   bias the *between-complex* comparison) but not a free-energy calculation. Absolute affinities are not
   computed; only rank-order signals against the fixed Kd yardstick are.
6. **Numbering discipline is a load-bearing assumption.** Every residue claim depends on the paper =
   canonical − 1 offset (`evidence/verify_numbering.py`); a numbering error would silently move every
   contact and overlap.

---

## 5. Full end-to-end reproduction (single block)

```bash
# 0. exact ligand series (organometallic venv)
cd /root/girdin-dock/stage1/ligands_series
PY=/root/biometaldb-3d/arch-env/bin/python3
$PY validate_formulas.py && $PY graph_diff_check.py        # chemistry gates

# 1–2. disorder-aware ensemble + transient-pocket catalogue (project venv)
source /root/girdin-dock/venv/bin/activate
cd /root/girdin-dock/stage1/ensemble
python build_members.py && python analyze_ensemble.py && python run_fpocket.py \
  && python catalogue_pockets.py && python build_manifest.py && python verify_selfcheck.py

# baseline + fixed protocol + MDE estimator (defined once)
cd /root/girdin-dock/stage1/dock_setup
python prep_ligand.py && ./run_baseline.sh && python mde_estimator.py && python verify_dock_setup.py

# 3. blind whole-surface docking of the full series
cd /root/girdin-dock/stage1/dock_blind
../../venv/bin/python3 prep_ligands.py && ../../venv/bin/python3 prep_receptors.py && ../../venv/bin/python3 run_blind.py

# 4. SAR validation of every blind site  + authors'-pocket control
cd /root/girdin-dock/stage1/site      && ../../venv/bin/python3 analyze_sites.py
cd /root/girdin-dock/stage1/dock_ctrl && ../../venv/bin/python3 prep_all.py && ./run_ctrl.sh && ../../venv/bin/python3 analyze_ctrl.py && python verify_ctrl.py

# 5. physics rescoring of the best-occupied site
cd /root/girdin-dock/stage1/rescore
../../venv/bin/python3 run_rescore.py && ../../venv/bin/python3 analyze_rescore.py && ../../venv/bin/python3 verify_rescore.py --rederive 2
```
All heavy stages are detached-safe, idempotent (sentinels: `characterize.DONE`, `run_baseline.DONE`,
`ALL_DONE`, `run_ctrl.DONE`, `run_rescore.DONE`), and resumable.

---

## 6. Load-bearing claims → evidence (handoff for independent re-derivation)

Any three of the following can be re-derived independently to confirm nothing exceeds the evidence + oracle.

| # | Load-bearing claim | Evidence path | Oracle / primary source |
|---|---|---|---|
| C1 | Experimental Kd SAR (1a 1.3 … R=H >20 µM; rank 1a<1d<1e<1c<1b≪R=H) | `dock_ctrl/kd_primary_source.json` | `provenance/main_plain.txt` Fig 7E/8E/7G + SI S20 |
| C2 | Series differs **only** in 4-R; +1 singlet octahedra; formulas < 0.7 mDa vs SI | `stage1/ligands_series/{graph_diff_check.json,SERIES_TABLE.md}` | SI HRMS/EA/NMR `provenance/si/sapp.txt` |
| C3 | Disorder-aware ensemble: 28 distinct / 5 families; median 20.33 Å, min 2.06 Å; Rg 13–46 Å, pLDDT 23–42 | `stage1/ensemble/{diversity_summary.json,member_table.*,rmsd_matrix.csv}` | UniProt Q3V6T2 Disordered 1736–1871 |
| C4 | Transient-pocket catalogue: 288 pockets / 8 recurrent sites; druggability transient | `stage1/ensemble/{pocket_catalogue.*,all_pockets.json}` | fpocket re-run in `verify_selfcheck.py` |
| C5 | Fixed docking protocol reproduces 1a baseline within ±1.0 (Δ0.955); exh 32 converged | `stage1/dock_setup/{PROTOCOL.md,seed_scores.csv,verify_dock_setup.py}` | same-engine smina reference −7.40 |
| C6 | MDE defined once + imported verbatim downstream | `stage1/dock_setup/{MDE_ESTIMATOR.md,mde_estimator.py}` | self-test (synthetic MDE 0.200) |
| C7 | Blind search NEGATIVE: 4 sites, 0 clear both signals, expected-FP 0.0; B04 ρ=1.0 correctly not a lead | `stage1/site/{sar_by_site.*,blind_summary.json}` + `stage1/dock_blind/{pose_scores.csv,poses/}` | 720-perm null + Kd oracle |
| C8 | Authors'-pocket control reproduces only coarse Signal A/B (ρ=+0.83) — not pocket-specific | `stage1/dock_ctrl/{CTRL_RESULTS.md,ctrl_results.json}` | Kd oracle; `homology/girdin_sh2_model.pdb` |
| C9 | Physics rescore DOES NOT CONFIRM: MDE 14.22; Signal A −6.54 / B −3.97 inside band | `stage1/rescore/{README.md,rescore_results.json,verify_rescore.py}` | GFN2-xTB re-derive |Δ|=0.0000 |
| C10 | Fold refuted (6 methods + 0/5 pTyr co-fold) → authors' pocket is an artifact | `altrecept/verdicts.json`, `REPORT_template_assessment_2026-07-06.md` | InterPro/HMMER/TM-align/Foldseek + functional test |
| C11 | Orthogonal consistency: focus B01 overlaps GBA/Gαi3 1698–1702; no pEGFR-mutagenesis contact | `stage1/site/structural_rationalization.json` | Gαi3 6MHF (VAL_MODEL_002); SI S23/S24 |

**Authorship of the outcome, stated plainly:** this methodology does **not** claim to have found where
1a binds. Its deliverable is a **correct, reproducible, falsifiable protocol** and an **honest binding
mode hypothesis space** — a rigorous NEGATIVE for the blind lead, a coarse-signal-only (non-specific)
result for the authors' refuted pocket, and a best-occupied focus site (B01, GBA/Gαi3-overlapping)
carried forward as a hypothesis, not a proof.
