01 / Context
Purpose
A requested inhibition may correspond to multiple dose pairs, and that relationship may change across cell lines. How can a model represent this ambiguity while keeping data provenance and the limits of generalization visible?
02 / Implementation
Implementation
Represent cellular context
Train a variational autoencoder on eligible expression profiles, then retain and freeze its encoder. Cell, drug and inhibition encoders form the conditional representation.
Model a distribution
Shared drug encoders and paired interaction branches feed a correlated bivariate mixture-density network in scaled log-dose space.
Separate generalization questions
Keep held-out cell identities separate from grouped cell/drug-pair evaluation. Fit preprocessing on permitted training identities and preserve source/exclusion manifests. DREAM, NCI-ALMANAC and O’Neil–Merck have independent workflows.
03 / Evidence & interpretation
Evidence
The repository reports retrospective cold-cell and grouped cell/drug-pair assessments. Fixed-target hit rates are low, identifying a central limitation of the current model. Evaluation details are documented in the linked report; generated experiment artifacts are not included in the public repository.
Limitations
- Retrospective assay-grid evaluation does not establish response at unmeasured doses. Missing or excluded responses are unscorable, and coordinate error alone does not show target achievement.
- The mixture model can place probability outside valid nonnegative dose coordinates. Its final head does not guarantee drug-swap equivariance.
- Forward modeling is a separate ongoing research direction. DuoDose is an experimental inverse model, without clinical validation or treatment recommendations.
04 / Contribution
Contribution & attribution
Research need and design developed collaboratively within ComputImm Laboratory, with colleagues and supervisors; software implementation and deployment by Seyyed Mohammad Hamidi.
05 / Code & methods
Source & documentation
View DuoDose on GitHub (opens in a new tab)Source reviewed at commit 2a623dad2142, 28 October 2026. Documentation links are pinned to this snapshot.