Response prediction: predict unseen perturbations & combinations (GEARS, CPA/chemCPA, biolord, FM embeddings)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 345
- Forks
- 66
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 13
Description
Context
pertpy's response-prediction module currently ships Scgen and Cinemaot.
Both are valuable, but neither predicts the effect of perturbations that were not measured, which is the question most large screens actually pose:
"Which of the perturbations (or combinations) I did not run should I run next?"
What's missing
- Genetic perturbation prediction including unseen single/double gene combinations — GEARS (GNN over a gene–gene graph).
- Compositional dose/covariate modeling — CPA (Compositional Perturbation Autoencoder).
- Chemical perturbation / drug-dose generalization — chemCPA.
- Disentangled latent modeling — biolord.
- A foundation-model embedding interface so cells/perturbations can be represented with scGPT / Geneformer / scFoundation / State and fed into the existing perturbation-space and distance tooling.
Proposal / API
Expose these under pertpy.tools behind a shared .train() / .predict() interface consistent with the existing Scgen model (scvi-tools style), returning predicted AnnData that plugs into the perturbation-space and distance tooling.
Reuse the perturbation-level API introduced in #1032.
Why it matters
- Academia: in silico perturbation screening and hypothesis generation.
- Industry: prioritizing which of thousands of unmeasured targets / combinations / doses to run — directly reduces experimental cost.
Scope
Each method is a sizeable addition (deps, tutorial, tests) and can land as its own PR; this issue tracks the module direction.
Pair with the benchmarking harness (separate issue) so every predictor is evaluated against baselines.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing pertpy.tools Scgen and Cinemaot implementations, then review the perturbation-level API introduced in #1032. A complete contribution would add one predictor with its dependencies, tutorial, and tests, expose shared train() and predict() behavior, and return AnnData compatible with perturbation-space and distance tooling.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- bioinformatics, machine-learning
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100