The code was tested on both Windows 10 and Ubuntu 20.04.3 LTS.
To execute the code, the following software must be installed
- Matlab (tested with 2020a/b)
- Gurobi solver (tested with version 9.1.1)
- COBRA toolbox for Matlab
- (only for statistics of growth experiment) R programming language (tested with version 4.1.2)
Clone this repository by running the following code in the command line
git clone https://github.com/pwendering/AraTModel
Change into the AraTModel
directory and run config
to add the functions to the Matlab search path.
The function simulateTempEffects.m
adds temperature-dependent constraints on
- kcat values,
- total protein content,
- photosynthesis (FvCB model) and CO2 uptake,
and solves the resulting quadratically-constrained optimization problem(s).
The function takes two required input arguments:
TGEM
, which a COBRA-formated metabolic model with additional fields required for the addition of temperature-dependent constaints- the configured model based on the enzyme-constrained AraCore model can be loaded by running
load(config('tgemFile'))
I
, the light intensity that should be used in the simulation
By default, a simulations will be carried out at temperatures between 10 °C and 40 °C.
Optional input arguments can be given as key-value pairs. For instance, a custom temperature range (20 °C to 30 °C) can be used:
simulationResult = simulateTempEffects(TGEM, I, 'tempRange', celsius2kelvin(20:30))
The function returns up to four results:
simulationResult
: growth rates (mu
) and net CO2 assimilation rates (A
) and the underlying flux distributions from with and without minimization of total flux- For
mu
andA
, the minimum, average, and maximum values from 20 pool solutions are returned. For the publication, the maximum values were used.
- For
photParams
: temperature-adjusted values that were used to parametrize the constraints based on the FvCB modelfvcbParams
: temperature-adjusted values of obtained by the original FvCB model (Farquhar et al. 1980, 10.1007/BF00386231)gurobiProblem
: pFBA problem with temperature-dependent constaints formatted for the Gurobi solver- this is the problem solved for the last temperature if a range is given as input
-
Create an enzyme-constrained model using GECKO 2.0.2 (not compatible with later versions). See script
create_a_th_ec_model.m
for specific changes introduced to the AraCore model. Specific adjustments made to functions of the GECKO toolbox can be obtained upon request. -
Adjust
config
file if necessary
- input model file
- UniProt protein information file
- photosynthesis parameters
- protein content data
- IDs of some relevant exchange reactions
- (predicted) optimal temperatures
- can be generated using the command line application at https://github.com/pwendering/topt-predict
- file containing TPP data (see
protein-stability/ath-protein-stability.csv
for the format)- if downloaded from the Meltome Atlas, adapt and use
code/bash/get-protein-stability-data-ath
to create the file
- if downloaded from the Meltome Atlas, adapt and use
- Add additional fields using the
createTGEM
function (see alsocode/matlab/thermo_model/create_etc_model.m
for an example)
All scripts that generated the results presented in the publication are located at code/matlab/analysis_scripts
, code/matlab/plotting
, and code/R
.