FluxDisco: Symbolic Regression for Stoichiometric Dynamical Systems via Monte Carlo Graph Search
Organizations: Lancaster University · University of Oslo
Abstract
Dynamical symbolic regression methods identify governing differential equations from noisy data, balancing interpretability and predictive accuracy. However, standard methods often produce expressions that violate known physical laws. To address this, we propose FluxDisco, a physics-informed framework tailored for flux-based, stoichiometric ODE systems. By leveraging a known stoichiometry, we reduce the expression search space and ensure physical adherence. Our framework adapts the Monte Carlo Graph Search algorithm for the unique challenges associated with joint flux discovery of stoichiometric systems. We evaluate our method across a range of physical and biological systems, demonstrating its ability to accurately recover governing dynamics through interpretable equations.
Figures & tables
| ODE System | Number of coupled expressions | |
|---|---|---|
| SIR (Standard) | \begin{bmatrix}{\color[rgb]{0.043,0.2305,0.5547}-c_{0}x_{0}x_{1}}\\ {\color[rgb]{0.043,0.2305,0.5547}c_{0}x_{0}x_{1}}{\color[rgb]{0.8945,0.4141,0.0977}-c_{1}x_{1}}\\ {\color[rgb]{0.8945,0.4141,0.0977}c_{1}x_{1}}\end{bmatrix} | 2 |
| SIR (Squared) | \begin{bmatrix}{\color[rgb]{0.043,0.2305,0.5547}-c_{0}x_{0}x_{1}^{2}}\\ {\color[rgb]{0.043,0.2305,0.5547}c_{0}x_{0}x_{1}^{2}}{\color[rgb]{0.8945,0.4141,0.0977}-c_{1}x_{1}}\\ {\color[rgb]{0.8945,0.4141,0.0977}c_{1}x_{1}}\end{bmatrix} | 2 |
| SIR (Square root) | \begin{bmatrix}{\color[rgb]{0.043,0.2305,0.5547}-c_{0}x_{0}\sqrt{x_{1}}}\\ {\color[rgb]{0.043,0.2305,0.5547}c_{0}x_{0}\sqrt{x_{1}}}{\color[rgb]{0.8945,0.4141,0.0977}-c_{1}x_{1}}\\ {\color[rgb]{0.8945,0.4141,0.0977}c_{1}x_{1}}\end{bmatrix} | 2 |
| Lotka-Volterra | \begin{bmatrix}c_{0}x_{0}{\color[rgb]{0.043,0.2305,0.5547}-c_{1}x_{0}x_{1}}\\ {\color[rgb]{0.043,0.2305,0.5547}c_{1}x_{0}x_{1}}-c_{2}x_{2}\end{bmatrix} | 1 |
| Brusselator | \begin{bmatrix}{\color[rgb]{0.043,0.2305,0.5547}x_{0}^{2}x_{1}}{\color[rgb]{0.8945,0.4141,0.0977}-c_{0}x_{0}}+c_{1}-x_{0}\\ {\color[rgb]{0.043,0.2305,0.5547}-x_{0}^{2}x_{1}}{\color[rgb]{0.8945,0.4141,0.0977}+c_{0}x_{0}}\end{bmatrix} | 2 |
| Fairen-Velarde | \begin{bmatrix}{\color[rgb]{0.043,0.2305,0.5547}-\frac{x_{0}x_{1}}{1+c_{0}x_{0}^{2}}}+c_{1}-x_{0}\\ {\color[rgb]{0.043,0.2305,0.5547}-\frac{x_{0}x_{1}}{1+c_{0}x_{0}^{2}}}+c_{2}\end{bmatrix} | 1 |
| Method | F.D. | Joint Disc. | Fluxes | Category | Ref |
|---|---|---|---|---|---|
| Ours | ✗ | ✓ | ✓ | MCGS | |
| Ours (No Stoic.) | ✗ | ✓ | ✗ | MCGS | |
| SPL | ✓ | ✗ | ✗ | MCTS | [ 23 ] |
| SINDy | ✓ | ✓ | ✗ | Sparse regression | [ 7 , 18 ] |
| PySR | ✓ | ✗ | ✗ | Genetic programming | [ 10 ] |
| ProGED | ✗ | ✓ | ✗ | Monte Carlo, grammar-based | [ 22 ] |
| Symbol | Description | Value | Fairen-Velarde Modifications |
|---|---|---|---|
| Discount factor for future rewards | 0.9 | ||
| Accuracy measure for propagation (Algorithm 4, [ 19 ] ) | 0.01 | ||
| Temperature in reward function | 0.005 | Increased to 0.05 to increase reward scale. | |
| Parsimony coefficient in reward function | 0.99 | Increased to 0.995 to allow for more complex expressions. | |
| Maximum flux expression depth | 6 | Increased to 12 to allow for more complex expressions. | |
| Episodes | 100 | Decreased to 40 to compensate for increased expression depth. |
| System | Time Span | Time Points | Noise | ||
|---|---|---|---|---|---|
| SIR (Standard) | |||||
| SIR (Squared) | |||||
| SIR (Square root) | |||||
| Lotka-Volterra | |||||
| Brusselator (Stable) | |||||
| Brusselator (Unstable) |