This repository contains the scripts necessary to regenerate all figures and results from the manuscript by J. G. Chitpin and T. J. Perkins. Certain values, such as mean reconstruction error for the Markovian weights, are not exported as a text file but can be viewed by interactively running the scripts. The beginning of each script will list what is computed/exported.
The following is required:
- Julia (minimum version 1.6).
- Gurobi (must be version 9.12; free academic license available)
- A shell to run the scripts/workflows.
- TeX distribution (like TeX Live or MiKTeX) to compile figures.
- Depending on your version of package dependency
DifferentialEquations.jl
, the numerically calculated flux vectors for Figure 4 may vary slightly (by roughly 10^-16). Thus, the EFM weights may vary slightly from MarkovWeightedEFMs.jl and the other optimization-based approaches. This code was last run withDifferentialEquations v7.4.0
. - All experiments conducted on a Ryzen 5950X with 1 core allocated to Julia and MATLAB with 32 GB of memory (16 GB recommended to run all scripts).
Download the repository and install all necessary Julia packages by running the following commands in your desired installation directory.
$ cd /home/<username>/<directory>/
$ git clone jchitpin/reproduce-efm-paper-2023
$ cd reproduce-efm-paper-2023/src/
$ julia install-julia-packages.jl # or run line by line in Julia REPL
The scripts in the following subsections should be run in order to regenerate
the intermediate data files. All scripts should be run in their current working
directory (reproduce-efm-paper-2023/src/
).
$ julia main-efm-weights-example-markov.jl
$ julia main-efm-weights-example-optimization.jl
Figures are generated via:
$ sh figure-01.sh
$ sh figure-02.sh
Figure is generated via:
sh figure-03.sh
$ julia main-sphingo-network-validation.jl
$ julia main-efm-weights-sphingo-markov.jl
$ julia main-efm-weights-sphingo-optimization.jl
Figure is generated via:
sh figure-04.sh
$ julia main-sphingo-network-validation.jl
$ julia main-efm-weights-sphingo-markov.jl
$ julia main-efm-weights-sphingo-optimization.jl
Figure is generated via:
sh supplementary-01.sh
$ julia main-sphingo-network-validation.jl
$ julia main-efm-weights-sphingo-markov.jl
$ julia main-efm-weights-sphingo-optimization.jl
Figure is generated via:
sh supplementary-02.sh
$ julia main-sphingo-network-validation.jl
$ julia main-efm-weights-sphingo-markov.jl
Table is generated via:
sh supplementary-03.sh
$ matlab -nodisplay -nosplash -nodesktop -r "run('benchmark_efm_matlab.m'); exit;"
$ julia benchmark_efm_matlab.m
Figure is generated via:
sh supplementary-04.sh
Justin G. Chitpin and Theodore J. Perkins, A Markov constraint to uniquely identify elementary flux mode weights in unimolecular metabolic networks, biorXiv preprint biorXiv:2022.07.25.501464, doi: https://doi.org/10.1101/2022.07.25.501464.
We acknowledge the support of the Natural Sciences and Engineering Research Council of Canada (NSERC), Discovery grant RGPIN-2019-0660 to T.J.P. J.G.C. was supported by an NSERC CREATE Matrix Metabolomics Scholarship and an NSERC Alexander Graham Bell Canada Graduate Scholarship.