MitoInteract
Research recovery in progress. The published v1 checkpoint is deprecated and must not be used to rank compounds or guide experiments.
MitoInteract is an experimental protein-ligand binding-affinity project. Its primary data-quality track now derives exact Kd source records directly from SHA-256-pinned BindingDB curated-article exports, preserving units, censoring, assay joins, citations, and source identities. The earlier BALM/BALM-benchmark BindingDB_filtered configuration remains the prior derived pKd benchmark and the only track with current split/baseline results.
A separate forensic track uses a generic pAffinity target from jglaser/binding_affinity. That source combines Ki, Kd, IC50, and EC50; it is not pKd and is retained only for failure analysis and pipeline diagnostics. See recovery/DATA_PROVENANCE.md.
The published v1 checkpoint did not complete a meaningful training run. Its validation correlations were negative, its evaluation set contained only 16 pairs, and its model card overstated the architecture and intended use. The weights remain for provenance only. See AUDIT.md.
Current status
The recovery branch provides:
- immutable Kd-only and mixed-affinity source revisions with SHA-256 checksums;
- a source-aware BindingDB 202607 adapter that emitted 87,315 provenanced records and 2,432 exact, assay-joined Kd source records over 2,198 unique pairs;
- ligand canonicalization and exact protein-ligand pair aggregation;
- replicate counts, IQRs, ranges, and source-row identifiers;
- random-pair, exact cold-protein, MMseqs2 homology-cold, and cold-scaffold manifests;
- train-mean and single-modality controls;
- character n-gram ridge and Morgan/protein-descriptor LightGBM baselines;
- a corrected LayerNorm-based v2 head with standardized targets;
- pinned ESM-2 and ChemBERTa revisions, long-protein chunking, and cached frozen embeddings;
- safe
safetensorsoutput for new trainable weights; - tested default guards against unsafe or scientifically invalid v1 inference.
No v2 neural checkpoint has earned a performance claim.
Primary source-aware Kd data track
The BindingDB 202607 curated-articles pilot processes 93,712 publisher rows into 87,315 source records while preserving measurement type, relation operator, assay mapping, citation, source release, and deterministic source-row identity. Its strict projection contains 2,432 exact, assay-joined Kd source records over 2,198 canonical protein–ligand pairs. These records have not been aggregated across assays, split, benchmarked, or used to train a model. See recovery/BINDINGDB_SOURCE_AWARE.md and the checked source audit.
Prior derived Kd benchmark
Source:
- dataset:
BALM/BALM-benchmark, configurationBindingDB_filtered; - revision:
84e07e27a093181ee89c97a0d7a45482803aa9bd; - source SHA-256:
d0f8691a96876f09766e574c5600df55f0d0b1c11cfd1705faf841d924f89f20; - 24,700 source rows and 20,477 canonical protein-ligand pairs;
- 1,069 unique protein sequences and 9,163 canonical ligands;
- 2,020 duplicated pairs, of which 2,019 have differing labels;
- median pKd aggregation per canonical pair.
The released CSV does not retain original Kd values, units, censoring operators, assays, or source records. Its Kd-only status therefore depends on BALM/TDC provenance and cannot be independently reconstructed from the file.
Morgan/protein-descriptor LightGBM
These are development results on fixed 70/10/20 manifests. They are not an external or prospective benchmark.
| Split | Mean RMSE ↓ | Combined RMSE ↓ | Pearson ↑ | Spearman ↑ |
|---|---|---|---|---|
| Random pair | 1.4698 | 0.8452 | 0.8196 | 0.7846 |
| Exact protein-disjoint | 1.5118 | 1.2276 | 0.6014 | 0.5493 |
| Protein-similarity-disjoint, MMseqs2 50% | 1.4247 | 1.3181 | 0.3881 | 0.3069 |
| Ligand scaffold-disjoint | 1.4352 | 1.0103 | 0.7095 | 0.6501 |
The combined descriptor model beats the mean and both ligand-only and protein-only descriptor controls by RMSE on every manifest. This is the minimum baseline a neural model must beat. Full details and reproduction commands are in recovery/KD_RECOVERY.md.
Run the recovery checks
cd recovery
uv sync --dev
uv run pytest -q
Prepare the immutable Kd-only benchmark:
uv run python scripts/prepare_balm_kd.py \
--csv /path/to/BindingDB_filtered/data.csv \
--output-dir artifacts/balm-kd
uv run python scripts/cluster_proteins.py \
--data-dir artifacts/balm-kd \
--min-seq-id 0.5 \
--coverage 0.8 \
--seed 42 \
--threads 8
uv run python scripts/run_baselines.py \
--data-dir artifacts/balm-kd \
--target-key pkd \
--target-name pKd \
--output artifacts/balm-kd/baselines.json
uv run python scripts/run_descriptor_baselines.py \
--data-dir artifacts/balm-kd \
--target-key pkd \
--target-name pKd \
--output artifacts/balm-kd/descriptor-baselines.json
MMseqs2 is required for the sequence-similarity split. Generated data, embeddings, predictions, and weights are intentionally excluded from Git.
v2 architecture under evaluation
The bounded neural recovery experiment uses frozen, revision-pinned encoders:
- protein:
facebook/esm2_t12_35M_UR50D; - ligand:
DeepChem/ChemBERTa-77M-MLM; - fusion: projected protein and ligand vectors plus elementwise product and absolute difference;
- regression: LayerNorm-based MLP over a training-standardized target;
- serialization: trainable head in
safetensors, with encoder revisions and target scaler stored separately.
Proteins longer than ESM-2's context are divided into residue chunks and pooled with length weighting instead of being silently truncated. This is reproducible, but it does not prove the representation captures a binding site.
Release gates
A neural checkpoint cannot replace v1 until it:
- Beats the descriptor baseline and both single-modality controls on homology-cold and ligand-similarity-cold splits.
- Passes a cold-both protein-cluster × ligand-cluster stress test.
- Reports micro and macro-target metrics with cluster-bootstrap confidence intervals.
- Repeats grouped split seeds and neural training seeds.
- Validates on data retaining original Kd values, units, relation operators, assay identifiers, and dates.
Intended use
Acceptable use:
- reproducing the failure analysis;
- testing protein-ligand affinity pipelines;
- comparing leakage-aware splitting strategies;
- developing and auditing computational baselines.
Unacceptable use:
- ranking compounds for laboratory work;
- estimating clinical activity, safety, dosage, or efficacy;
- claiming specificity for mitochondrial apoptosis proteins;
- treating a predicted pKd or pAffinity as experimental evidence;
- loading
full_model.ptfrom an untrusted source.
Legacy v1 facts
| Item | Recovered value |
|---|---|
| Training pairs | 32 |
| Validation pairs | 16 |
| Optimizer steps | approximately 16 |
| Configured warmup steps | 500 |
| Pearson | -0.9107 |
| Spearman | -0.5000 |
| RMSE | 7.0257 in the undocumented legacy target scale |
| MAE | 6.8183 in the undocumented legacy target scale |
The original README claimed ESM-2 650M, while the checkpoint used ESM-2 35M. The original full_model.pt is a Python pickle loaded with weights_only=False; it is retained only as a legacy artifact. model.py blocks that load and blocks invalid legacy inference unless the caller explicitly acknowledges the risks.
References
- Gorantla et al., Learning binding affinities via fine-tuning of protein and ligand language models
- Lin et al., Language models of protein sequences at the scale of evolution
- Chithrananda et al., ChemBERTa
- Steinegger and Söding, MMseqs2
- Downloads last month
- 75