DRIFT: Disentangled Responsive-Invariant Flow Transport for Single-Cell Perturbation Prediction
Organizations: Department of Data Science EURECOM, France
Abstract
Predicting cellular responses to perturbations is a central problem in cellular biology, with broad applications in systems biology and drug discovery. This task is challenging because cellular responses can be complex and cell-state dependent, intrinsic cell-to-cell variability can be confounded with perturbation effects, and destructive single-cell RNA sequencing precludes paired measurements of the same cell before and after treatment. Flow matching transports control cells to perturbed states flexibly, but acting on the full cell state can confound perturbation effects with pre-existing cell-to-cell variability. Disentangled approaches separate responsive from invariant components, but model perturbations through prescribed mechanisms, such as latent shifts or graph edits, limiting their flexibility. We address both limitations in a unified framework. A variational encoder disentangles each cell into an invariant block, capturing state unaffected by the perturbation, and a responsive block, capturing state it changes, through conditional priors and an information-theoretic invariance constraint. Conditional flow matching transports only the responsive block, conditioned on the perturbation and invariant state, yielding a flexible, data-driven model of perturbation effects without confounding pre-existing variability. Across several benchmarks, our method outperforms the strongest published method in settings involving combinatorial and unseen perturbation prediction.
Figures & tables
| Type | Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Sta. | Control | – | – | – | – | – | 0.5000 | 9.25 | 0.0487 | 0.1720 |
| Linear | 0.6211 | 0.7075 | 0.8007 | 0.8906 | 0.3192 | 0.5363 | 6.76 | 0.0265 | 0.1233 | |
| Linear-scGPT | 0.6925 | 0.7514 | 0.8424 | 0.9688 | 0.5023 | 0.7913 | 5.31 | 0.0155 | 0.0942 | |
| Found. | scGPT | 0.4408 | 0.4416 | 0.8125 | 0.4839 | 0.2504 | 0.5022 | 7.35 | 0.0296 | 0.1285 |
| scFoundation | 0.6813 | 0.4778 | 0.8768 | 0.7453 | 0.5409 | 0.7994 | 4.91 | 0.0138 | 0.0852 | |
| GeneCompass | 0.6897 | 0.4810 | 0.8916 | 0.7484 | 0.5948 | 0.8024 | 4.77 | 0.0124 | 0.0808 |
| Type | Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Single gene perturbation | ||||||||||
| Sta. | Control | – | – | – | – | – | 0.5000 | 4.33 | 0.0108 | 0.0685 |
| Linear | 0.5924 | 0.6021 | 0.7695 | 0.8476 | 0.4548 | 0.5119 | 3.46 | 0.0067 | 0.0516 | |
| Linear-scGPT | 0.6072 | 0.6352 | 0.7620 | 0.8095 | 0.4584 | 0.6571 | 3.60 | 0.0072 | 0.0575 | |
| Found. | scGPT | 0.5172 | 0.5358 | 0.7509 | 0.8286 | 0.5987 | 0.5048 | 3.58 | 0.0071 | 0.0530 |
| scFoundation | 0.4453 | 0.3144 | 0.6882 | 0.7429 | 0.3897 | 0.6619 | 3.65 | 0.0079 | 0.0568 | |
| Type | Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Sta. | Control | – | – | – | – | – | 0.5000 | 7.03 | 0.0171 | 0.0768 |
| Linear | 0.2720 | 0.3630 | 0.5816 | 0.6919 | 0.2149 | 0.5318 | 14.13 | 0.0916 | 0.1491 | |
| Linear-scGPT | 0.3404 | 0.5438 | 0.5852 | 0.7681 | 0.2497 | 0.5338 | 7.60 | 0.0172 | 0.0890 | |
| Found. | scGPT | 0.2840 | 0.5691 | 0.5882 | 0.7759 | 0.2980 | 0.5001 | 9.49 | 0.0246 | 0.1037 |
| scFoundation | 0.2037 | 0.3632 | 0.5489 | 0.6908 | 0.2331 | 0.5098 | 7.07 | 0.0155 | 0.0812 | |
| GeneCompass | 0.3113 | 0.4299 | 0.5758 | 0.7148 | 0.2873 | 0.5038 | 7.18 | 0.0162 | 0.0822 |
| Method | DE-Spearman | DS | L2 | MSE | MAE | |
|---|---|---|---|---|---|---|
| Control | N.A. | N.A. | 0.5714 | 5.3716 | 0.0324 | 0.0698 |
| scGPT | 0.8322 | 0.8571 | 1.6934 | 0.0031 | 0.0251 | |
| CPA | 0.8150 | 0.7906 | 0.8980 | 1.6592 | 0.0029 | 0.0240 |
| scDFM | 0.8933 | 0.8289 | 0.8776 | 1.6567 | 0.0028 | 0.0220 |
| DRIFT (ours) | 0.9467 | 0.8901 | 0.8816 | 1.2804 | 0.0019 | 0.0150 |
Appendix figures & tables13 assets
Supplementary material from the paper’s appendix.
Appendix
| Category | Hyperparameter | Norman | Replogle | ComboSciPlex |
|---|---|---|---|---|
| Model | Invariant block | 64 | ||
| Responsive block | 192 | |||
| Encoder and decoder width | 1024 ( layers) | |||
| Condition code | 128 | |||
| Perturbation encoder width | 256 | |||
| Perturbation features | 16 | |||
| probe accuracy | MINE (nats) | |||||||
|---|---|---|---|---|---|---|---|---|
| linear | MLP | |||||||
| Dataset | Conditions | chance | ||||||
| Norman additive | top 20 | 0.0500 | 0.157 | 0.981 | 0.171 | 0.991 | 0.14 | 3.35 |
| top 50 | 0.0200 | 0.100 | 0.994 | 0.093 | 0.998 | 0.15 | 4.00 | |
| top 100 | 0.0100 | 0.053 | 0.980 | 0.056 | 0.981 | 0.17 | 3.96 | |
| all | 0.0060 | 0.042 | 0.938 | 0.037 | 0.962 | 0.11 | 3.68 | |
| Type | Method | Discr. Cos | E-Dist | Wasserstein |
|---|---|---|---|---|
| Sta. | Control | -0.3009 | 13.5125 | 16.5615 |
| Linear | 0.3967 | 11.1376 | 15.3741 | |
| Found. | scFoundation | 0.6218 | 1.3710 | 11.2452 |
| GeneCompass | 0.5623 | 1.3059 | 11.1429 | |
| Gra. | GEARS | 0.5871 | 1.2377 | 11.0829 |
| Gen. | CellFlow | 0.6397 | 1.1979 | 10.7579 |
| Configuration | DES | PDS | rank | |||
| Norman additive | ||||||
| DRIFT | 0.8871 | 0.8914 | 0.9222 | 0.9017 | 0.9167 | 1.40 |
| w/o disentanglement | 0.8588 | 0.8236 | 0.9220 | 0.8753 | 0.9042 | 3.40 |
| w/o conditioning regularization | 0.8974 | 0.8926 | 0.9183 | 0.8965 | 0.9051 | 1.80 |
| w/o invariance penalty | 0.8706 | 0.8778 | 0.9146 | 0.8964 | 0.8992 | 3.40 |
| Norman holdout (single) | ||||||
| Split | Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Norman additive | scBIG | 0.8496 | 0.8230 | 0.9197 | 0.9906 | 0.8593 | 0.8548 | 3.92 | 0.0091 | 0.0689 |
| DRIFT , ESM2 only | 0.8878 | 0.8938 | 0.9203 | 0.9989 | 0.9020 | 0.9045 | 3.22 | 0.0062 | 0.0569 | |
| DRIFT | 0.8871 | 0.8914 | 0.9222 | 0.9977 | 0.9017 | 0.9167 | 3.12 | 0.0057 | 0.0549 | |
| Replogle RPE1 | scBIG | 0.4875 | 0.5925 | 0.6471 | 0.8089 | 0.5145 | 0.5520 | 6.12 | 0.0118 | 0.0676 |
| DRIFT , ESM2 only | 0.4919 | 0.6032 | 0.6465 | 0.8124 | 0.6865 | 0.5696 | 6.04 | 0.0115 | 0.0670 | |
| DRIFT | 0.5085 | 0.6160 | 0.6537 | 0.8149 | 0.7021 | 0.6044 | 5.68 | 0.0101 | 0.0633 |
| Component | DES | PDS | mean | |||
|---|---|---|---|---|---|---|
| Norman additive | ||||||
| Disentanglement | +10.6 | +36.9 | +0.2 | +4.5 | +3.3 | +11.1 |
| Conditioning regularization | 3.9 | 0.7 | +3.2 | +0.9 | +3.0 | +0.5 |
| Invariance penalty | +6.2 | +7.4 | +6.3 | +0.9 | +4.6 | +5.1 |
| Norman holdout (single) | ||||||
| Disentanglement | +40.7 | +43.5 | +19.0 | +13.0 | +2.3 | +23.7 |
| Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|
| GEARS | 0.0055 | 0.0151 | 0.0031 | 0.0080 | 0.0081 | 0.0048 | 0.0649 | 0.0006 | 0.0014 |
| scGPT | 0.0006 | 0.0045 | 0.0010 | 0.0010 | 0.0084 | 0.0026 | 0.0197 | 0.0002 | 0.0004 |
| scFoundation | 0.0009 | 0.0031 | 0.0004 | 0.0036 | 0.0067 | 0.0029 | 0.0044 | 0.0001 | 0.0002 |
| CellFlow | 0.0035 | 0.0146 | 0.0013 | 0.0213 | 0.0033 | 0.0074 | 0.0636 | 0.0004 | 0.0014 |
| scBIG | 0.0026 | 0.0038 | 0.0023 | 0.0029 | 0.0015 | 0.0096 | 0.0411 | 0.0002 | 0.0009 |
| DRIFT (ours) | 0.0034 | 0.0045 | 0.0031 | 0.0019 | 0.0028 | 0.0101 | 0.0558 | 0.0002 | 0.0010 |
| Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|
| scGPT | 0.0008 | 0.0027 | 0.0003 | 0.0031 | 0.0155 | 0.0006 | 0.0039 | 0.0001 | 0.0001 |
| scFoundation | 0.0072 | 0.0122 | 0.0042 | 0.0091 | 0.0158 | 0.0023 | 0.0227 | 0.0000 | 0.0005 |
| CellFlow | 0.0026 | 0.0098 | 0.0013 | 0.0038 | 0.0042 | 0.0092 | 0.0053 | 0.0000 | 0.0001 |
| scBIG | 0.0016 | 0.0036 | 0.0021 | 0.0014 | 0.0042 | 0.0026 | 0.0105 | 0.0000 | 0.0002 |
| DRIFT (ours) | 0.0048 | 0.0041 | 0.0023 | 0.0046 | 0.0061 | 0.0040 | 0.0238 | 0.0001 | 0.0004 |
| Type | Method | DES | PDS | L2 | MSE | MAE | ||||
|---|---|---|---|---|---|---|---|---|---|---|
| Gen. | DRIFT (ours) | 0.5085 0.0074 | 0.6160 0.0058 | 0.6537 0.0013 | 0.8149 0.0015 | 0.7021 0.0072 | 0.6044 0.0067 | 5.68 0.03 | 0.0101 0.0001 | 0.0633 0.0002 |
| Method | DE-Spearman | DS | L2 | MSE | MAE | |
|---|---|---|---|---|---|---|
| DRIFT (ours) | 0.9467 0.0057 | 0.8901 0.0057 | 0.8816 0.0171 | 1.2804 0.0536 | 0.0019 0.0002 | 0.0150 0.0006 |