You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
DRIFT (**D**rug-target **R**esponse **I**ntegrated **F**lux **T**rajectory) is a multi-scale stochastic framework designed to bridge the gap between molecular binding events and systemic metabolic phenotypes.
11
9
12
10
## 🚀 Interactive Demo
13
-
14
11
Try DRIFT in your browser without any installation:
15
-
16
12
[](https://colab.research.google.com/github/tomwolfe/DRIFT/blob/main/examples/quickstart_tutorial.ipynb)
F -->|FBA Optimization| G[Metabolic Fluxes & Growth]
25
+
G -->|Feedback/Recording| H[History/Dashboard]
32
26
```
33
27
34
28
## ❓ Why DRIFT?
35
-
36
29
In drug discovery, linking a molecular binding event to a systemic outcome (like growth inhibition) is often treated as a "black box." DRIFT provides a transparent, mechanistic bridge by:
37
30
1.**Capturing Temporal Dynamics:** Moving beyond static $IC_{50}$ values to see how responses evolve.
38
31
2.**Accounting for Stochasticity:** Modeling the "drift" in metabolic states caused by intrinsic cellular noise.
39
32
3.**Integrating Scales:** Coupling pharmacokinetics (Binding), pharmacodynamics (Signaling), and phenotype (Metabolism) in a single unified solver.
40
33
41
34
## 🌟 Key Features
42
-
43
35
-**Multi-Scale Integration:** Seamlessly couples molecular binding, stochastic signaling (SDEs), and dynamic flux balance analysis (dFBA). Supports both E. coli core and Human GEMs (e.g., Recon1).
44
36
-**Stochastic Dynamics:** Captures cellular heterogeneity using a high-stability **Milstein scheme** integrator with state-dependent noise, accelerated by **Numba**.
45
37
-**Global Sensitivity Analysis (GSA):** Identify critical drivers of metabolic drift by perturbing signaling parameters and binding affinity simultaneously.
46
38
-**Monte Carlo Uncertainty:** Built-in support for ensemble simulations to assess model robustness and parameter sensitivity.
47
39
-**Interoperability:** Export results to structured Parquet or JSON formats (aligning with SED-ML principles) for cross-platform research.
48
40
-**Interactive Dashboards:** Generates comprehensive HTML reports using **Plotly** for deep-dive analysis of trajectories.
49
41
-**Scientific Validation:** Benchmarked against known biological responses and numerical stability tests.
42
+
-**Polypharmacology Support:** (v0.2.0) Explicitly model drugs targeting multiple proteins with distinct $K_d$ values.
50
43
51
44
## 📚 Documentation
52
-
53
45
Detailed documentation is available in the `docs/` directory:
54
-
55
46
| Document | Description |
56
47
| --- | --- |
57
48
|[**Case Study Gallery**](docs/gallery.md)|**New:** Predictions for Erlotinib, Imatinib, and more. |
@@ -64,32 +55,28 @@ Detailed documentation is available in the `docs/` directory:
64
55
|[**Tool Comparison**](docs/comparison_tools.md)| How DRIFT compares to DeepPurpose, COBRApy, etc. |
65
56
66
57
## 🧪 Scientific Foundation
67
-
68
58
DRIFT's modeling approach is grounded in established systems biology literature:
69
-
70
59
-**Signaling Dynamics:** The PI3K/AKT/mTOR SDE model is inspired by the topology described in *Chen et al. (2009), "Input-output behavior of ErbB signaling pathways."*
71
60
-**Metabolic Modeling:** Flux Balance Analysis (FBA) implementation follows the standard protocols in *Orth et al. (2010), "What is flux balance analysis?"*
72
61
-**Multi-scale Coupling:** The integration of signaling and metabolism reflects recent advances in dynamic FBA as reviewed in *Reimers et al. (2021).*
73
62
74
63
## 🚀 Quick Start
75
64
76
65
### Installation
77
-
78
66
**Using Pip:**
79
67
```bash
80
68
pip install -e .
81
69
```
82
70
83
71
**Solver Setup (Critical):**
84
72
DRIFT relies on `cobrapy` and `optlang` for metabolic solving. While it handles missing solvers gracefully by falling back to GLPK (via `swiglpk`), we recommend:
85
-
86
73
1.**GLPK (Default):** Usually installed via `swiglpk`. If you encounter build errors on **M1/M2 Macs**:
87
-
```bash
88
-
brew install glpk
89
-
export C_INCLUDE_PATH=/opt/homebrew/include
90
-
export LIBRARY_PATH=/opt/homebrew/lib
91
-
pip install swiglpk
92
-
```
74
+
```bash
75
+
brew install glpk
76
+
export C_INCLUDE_PATH=/opt/homebrew/include
77
+
export LIBRARY_PATH=/opt/homebrew/lib
78
+
pip install swiglpk
79
+
```
93
80
2.**CPLEX / Gurobi:** For large-scale models, these commercial solvers (free for academics) are significantly faster. Ensure they are in your Python environment's path.
94
81
95
82
**Using Conda:**
@@ -105,7 +92,6 @@ docker run -it drift
105
92
```
106
93
107
94
## ⚡ Performance & Solver Guide
108
-
109
95
DRIFT is optimized for performance, but the overall speed of multi-scale simulations is often limited by the underlying Linear Programming (LP) solver.
110
96
111
97
| Model Scale | Recommended Solver | Rationale |
@@ -119,7 +105,6 @@ DRIFT is optimized for performance, but the overall speed of multi-scale simulat
119
105
-**Worker Cache:** The `Workbench` automatically caches initialized models across Monte Carlo iterations to avoid the overhead of reloading genome-scale models.
@@ -150,6 +133,7 @@ To generate a sample dashboard and verify the workbench visualization:
150
133
```bash
151
134
python scripts/generate_sample_dashboard.py
152
135
```
136
+
153
137
Generated reports are saved in the `outputs/` directory (ignored by git).
154
138
155
139
### Current Test Coverage
@@ -159,30 +143,26 @@ Generated reports are saved in the `outputs/` directory (ignored by git).
159
143
-**Visualization:** Dashboard generation and data integrity checks
160
144
161
145
## 📈 Example Results
162
-
163
146
Running a typical simulation produces:
164
147
- Interactive HTML dashboard with multi-scale visualization
165
148
- Quantitative summary of growth inhibition and metabolic drift
166
149
- Statistical analysis of ensemble variability
167
150
- Parameter sensitivity reports
168
151
169
152
## 🗺️ Project Roadmap
170
-
171
153
-[x]**v0.1.0:** Initial engine release & Monte Carlo integration.
172
-
-[]**v0.2.0:** Support for multi-target inhibition (Polypharmacology).
154
+
-[x]**v0.2.0:** Support for multi-target inhibition (Polypharmacology), strict validation, and enhanced export metadata.
173
155
-[ ]**v0.3.0:** Integration with SBML models for custom signaling topologies.
174
156
-[ ]**v1.0.0:** Stable release with full experimental dataset benchmarking.
175
157
176
158
## 🤝 Contributing
177
-
178
159
We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:
179
160
- Setting up your development environment
180
161
- Code style guidelines
181
162
- Submitting pull requests
182
163
- Reporting issues
183
164
184
165
## 📜 Citing DRIFT
185
-
186
166
If you use DRIFT in your research, please cite it as:
187
167
> Wolfe, T. (2025). DRIFT: A Multi-Scale Stochastic Framework for Predicting Drug-Induced Metabolic Drift. GitHub Repository. https://github.com/tomwolfe/DRIFT
188
168
@@ -194,17 +174,18 @@ If you use DRIFT in your research, please cite it as:
194
174
195
175
## 📋 Release Notes
196
176
197
-
**Latest Release (v0.1.2):**
198
-
-**Numerical Stability:** Upgraded SDE integrator from Euler-Maruyama to a **Milstein scheme** with state-dependent noise for improved robustness in high-noise scenarios.
199
-
-**Scientific Consistency:** Added explicit support and fallback mechanisms for human metabolic models (e.g., Recon1) and corresponding growth keys.
200
-
-**Dependency Optimization:** Integrated `glpk` and `swiglpk` into environment configurations for seamless FBA solving.
177
+
**Latest Release (v0.2.0):**
178
+
-**Harden polypharmacology validation** with strict input validation for the `targets` dictionary.
179
+
-**Parallel reproducibility fixes** for bit-perfect Monte Carlo simulations.
180
+
-**Explicit 'solver_status' field** added to exported JSON results.
181
+
- Enhanced `BindingEngine` to enforce strict validation of targets dictionary.
182
+
- Fixed seed propagation to Numba-jitted functions in worker processes.
183
+
- Improved export metadata with solver status information.
201
184
202
185
**Previous Release (v0.1.1):**
203
186
- Initial public release
204
187
- Multi-scale integration engine
205
188
- Monte Carlo uncertainty quantification
206
189
- Interactive visualization dashboard
207
-
208
-
## 🚀 Release Process
209
-
210
-
For information about creating new releases, see our [Release Process](RELEASE_PROCESS.md) documentation.
190
+
- Dedicated `outputs/` directory for simulation results
0 commit comments