BibimbapKiller
What if a model could say the one word every drug-discovery pipeline needs but no other tool can utter — "unreachable"?
Core trick
Tests whether a double-perturbation profile lies outside the non-negative cone of single-gene effects, returning a separating direction.
Tags
Description
What if a model could say the one word every drug-discovery pipeline needs but no other tool can utter — "unreachable"?
Cell-state-reachability reframes perturbation biology around a new question: not "what will this gene knockout do?" but "can we actually steer a cell from state A to state B — and should you believe the answer?"
We surveyed 91 perturbation-prediction methods; none return a feasibility verdict. Ours does. Built on public Perturb-seq screens (Replogle K562/RPE1, Norman combinatorial doubles), it produces a map of reachable cell-state space plus the falsification machinery that flags which regions you're allowed to trust: additivity bounds for multi-gene edits, weak-instrument confidence intervals, and negative-control and construct-validity checks.
The payoff is targets a supervised ranker structurally can't nominate — like ZAP70: small-molecule-tractable, genetically associated, yet undrugged.
The stance is AI-as-instrument, not oracle. The deliverable isn't a gene list; it's understanding of the data's structure earned inside a falsification loop — fitting for a field whose own 2025 benchmark shows deep models don't beat linear baselines.
README excerpt
# CombiCone
> **Archived research repository.** Development stopped in July 2026. The code remains available
> for inspection and reproduction, but no prospective experiment was run and no biomedical or
> clinical claim was established.
CombiCone asks whether a measured combinatorial perturbation lies outside the non-negative cone
spanned by measured single-perturbation effects. When it does, the method returns a separating
direction and a noise-aware verdict. “Unreachable” is always relative to the supplied atoms,
features, metric, and noise model; it does not mean biologically impossible.
The final scientific conclusions and claim limits are in [docs/FINDINGS.md](docs/FINDINGS.md).
## Minimal example
```python
import numpy as np
import combicone as cc
singles = np.eye(3)
names = ["A", "B", "C"]
# Rank unmeasured pairs from singles only.
print(cc.triage_combinations(singles, names).top(3))
# Certify a measured combination against the single-effect cone.
combo = np.array([1.0, 1.0, 0.0, 2.0])
atoms = np.pad(singles, ((0, 0), (0, 1)))
certificate = cc.certify_emergence(
atoms,
combo,
noise_sd=np.full(combo.shape, 0.05),
)
print(certificate.verdict)
print(certificate.separator)
```
The CLI exposes the same workflow:
```bash
combicone triage --help
combicone certify --help
combicone recommend --help
```
## Install and verify
Python 3.10–3.12 is supported.
```bash
python -m pip install -e ".[test]"
make test
make reproduce
```
`make reproduce` runs the c