Build status | Documentation |
---|---|
This package extends COBREXA.jl with the ability to differentiate an optimal solution of a constraint-based metabolic model with respect to parameters.
Note, only non-degenerate (unique) solutions can be differentiated for the derivatives to have a concrete interpretation. You need to ensure that your solution is non-degenerate, otherwise you will only compute sub-gradients. Builtin functionality (pruning) can help with this.
To use this package, download and install Julia, and add the following packages using the built in package manager:
] add COBREXA, DifferentiableMetabolism
Any optimization solver that is compatible with JuMP can be used, provided it can solve the optimization problems you are interested in (LPs and QPs), and it returns the dual variables through the JuMP interface. In the tests we use Tulip.jl for LPs, and Clarabel.jl for QPs. Other solvers, like Gurobi, work well, but they require a license (usually free for academic use).
You can test the installation through:
] test DifferentiableMetabolism
For more information, please see the documentation.
This package is maintained and open for extensions. Feel free to discuss changes and ideas via issues and pull requests.
DifferentiableMetabolism.jl
was developed at Institute for Quantitative and
Theoretical Biology at Heinrich Heine University Düsseldorf
(qtb.hhu.de), and at the Luxembourg Centre for
Systems Biomedicine of the University of Luxembourg
(uni.lu/lcsb).