Hi, I am running a flux balance analysis using a metabolic network of a phytoplanktonic algae. The objective function is simply a biomass function seeking to be maximized. I found that the network can grow without nitrogen inputs and I am not able to find why. In some way nitrogen is created in the network since when I run a FBA with a constraint on N (NH4) uptake rate (lb = -1000, ub = 0), I can find an optimal growth rate, but with a modeled N uptake rate equals to 0. There are no other N exchange reactions or N input in the model. However, when I try different (and negative) bounds on N exchange (lb = -1000 and ub = - 0.001), I cannot find an optimal growth rate and the solution is ‘suboptimal’ indicating that the model always find an optimal solution without taking up N from the medium. How can I resolve this and how can I find an optimal growth rate with a realistic significant N uptake rate (i.e., a negative bound for N exchange)?
Thanks for your help,
You can see below the 'SystemConfigReport'.
>> generateSystemConfigReport
> ---------------------------------- SYSTEM CONFIGURATION REPORT ----------------------------------
_____ _____ _____ _____ _____ |
/ ___| / _ \ | _ \ | _ \ / ___ \ | COnstraint-Based Reconstruction and Analysis
| | | | | | | |_| | | |_| | | |___| | | The COBRA Toolbox - 2018
| | | | | | | _ { | _ / | ___ | |
| |___ | |_| | | |_| | | | \ \ | | | | | Documentation:
\_____| \_____/ |_____/ |_| \_\ |_| |_| | http://opencobra.github.io/cobratoolbox
|
> Checking if git is installed ... Done.
> Checking if the repository is tracked using git ... Done.
> Checking if curl is installed ... Done.
> Checking if remote can be reached ... Done.
> Initializing and updating submodules (this may take a while)... Done.
> Adding all the files of The COBRA Toolbox ... Done.
> Define CB map output... set to svg.
> TranslateSBML is installed and working properly.
> Configuring solver environment variables ...
- [----] ILOG_CPLEX_PATH: --> set this path manually after installing the solver ( see instructions )
- [*---] GUROBI_PATH: /Library/gurobi752/mac64/matlab
- [----] TOMLAB_PATH: --> set this path manually after installing the solver ( see instructions )
- [----] MOSEK_PATH: --> set this path manually after installing the solver ( see instructions )
Done.
> Checking available solvers and solver interfaces ... Done.
> Setting default solvers ... Done.
> Saving the MATLAB path ... Done.
- The MATLAB path was saved in the default location.
> Summary of available solvers and solver interfaces
Support LP MILP QP MIQP NLP
----------------------------------------------------------------------
gurobi active 1 1 1 1 -
ibm_cplex active 0 0 0 - -
tomlab_cplex active 0 0 0 0 -
glpk active 1 1 - - -
mosek active 0 - 0 - -
matlab active 1 - - - 1
cplex_direct active 0 0 0 0 -
dqqMinos active 1 - - - -
pdco active 1 - 1 - -
quadMinos active 1 - - - -
qpng passive - - 1 - -
tomlab_snopt passive - - - - 0
gurobi_mex legacy 0 0 0 0 -
lindo_old legacy 0 - - - -
lindo_legacy legacy 0 - - - -
lp_solve legacy 1 - - - -
opti legacy 0 0 0 0 0
----------------------------------------------------------------------
Total - 7 2 3 1 1
+ Legend: - = not applicable, 0 = solver not compatible or not installed, 1 = solver installed.
> You can solve LP problems using: 'gurobi' - 'glpk' - 'matlab' - 'dqqMinos' - 'pdco' - 'quadMinos' - 'lp_solve'
> You can solve MILP problems using: 'gurobi' - 'glpk'
> You can solve QP problems using: 'gurobi' - 'pdco' - 'qpng'
> You can solve MIQP problems using: 'gurobi'
> You can solve NLP problems using: 'matlab'
> Checking for available updates ...
> There are 6429 new commit(s) on <master> and 0 new commit(s) on <develop> [c72a7b @ master]
> You can update The COBRA Toolbox by running updateCobraToolbox() (from within MATLAB).
Elapsed time is 143.438534 seconds.
-----------------------------------------------------------------------------------------------------
MATLAB Version: 9.4.0.813654 (R2018a)
MATLAB License Number: 310290
Operating System: Mac OS X Version: 10.13.6 Build: 17G65
Java Version: Java 1.8.0_144-b01 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
-----------------------------------------------------------------------------------------------------
MATLAB Version 9.4 (R2018a)
Simulink Version 9.1 (R2018a)
Aerospace Toolbox Version 2.21 (R2018a)
Bioinformatics Toolbox Version 4.10 (R2018a)
Communications System Toolbox Version 6.6 (R2018a)
Computer Vision System Toolbox Version 8.1 (R2018a)
Control System Toolbox Version 10.4 (R2018a)
Curve Fitting Toolbox Version 3.5.7 (R2018a)
DSP System Toolbox Version 9.6 (R2018a)
Database Toolbox Version 8.1 (R2018a)
Embedded Coder Version 7.0 (R2018a)
Financial Toolbox Version 5.11 (R2018a)
Fixed-Point Designer Version 6.1 (R2018a)
Fuzzy Logic Toolbox Version 2.3.1 (R2018a)
Global Optimization Toolbox Version 3.4.4 (R2018a)
Image Acquisition Toolbox Version 5.4 (R2018a)
Image Processing Toolbox Version 10.2 (R2018a)
Instrument Control Toolbox Version 3.13 (R2018a)
MATLAB Coder Version 4.0 (R2018a)
MATLAB Compiler Version 6.6 (R2018a)
MATLAB Compiler SDK Version 6.5 (R2018a)
Mapping Toolbox Version 4.6 (R2018a)
Model Predictive Control Toolbox Version 6.1 (R2018a)
Neural Network Toolbox Version 11.1 (R2018a)
Optimization Toolbox Version 8.1 (R2018a)
Parallel Computing Toolbox Version 6.12 (R2018a)
Partial Differential Equation Toolbox Version 3.0 (R2018a)
RF Toolbox Version 3.4 (R2018a)
Robust Control Toolbox Version 6.4.1 (R2018a)
Signal Processing Toolbox Version 8.0 (R2018a)
Simscape Version 4.4 (R2018a)
Simscape Multibody Version 5.2 (R2018a)
Simscape Power Systems Version 6.9 (R2018a)
Simulink Coder Version 8.14 (R2018a)
Simulink Control Design Version 5.1 (R2018a)
Simulink Desktop Real-Time Version 5.6 (R2018a)
Statistics and Machine Learning Toolbox Version 11.3 (R2018a)
Symbolic Math Toolbox Version 8.1 (R2018a)
System Identification Toolbox Version 9.8 (R2018a)
Wavelet Toolbox Version 5.0 (R2018a)
> Default shell : /bin/bash
> Version of shell : GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin17)
Copyright (C) 2007 Free Software Foundation, Inc.
> Architecture : MACI64
> MATLAB folder : /Applications/MATLAB_R2018a.app
> COBRA Toolbox root : /Users/mlavoie/cobratoolbox
> git version : git version 2.15.2 (Apple Git-101.1)
> curl version : curl 7.54.0 (x86_64-apple-darwin17.0)
> CBT_LP_SOLVER : gurobi
> CBT_MILP_SOLVER : gurobi
> CBT_QP_SOLVER : gurobi
> CBT_MIQP_SOLVER : gurobi
> CBT_NLP_SOLVER : matlab
> GUROBI_PATH : /Library/gurobi752/mac64/matlab
> ILOG_CPLEX_PATH :
> TOMLAB_PATH :
> MOSEK_PATH :
> ----------------------------------- END OF CONFIGURATION REPORT -----------------------------------
> Please send the report located in
/Users/mlavoie/cobratoolbox/COBRAconfigReport.log
to the developers or post it in the forum:
>> printConstraints(model1, 1000, -1000)
MinConstraints:
maxConstraints:
>> printConstraints(model1, -1000, 1000)
MinConstraints:
R_EX_co2_e -5.78704
R_ATPS3m 2
R_NGAM 1
maxConstraints:
R_EX_co2_e -5.78704
R_EX_photon_e -1000
R_ATPS3m 2
R_NGAM 1
>> printFluxVector(model1, FBAsolution.x, false, true)
R_EX_12ppd__S_e 0
R_EX_glc__D_e 0
R_EX_h2o_e 0
R_EX_h_e -5.273
R_EX_cl_e -0.00724
R_EX_pi_e -5.498
R_EX_nh4_e 0
R_EX_fe3_e -2.42e-05
R_EX_k_e -0.00543
R_EX_ca2_e -0.001524
R_EX_mg2_e -0.001898
R_EX_mn2_e -2.858e-06
R_EX_cobalt2_e -5.716e-07
R_EX_zn2_e -1.905e-06
R_EX_co2_e -5.787
R_EX_cu2_e -9.526e-07
R_EX_o2_e 7.836
R_EX_fe2_e 0
R_EX_h2s_e 0
R_EX_no3_e 0
R_EX_so4_e -0.004823
R_EX_photon_e -1000
R_EX_thm_e -2.267e-06
R_EX_btn_e -1.353e-05
EX_si[C_e] -0.007621
sink_octdp[C_c] 0
sink_dscl[C_c] 0
R_Biomass 0.009526
With constraints on NH4+ exchange, setting lower bound for NH4 exchange = -1000 and a upper bound = -1, the optimal FBA solution is a growth rate of 0.0029 h-1 (see data and codes below). So, the growth rate decreases when NH4+ uptake from the medium becomes significant. All exchanges reactions decreased by around 3.2 except oxygen exchange, which decreases by 30% and phosphorus exchange, which decreases by 50% and except the fixed CO2 and photon fluxes, which did not change with or without NH4+ uptake from the medium.
>> printConstraints(model1, -1000, 1000)
MinConstraints:
R_EX_co2_e -5.78704
R_ATPS3m 2
R_NGAM 1
maxConstraints:
R_EX_nh4_e -1
R_EX_co2_e -5.78704
R_EX_photon_e -1000
R_ATPS3m 2
R_NGAM 1
>> printFluxVector(model1, FBAsolution.x, false, true)
R_EX_12ppd__S_e 0
R_EX_glc__D_e 0
R_EX_h2o_e 0
R_EX_h_e -2.628
R_EX_cl_e -0.002236
R_EX_pi_e -3.698
R_EX_nh4_e -1
R_EX_fe3_e -7.472e-06
R_EX_k_e -0.001677
R_EX_ca2_e -0.0004707
R_EX_mg2_e -0.0005861
R_EX_mn2_e -8.825e-07
R_EX_cobalt2_e -1.765e-07
R_EX_zn2_e -5.883e-07
R_EX_co2_e -5.787
R_EX_cu2_e -2.942e-07
R_EX_o2_e 5.92
R_EX_fe2_e 0
R_EX_h2s_e 0
R_EX_no3_e 0
R_EX_so4_e -0.001489
R_EX_photon_e -1000
R_EX_thm_e -7.001e-07
R_EX_btn_e -4.177e-06
EX_si[C_e] -0.002353
sink_octdp[C_c] 0
sink_dscl[C_c] 0
R_Biomass 0.002942
I draw a metabolic map using the cobra toolbox paint4Net and the function ‘draw_by_met’.
[directionRxns, involvedMets, deadEnds] = draw_by_met(model1, {'nh4[C_c]'}, 'true', 1, 'struc', {''}, FBAsolution.x)
I found that, with NH4+ uptake, virtually all NH4+ comes from the external medium although threonine deaminase (degradation of the amino acid threonine to NH4+) also contribute slightly to intracellular NH4+ production. By contrast, without NH4+ uptake, virtually all NH4+ is produced by a serine deaminase (an enzyme degrading the amino acid serine to NH4+). So, as suggested by Chintan, NH4+ uptake appears to compete with biosynthesis of amino acids in the growth equation (i.e., it decreases the modeled growth rate). In the case where no NH4+ uptake occurs from the medium, the NH4+ produced inside the cell comes mostly from serine, which is synthesized from glycine and metabolites of the ADOMET cycle. The precursors of the ADOMET cycle are synthesized by the glyoxylate cycle (glycine, glyoxylate) and glycine in this cycle is produced from a coenzyme a (coa), which mostly comes from beta oxidation of fatty acids. So, I tried running the model without beta oxidation or glyoxylate cycle (i.e., glycolate cycle or photorespiration), and I found that the FBA cannot find an optimal growth rate (infeasible FBA). So, there are lots of pathways degrading amino acids (which forms the biomass equation) in my model, which can provide NH4+. There are also several reactions leading to beta oxidation of fatty acids, which produces coa and acetyl-Coa for the TCA cycle. No acetyl-Coa is produced from pyruvate dehydrogenase and thus glycolysis is not connected to the TCA cycle; beta oxidation is instead connected to the TCA cycle, which is strange for a biomass equation maximizing ATP production and synthesis of amino acids, fatty acids, pigments, sugars, vitamins (although my biomass equation does not include 'coa'). There is a pathway of fatty acid beta oxidation to propanoyl-Coa (ppcoa), which is converted to virtually all cellular coenzyme a (coa), which contains nitrogen and contributes to NH4+ production inside the cells from no nitrogen input from the medium. Indeed, ‘coa’ is not de novo synthesized in my molecular network and is not in the biomass equation, which means that ‘coa’ synthesis is not optimized to a given concentration in the cell. How could I tell the model that NH4+ uptake is essential and that ‘coa’ is just recycled in the cell and that the biosynthetic pathway of this ‘coa’ is neglected?
As requested by Chintan, I also ran Flux Variability Analysis and I found that NH4+ exchange vary between 0 and 2.12 mmol g DW-1 h-1 when there is no fixed NH4+ uptake (lb = -1000, ub = 0). When I fixed ub= -1, I find a minimum flux of -1.001 and a maximum flux of -1. Any idea on how to make the model take up NH4+ from the medium as a real cell would be very welcome!
Thanks for your help,
Michel
My best guess would be that you have amino acid exchangers, or some mass balancing issues.
Did you try running checkMassChargeBalance and checking the results for inconsistencies?
Other than that, we would need the model to see what might be wrong.
Best
Thomas
Unsubscribe
It appears that you have subscribed to commercial messages from this sender. To stop receiving such messages from this sender, please unsubscribey
--
---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
For more options, visit http://secure-web.cisco.com/1_YdD5RnfSkNvKIbElvwE69ridBGupv2b-764ZkQg25AbRYulV8nTIVsdyZu1xCxeutuKS-Lg-wOHxeJEv5B8gUmwswteXxuaNYAEPSRDBxCJOFFfUL6WaoJiBxqzL1PHg1SwrtWFt-EWJfs0hv3lnZxqqi1K4QLyOhBO7EN-kvX9Og3w-X78vUrvXMhlqGFwi76MrZ_VvjucXYGSGjnbEwFxrVhq5eLHomj7zXOJa7rkS5qhcb8R3vO32C9LMttN_ZA7TJQx2gXP2Aj5yav1lfKWCmFyAByII1Hr0O6vyEvuvJHHiDeNTVaQXg-6y7PFkDNalETuzfk9kZ6dS6jyOBhhJMJYSAdTRQGYzhCvz2vpSWBxghocLDKj62-DKrbChoLVSae7S-JXybcDMHgP8w/l34%3Ahttps%3A%2F%2Fgroups.google.com%2Fd%2Foptoute.
-- Université du Luxembourg Faculté des Sciences, de la Technologie et de la Communication Campus Belval, Biotech II 423 6 avenue du Swing L-4367 Belvaux Tel: (+352) 46 66 44 5309 Email: thoma...@uni.lu
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbox+unsubscribe@googlegroups.com.
Hi Michel,
Since my model was almost extensively done directly from the Bigg database, I assumed that there were no problems with mass and charge balance. However, I just tried the 'checkMassChargeBalance' function and there are apparently several problems in mass and charge balance. They are probably mostly due to the fact that in the Bigg database, there might be two charges and/or two formulas for one metabolite in some cases. So, I will have to uniformize the number of formula and charge by selecting only one formula and one charge for each metabolite. We will see if there are errors remaining here.
But, I am still wondering if a cofactor such as 'coenzyme a (coa)' , which is not de novo synthesized in the model, could provide nitrogen to the system? I suppose the toolbox consider the amount of N in each compound and takes that into account when performing FBA so that no matter is created from nothing when there are no mass or charge balance errors. Am I right?
I also tested the presence of inconsistencies in the model using the following line of code : 'FluxConsistent = verifyModel(model,'fluxConsistency', true)'. I found that there are several inconsistencies. I read that these inconsistencies can be explained by holes in the network (e.g., blocked reactions, closed exchange reactions). Is it the right and the only definition of 'network inconsistency'? I would like to make sure I understand that.
Hi Thomas and all, --
---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
-- Université du Luxembourg Faculté des Sciences, de la Technologie et de la Communication Campus Belval, Biotech II 115 6 avenue du Swing L-4367 Belvaux Tel: (+352) 46 66 44 5309 Email: thoma...@uni.lu
RF Toolbox Version 3.4<sp
--
---
You received this message because you are subscribed to the Google Groups "COBRA Toolbox" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cobra-toolbo...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.