nspiration Targeted drugs like osimertinib give lung cancer patients about 19 months on average. Then the cancer becomes resistant, and every patient’s cancer escapes in a different way. As a doctor, I watched targeted therapy stop working. Hassan, our CTO, saw the same problem in the data: drug teams have too many possible combinations to test and no good way to choose. We wanted to help them find the best experiments to run.
What it does Cytogent is Decision-as-a-Service for oncology R&D, built around resistant lung cancer.
Choose: our model ranks which drug combinations to test on which resistant tumour models. Run: a partner lab runs them from a study spec we write. We coordinate labs and don’t run them. Learn: the results go back into the model. Decide: the drug team decides which combinations and patient subgroups to take forward. In our benchmark on public data, we found 80% of the best combinations in 5,378 experiments, where random picking needed 16,281. On a simulated resistant lung panel it was 676 against 2,481.
How we built it Model: a LightGBM ensemble of 5 models trained on public drug-combination screens (O’Neil 2016, with DepMap and GDSC features). Active learning with an upper-confidence-bound (UCB) rule picks the next batch of experiments. Evaluation: tested on cell lines the model never saw, over 5 random seeds. We compared it against random picking, a no-model pair-average control, diversity and uncertainty-only rules, a greedy rule and an oracle. Platform: a Next.js app at app.cytogent.com with three portals (Pharma Teams, Laboratories, Hospitals) around one shared programme. Study-spec generator: Claude Opus writes a lab-ready work order. Plate counts and costs are computed in code, not by the AI. Honesty built in: the resistant panel is labelled simulated everywhere, and the model’s uncertainty is always shown as “uncalibrated”. Challenges we ran into Noisy data: repeat measurements of the same experiment agree only at 0.63, and two different labs agree at 0.12. That puts a ceiling on how well anything can predict. Data leakage: we found that one public gene-expression feature varied with the drug pair, so we excluded it. We also found that the public datasets overlap, so we never train on one and test on another. Failed uncertainty estimate: the model’s “how sure am I” signal failed our pre-set calibration test. No real resistant models: we have no measured resistant tumour models yet, so the resistant panel is simulated and the 3× result is a retrospective simulation, not a clinical one. Time: all of this was built in one weekend. Accomplishments that we’re proud of A 3× reduction in experiments on public data, with strong controls and an oracle alongside it. A benchmark that reports its failures, with success bars fixed in advance. A live platform with three portals and an AI study-spec generator, built over a weekend at the unfair weekend hackathon, ISM University. Sweden AI Factory approved us in a meeting for data access at regional hospitals, with their application process as the next step. What we learned The value is in choosing experiments, not in squeezing out more prediction accuracy. Our model reaches 0.59 on unseen cell lines, close to the data’s own 0.63 ceiling. Even a simple no-model control gets part of the gain, so you need strong baselines to know what the model adds. Reporting what didn’t work builds trust. It also made the product design clearer. What’s next for Cytogent Real data: calibrate the model on a real candidate drug and test it on real resistant tumour models. Pilots: run the loop with partner labs and drug developers, and measure confirmed findings per euro. Hospital data: complete Sweden AI Factory’s application process for regional hospital data, so results can be linked to patient data with the proper rights. Production model service: replace the file-based demo with a live model service.
Built With
- nextjs