Convert a reconstruction into a flux balance analysis model

Author: Ronan Fleming, Ines Thiele, National University of Ireland, Galway.

Reviewers:

INTRODUCTION

Even with quality control during the reconstruction process, it is not appropriate to assume that any reconstruction can be converted directly into a model and used to make predictions. A model must satisfy certain assumptions before it can be used to make reliable predictions. Depending on the type of model model, these assumptions will be different. Each assumption should be chemically or biologically motivated and expressed in an unambiguous manner and preferably both intuitively and mathematically. Flux balance analysis is a mathematical method widely used for studying genome-scale biochemical network. Here one aims to predict steady-state reaction fluxes, where there is a balance between production and consumption of each molecular species that is not exchanged across the specified boundary of a system. In this situation, one might obtain erroneous predictions if the system boundary is incorrectly specified. If a reconstruction contains one or more supposedly mass balanced reactions, but which are actually not mass balanced, such reactions in a model can lead to inadvertent leakage of a metabolite from the model, in violation of mass balance. Similarly, when generating a model for flux balance analysis, it is important to ensure that the network is flux consistent, that is, each reaction can carry a non-zero steady state flux.
Given a reconstruction with reactants involved in reactions, this tutorial demonstrates a method to identify and extract the largest subset of the reconstruction whose internal reactions are both stoichoimetrically and flux consistent and whose external reactions are flux consistent. This model is then mathematically consistent with the basic requirements for generation of predictions using flux balance analysis. The identification of the component of the reconstruction that does not satisfy the aforementioned modelling conditions is also useful for targeting reconstruction effort towards resolving stoichiometric inconsistency or resolving flux inconsistency. The example used in this tutorial illustrates the process of extracting a model consistent with flux balance analsis, from a ReconX reconstruction.

PROCEDURE

Select reconstruction to convert into a model and enter parameters

Load the ReconX reconstruction, and save the original reconstruction in the workspace, unless it is already loaded into the workspace.
clear model
if ~exist('modelOrig','var')
%select your own model, or use Recon2.0model instead
if 1
filename='Recon3D_301.mat'
load(filename);
model=Recon3D;
else
filename='Recon2.0model.mat';
if exist('Recon2.0model.mat','file')==2
model = readCbModel(filename);
end
end
model.csense(1:size(model.S,1),1)='E';
modelOrig = model;
else
model=modelOrig;
end
filename = 'Recon3D_301.mat'
Set the level of printing, zero for silent, higher for more output.
printLevel=2;
Choose the directory to place the results
basePath='~/work/sbgCloud/';
%resultsPath=[basePath '/programReconstruction/projects/recon2models/results/reconXs/' model.modelID];
resultsPath=[basePath '/courses/2019_Leiden_COBRA/practicalsDemo/Day4/' model.modelID];
resultsFileName=[resultsPath filesep model.modelID];
Create and enter the folder for the results if it does not already exist
if ~exist(resultsPath,'dir')
mkdir(resultsPath)
end
cd(resultsPath)
Optionally create a diary to save the output in case it is very long, this makes it easier to search, especially when debugging the process during the early stages.
if 0
diary([resultsFileName '_diary.txt'])
end

Overview some of the key properties of the reconstruction

Noting the initial size of the reconstruction is useful for comparisons later with subsets derived according to mathematical specifications.
[nMet,nRxn]=size(model.S);
fprintf('%6s\t%6s\n','#mets','#rxns')
#mets #rxns
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' totals.')
8399 13543 totals.
Make sure the stoichiometric matrix is stored in a sparse format as this accelerates computations with large networks
model.S=sparse(model.S);

Check in case the reconstruction is a model that is already ready for flux balance analysis

There is no need to run this live script any further if the reconstruction already satisfies the conditions necessary for flux balance analysis. That is if all internal reactants and reactions are stoichiometrically consistent, and all reactions are flux consistent, then the reconstruction satisfies the criteria to designate it a model ready for flux balance analysis.
SIntMetBool m x 1 Boolean of metabolites heuristically though to be involved in mass balanced reactions.
SIntRxnBool n x 1 Boolean of reactions heuristically though to be mass balanced.
SConsistentMetBool m x 1 Boolean vector indicating consistent mets
SConsistentRxnBool n x 1 Boolean vector indicating consistent rxns
fluxConsistentMetBool m x 1 Boolean vector indicating flux consistent mets
fluxConsistentRxnBool n x 1 Boolean vector indicating flux consistent rxns
if all(isfield(model,{'SIntMetBool','SIntRxnBool','SConsistentMetBool',...
'SConsistentRxnBool','fluxConsistentMetBool','fluxConsistentRxnBool'}))
if all(model.SIntMetBool & model.SConsistentMetBool)...
&& nnz(model.SIntRxnBool & model.SConsistentRxnBool)==nnz(model.SIntRxnBool)...
&& all(model.fluxConsistentMetBool)...
&& all(model.fluxConsistentRxnBool)
fullyStoichAndFluxConsistent=1;
fprintf('%s\n','Reconstruction is a model that is already ready for flux balance analysis')
end
return
else
fullyStoichAndFluxConsistent=0;
fprintf('%s\n','Reconstruction must be tested to check if it is ready for flux balance analysis')
end
Reconstruction must be tested to check if it is ready for flux balance analysis

Manually remove certain reactions from the reconstruction

Before attempting to algorithmically remove stoichiometrically or flux inconsistent supposed internal reactions from a reconstruction to generate a model, there is an option to review the content of the reconstruction and manually identify reactions for removal. That is, there are two options:
A. Skip manual review of reconstruction content. Move to the next step.
B. Review the content of the reconstruction and omit any reactions that are assumed to be stoichiometrically or flux inconsistent. With respect to stoichiometric inconsistency, such reactions may be obviously mass imbalanced and not satisfy the heuristic conditions for indentification as an exernal reaction. Alternatively, such reactions may be identified by a previous pass through of this tutorial as being of unknown stoichometric consistent (model.unknownSConsistencyRxnBool(j)==1), after the largest stoichiometrically consistent subset of the network has been is identified. This is an iterative process where multiple rounds of identification of the largest stoichiometrically consistent set and manual curation of the remainder that is of unknown stoichiometric consistency is necessary.
if strcmp(filename,'Recon3.0model')
modelOrig=model;
if 0
if 1
%Rename some of the biomass reactions to make them more obviously exchange
%reactions
model.rxns{strcmp(model.rxns,'biomass_reaction')}= 'EX_biomass_reaction';
model.rxns{strcmp(model.rxns,'biomass_maintenance')}= 'EX_biomass_maintenance';
model.rxns{strcmp(model.rxns,'biomass_maintenance_noTrTr')}= 'EX_biomass_maintenance_noTrTr';
%ATP hydrolysis is not imbalanced like all the other demand reactions so
%give it a different accronym ATPM = ATP Maintenance
bool=strcmp('DM_atp_c_',model.rxns);
model.rxns{bool}='ATPM';
end
[model,removeMetBool,removeRxnBool] = manuallyAdaptRecon3(model,printLevel);
else
[model,removeMetBool,removeRxnBool] = manuallyAdaptRecon3Ines(model,printLevel);
end
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
if nMet0==nMet && nRxn0==nRxn && printLevel>0
fprintf('%s\n','--- Manually removing rows and columns of the stoichiometric matrix----')
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet0,nRxn0,' totals.')
fprintf('%6u\t%6u\t%s\n',nMet0-nMet,nRxn0-nRxn,' manually removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
end
end

Remove any trivial rows and columns of the stoichiometric matrix

Remove any zero rows or columns of the stoichiometric matrix
modelOrig=model;
model=removeTrivialStoichiometry(model);
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
if nMet0==nMet && nRxn0==nRxn && printLevel>0
fprintf('%s\n','---Checking for Remove any trivial rows and columns of the stoichiometric matrix----')
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet0,nRxn0,' totals.')
fprintf('%6u\t%6u\t%s\n',nMet0-nMet,nRxn0-nRxn,' duplicates removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
end
---Checking for Remove any trivial rows and columns of the stoichiometric matrix----
#mets #rxns
8399 13543 totals.
0 0 duplicates removed.
8399 13543 remaining.
Check for duplicate columns by detecting the columns of the S matrix that are identical upto scalar multiplication.
modelOrig=model;
dupDetectMethod='FR';
dupDetectMethod='S';
removeFlag=0;
[modelOut,removedRxnInd, keptRxnInd] = checkDuplicateRxn(model,dupDetectMethod,removeFlag,printLevel-2);
Remove any duplicate reactions, and uniquely involved reactants, from the stoichiometric matrix.
if length(removedRxnInd)>0
irrevFlag=0;
metFlag=1;
%set all reactions reversible that are duplicates
model.lb(removedRxnInd)=-model.ub(removedRxnInd);
%remove duplicates
model = removeRxns(model,model.rxns(removedRxnInd),irrevFlag,metFlag);
end
Display the statistics on the duplicate reactions,
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
if nMet0==nMet && nRxn0==nRxn && printLevel>0
fprintf('%s\n','---Remove any duplicate reactions----')
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet0,nRxn0,' totals.')
fprintf('%6u\t%6u\t%s\n',nMet0-nMet,nRxn0-nRxn,' duplicates removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
end
---Remove any duplicate reactions----
#mets #rxns
8399 13543 totals.
0 0 duplicates removed.
8399 13543 remaining.

Remove any duplicate reactions upto protons

Remove reactions reactions that differ only in the number of protons involved as substrates or products. Also remove exclusively involved reactants.
Save a temporary model for testing, before making any changes.
modelH=model;
Find the proton indicies in different compartments. A proton, with index i, is asumed to be represented by an abbreviation within model.mets{i} like h[*], where * denotes the compartment symbol.
nMetChars=zeros(length(modelH.mets),1);
for m=1:length(modelH.mets)
nMetChars(m,1)=length(modelH.mets{m});
end
protonMetBool=strncmp(modelH.mets,'h',1) & nMetChars==length('h[*]');
if printLevel>2
disp(modelH.mets(protonMetBool))
end
Zero out the proton stoichiometric coefficients from the temporary model for testing
modelH.S(protonMetBool,:)=0;
Check for duplicate columns, upto protons, by detecting the columns of the S matrix that are identical upto scalar multiplication.
dupDetectMethod='FR';
removeFlag=0;
[modelOut,removedRxnInd, keptRxnInd] = checkDuplicateRxn(modelH,dupDetectMethod,removeFlag,printLevel-1);
Checking for reaction duplicates by stoichiometry (up to orientation) ... Keep: 25HVITD2t 25hvitd2[c] -> 25hvitd2[e] Duplicate: 25HVITD2tin 25hvitd2[e] -> 25hvitd2[c] Keep: 25HVITD2tin_m 25hvitd2[c] -> 25hvitd2[m] Duplicate: 25HVITD2tm 25hvitd2[m] -> 25hvitd2[c] Keep: 25HVITD3t 25hvitd3[c] -> 25hvitd3[e] Duplicate: 25HVITD3tin 25hvitd3[e] -> 25hvitd3[c] Keep: 25HVITD3tin_m 25hvitd3[c] -> 25hvitd3[m] Duplicate: 25HVITD3tm 25hvitd3[m] -> 25hvitd3[c] Keep: 3MOBt2im 3mob[c] -> 3mob[m] Duplicate: HMR_3746 3mob[c] <=> 3mob[m] Keep: 5MTHFt 5mthf[e] <=> 5mthf[c] Duplicate: MTHFTe 5mthf[c] -> 5mthf[e] Keep: ADNt adn[e] <=> adn[c] Duplicate: ADNCNT3tc adn[e] <=> adn[c] Keep: ADPRIBt adprib[e] -> adprib[c] Duplicate: ADPRIBte adprib[c] <=> adprib[e] Keep: ALAt4 na1[e] + ala_L[e] -> na1[c] + ala_L[c] Duplicate: HMR_9605 na1[e] + ala_L[e] -> na1[c] + ala_L[c] Keep: ALCD21_D nad[c] + 12ppd_R[c] -> nadh[c] + lald_D[c] Duplicate: PPDOx nadh[c] + lald_D[c] -> nad[c] + 12ppd_R[c] Keep: ALCD22_D nad[c] + lald_D[c] -> nadh[c] + mthgxl[c] Duplicate: LALDO2x nadh[c] + mthgxl[c] -> nad[c] + lald_D[c] Keep: ATPasel h2o[c] + atp[c] -> adp[c] + pi[c] Duplicate: DM_atp_c_ h2o[c] + atp[c] -> adp[c] + pi[c]
Warning: BTNt2 has more than one replicate
Keep: BTNt2 btn[e] <=> btn[c] Duplicate: BTNTe btn[c] -> btn[e] Keep: C14STRr nadph[r] + 44mctr[r] -> nadp[r] + 44mzym[r] Duplicate: r0780 nadp[r] + 44mzym[r] <=> nadph[r] + 44mctr[r] Keep: C160CPT1 crn[c] + pmtcoa[c] <=> coa[c] + pmtcrn[c] Duplicate: C160CPT2rbc coa[c] + pmtcrn[c] <=> crn[c] + pmtcoa[c] Keep: C161CPT2 coa[m] + hdcecrn[m] <=> crn[m] + hdcoa[m] Duplicate: r0446 crn[m] + hdcoa[m] <=> coa[m] + hdcecrn[m] Keep: C181CPT1 crn[c] + odecoa[c] <=> coa[c] + odecrn[c] Duplicate: C181CPT2rbc coa[c] + odecrn[c] <=> crn[c] + odecoa[c] Keep: CITtam cit[c] + mal_L[m] <=> cit[m] + mal_L[c] Duplicate: HMR_4964 cit[c] + mal_L[m] -> cit[m] + mal_L[c] Keep: CRNt crn[e] <=> crn[c] Duplicate: CRNtHa crn[c] -> crn[e] Keep: CRNtuNa na1[e] + crn[e] -> na1[c] + crn[c] Duplicate: CRNCT2te na1[c] + crn[c] <=> na1[e] + crn[e] Keep: CRVNCtr crvnc[e] <=> crvnc[c] Duplicate: CE0328te crvnc[c] <=> crvnc[e] Keep: CYSt4 na1[e] + cys_L[e] -> na1[c] + cys_L[c] Duplicate: CYSSNAT5tc na1[e] + cys_L[e] <=> na1[c] + cys_L[c] Keep: CYTDt cytd[e] <=> cytd[c] Duplicate: CYTDt2r cytd[e] <=> cytd[c] Keep: DALAt2r ala_D[e] <=> ala_D[c] Duplicate: ALA-DTDe ala_D[c] -> ala_D[e] Keep: DMHPTCRNte dmhptcrn[c] <=> dmhptcrn[e] Duplicate: DMHPTCRNtr dmhptcrn[e] <=> dmhptcrn[c] Keep: DNDPt10m dadp[c] + dcdp[m] -> dcdp[c] + dadp[m] Duplicate: DNDPt29m dcdp[c] + dadp[m] -> dadp[c] + dcdp[m] Keep: DNDPt11m dadp[c] + dgdp[m] -> dgdp[c] + dadp[m] Duplicate: DNDPt35m dgdp[c] + dadp[m] -> dadp[c] + dgdp[m] Keep: DNDPt14m dtdp[m] + dudp[c] -> dtdp[c] + dudp[m] Duplicate: DNDPt22m dtdp[c] + dudp[m] -> dtdp[m] + dudp[c] Keep: DNDPt15m dgdp[m] + dudp[c] -> dgdp[c] + dudp[m] Duplicate: DNDPt33m dgdp[c] + dudp[m] -> dgdp[m] + dudp[c] Keep: DNDPt16m dadp[m] + dudp[c] -> dadp[c] + dudp[m] Duplicate: DNDPt8m dadp[c] + dudp[m] -> dadp[m] + dudp[c] Keep: DNDPt17m dcdp[m] + dudp[c] -> dcdp[c] + dudp[m] Duplicate: DNDPt26m dcdp[c] + dudp[m] -> dcdp[m] + dudp[c] Keep: DNDPt23m dgdp[m] + dtdp[c] -> dgdp[c] + dtdp[m] Duplicate: DNDPt34m dgdp[c] + dtdp[m] -> dgdp[m] + dtdp[c] Keep: DNDPt24m dadp[m] + dtdp[c] -> dadp[c] + dtdp[m] Duplicate: DNDPt9m dadp[c] + dtdp[m] -> dadp[m] + dtdp[c] Keep: DNDPt25m dcdp[m] + dtdp[c] -> dcdp[c] + dtdp[m] Duplicate: DNDPt27m dcdp[c] + dtdp[m] -> dcdp[m] + dtdp[c] Keep: DNDPt28m dcdp[c] + dgdp[m] -> dgdp[c] + dcdp[m] Duplicate: DNDPt36m dgdp[c] + dcdp[m] -> dcdp[c] + dgdp[m] Keep: DOPAtu dopa[e] <=> dopa[c] Duplicate: DOPAENT4tc dopa[e] <=> dopa[c] Keep: EBP2r zymstnl[r] -> lthstrl[r] Duplicate: r1381 lthstrl[r] <=> zymstnl[r] Keep: FE2t fe2[e] -> fe2[c] Duplicate: FE2DMT1 fe2[e] -> fe2[c] Keep: FE2tm fe2[c] -> fe2[m] Duplicate: HMR_5420 fe2[c] -> fe2[m] Keep: FUCFUCFUCGALACGLC13GALACGLCGAL14ACGLCGALGLUSIDEte fucfucfucgalacglc13galacglcgal14acglcgalgluside_hs[e] <=> fucfucfucgalacglc13galacglcgal14acglcgalgluside_hs[c] Duplicate: HMR_9651 fucfucfucgalacglc13galacglcgal14acglcgalgluside_hs[c] <=> fucfucfucgalacglc13galacglcgal14acglcgalgluside_hs[e] Keep: FUCFUCFUCGALACGLCGAL14ACGLCGALGLUSIDEte fucfucfucgalacglcgal14acglcgalgluside_hs[e] <=> fucfucfucgalacglcgal14acglcgalgluside_hs[c] Duplicate: HMR_9645 fucfucfucgalacglcgal14acglcgalgluside_hs[c] <=> fucfucfucgalacglcgal14acglcgalgluside_hs[e] Keep: FUCGALFUCGALACGLCGALGLUSIDEte fucgalfucgalacglcgalgluside_hs[e] <=> fucgalfucgalacglcgalgluside_hs[c] Duplicate: HMR_9643 fucgalfucgalacglcgalgluside_hs[c] <=> fucgalfucgalacglcgalgluside_hs[e] Keep: GALFUCGALACGLCGAL14ACGLCGALGLUSIDEte galfucgalacglcgal14acglcgalgluside_hs[e] <=> galfucgalacglcgal14acglcgalgluside_hs[c] Duplicate: HMR_9646 galfucgalacglcgal14acglcgalgluside_hs[c] <=> galfucgalacglcgal14acglcgalgluside_hs[e] Keep: GALt1r gal[e] <=> gal[c] Duplicate: GALt2_2 gal[e] <=> gal[c] Keep: GDPtg gdp[c] <=> gdp[g] Duplicate: HMR_7743 gdp[c] <=> gdp[g]
Warning: GLCt1r has more than one replicate
Keep: GLCt1r glc_D[e] <=> glc_D[c] Duplicate: GLCGLUT2 glc_D[c] -> glc_D[e] Keep: GLNtm gln_L[c] -> gln_L[m] Duplicate: HMR_5101 gln_L[c] -> gln_L[m] Keep: GLYC3Ptm glyc3p[c] -> glyc3p[m] Duplicate: GLYC3Ptmc glyc3p[m] <=> glyc3p[c] Keep: GLYt4 na1[e] + gly[e] -> na1[c] + gly[c] Duplicate: GLYSNAT5tc na1[e] + gly[e] <=> na1[c] + gly[c] Keep: GSNt gsn[e] <=> gsn[c] Duplicate: GSNt2r gsn[e] <=> gsn[c] Keep: HISt4 na1[e] + his_L[e] -> na1[c] + his_L[c] Duplicate: HISSNAT5tc na1[e] + his_L[e] <=> na1[c] + his_L[c] Keep: HIStiDF his_L[e] -> his_L[c] Duplicate: HISCAT1 his_L[c] <=> his_L[e] Keep: HSD17B7r nadph[r] + estrone[r] -> nadp[r] + estradiol[r] Duplicate: HMR_2041 nadph[r] + estrone[r] -> nadp[r] + estradiol[r]
Warning: Htg has more than one replicate
Keep: Htg <=> Duplicate: Htmi -> Keep: INSt ins[e] <=> ins[c] Duplicate: INSt2 ins[e] <=> ins[c] Keep: L_LACtcm lac_L[c] -> lac_L[m] Duplicate: L_LACtm lac_L[c] -> lac_L[m] Keep: LNLCCPT1 crn[c] + lnlccoa[c] <=> coa[c] + lnlccrn[c] Duplicate: LNLCCPT2rbc coa[c] + lnlccrn[c] <=> crn[c] + lnlccoa[c]
Warning: NACUP has more than one replicate
Keep: NACUP nac[e] -> nac[c] Duplicate: NACHORCTL3le nac[e] -> nac[c] Keep: NADHtpu nadh[c] -> nadh[x] Duplicate: NADtpu nadh[x] -> nadh[c] Keep: NAt na1[e] <=> na1[c] Duplicate: NAt3_1 na1[c] <=> na1[e] Keep: NCAMUP ncam[e] -> ncam[c] Duplicate: NCAMDe ncam[c] -> ncam[e] Keep: NH4t3r nh4[c] <=> nh4[e] Duplicate: NH4tb nh4[e] <=> nh4[c] Keep: NOt no[e] <=> no[c] Duplicate: NODe no[c] <=> no[e] Keep: OCTAt octa[e] <=> octa[c] Duplicate: OCTAte octa[c] <=> octa[e]
Warning: ORNt4m has more than one replicate
Keep: ORNt4m orn[m] + citr_L[c] <=> orn[c] + citr_L[m] Duplicate: r2412 orn[c] + citr_L[m] -> orn[m] + citr_L[c] Keep: P5CRxm nadh[m] + 1pyr5c[m] -> nad[m] + pro_L[m] Duplicate: PRO1xm nad[m] + pro_L[m] -> nadh[m] + 1pyr5c[m] Keep: PItx pi[c] <=> pi[x] Duplicate: HMR_5344 pi[c] <=> pi[x] Keep: PRODt2r pro_D[e] <=> pro_D[c] Duplicate: PRO_Dtde pro_D[c] <=> pro_D[e] Keep: RIBt rib_D[e] <=> rib_D[c] Duplicate: RIBt2 rib_D[e] -> rib_D[c] Keep: SRTNtu srtn[e] <=> srtn[c] Duplicate: SRTNENT4tc srtn[e] <=> srtn[c] Keep: SUCCtp succ[c] <=> succ[x] Duplicate: SUCCTD succ[x] <=> succ[c] Keep: TAGt tag_hs[e] <=> tag_hs[c] Duplicate: TAGHSTDe tag_hs[c] -> tag_hs[e]
Warning: THYMDt1 has more than one replicate
Keep: THYMDt1 thymd[e] -> thymd[c] Duplicate: THMDt2r thymd[e] <=> thymd[c] Keep: TRDRm nadph[m] + trdox[m] -> nadp[m] + trdrd[m] Duplicate: r1433 nadp[m] + trdrd[m] -> nadph[m] + trdox[m] Keep: URIt uri[e] <=> uri[c] Duplicate: URIt2r uri[e] <=> uri[c] Keep: VITD3t vitd3[c] -> vitd3[e] Duplicate: VITD3t2 vitd3[e] -> vitd3[c]
Warning: VITD3tm has more than one replicate
Keep: VITD3tm vitd3[m] -> vitd3[c] Duplicate: HMR_2116 vitd3[c] <=> vitd3[m] Keep: XOLEST2te xolest2_hs[e] <=> xolest2_hs[c] Duplicate: XOLEST2HSTDle xolest2_hs[c] -> xolest2_hs[e] Keep: r0276 nh4[c] + nadp[c] + imp[c] <=> nadph[c] + gmp[c] Duplicate: GMPR nadph[c] + gmp[c] -> nh4[c] + nadp[c] + imp[c] Keep: r0488 2 nadp[c] + coa[c] + mev_R[c] <=> 2 nadph[c] + hmgcoa[c] Duplicate: HMGCOARc 2 nadph[c] + hmgcoa[c] -> 2 nadp[c] + coa[c] + mev_R[c] Keep: r0537 ethamp[c] + hxdcal[c] -> sph1p[c] Duplicate: SGPL11c sph1p[c] -> ethamp[c] + hxdcal[c] Keep: r0561 coa[m] + 2mpdhl[m] -> ibcoa[m] + dhlam[m] Duplicate: RE3326M ibcoa[m] + dhlam[m] <=> coa[m] + 2mpdhl[m] Keep: r0808 HC00004[c] -> HC00004[e] Duplicate: HC00004t1e HC00004[e] -> HC00004[c] Keep: r0817 citr_L[c] <=> citr_L[e] Duplicate: CITRtr citr_L[e] <=> citr_L[c] Keep: r0839 orot[e] <=> orot[c] Duplicate: OROte orot[e] -> orot[c] Keep: r0899 ala_B[c] <=> ala_B[e] Duplicate: BALAPAT1tc ala_B[e] -> ala_B[c] Keep: r0913 icit[m] + mal_L[c] <=> mal_L[m] + icit[c] Duplicate: r2387 mal_L[m] + icit[c] -> icit[m] + mal_L[c] Keep: r0915 cit[c] + succ[m] <=> cit[m] + succ[c] Duplicate: r2382 cit[c] + succ[m] -> cit[m] + succ[c] Keep: r0944 spmd[c] <=> spmd[e] Duplicate: SPMTDe spmd[e] <=> spmd[c] Keep: r1050 chsterol[e] <=> chsterol[c] Duplicate: CHOLESTTDe chsterol[c] -> chsterol[e] Keep: r1067 his_L[l] -> his_L[c] Duplicate: HIShPTtc his_L[l] -> his_L[c] Keep: r1078 tyr_L[c] -> tyr_L[m] Duplicate: HMR_5099 tyr_L[c] <=> tyr_L[m] Keep: r1127 HC00005[c] -> HC00005[r] Duplicate: HC00005t1r HC00005[r] -> HC00005[c] Keep: r1128 HC00009[c] -> HC00009[r] Duplicate: HC00009t1r HC00009[r] -> HC00009[c] Keep: r1129 HC00004[c] -> HC00004[r] Duplicate: HC00004t1r HC00004[r] -> HC00004[c] Keep: r1131 HC00006[c] -> HC00006[r] Duplicate: HC00006t1r HC00006[r] -> HC00006[c] Keep: r1132 HC00007[c] -> HC00007[r] Duplicate: HC00007t1r HC00007[r] -> HC00007[c] Keep: r1133 HC00008[c] -> HC00008[r] Duplicate: HC00008t1r HC00008[r] -> HC00008[c] Keep: r1147 akg[c] + icit[m] <=> akg[m] + icit[c] Duplicate: r2385 akg[m] + icit[c] -> akg[c] + icit[m] Keep: r1155 2obut[c] -> 2obut[m] Duplicate: r1454 2obut[m] -> 2obut[c] Keep: r1423 pi[c] -> pi[e] Duplicate: PIt6b pi[e] <=> pi[c] Keep: r1427 his_L[c] -> his_L[m] Duplicate: r2416 his_L[m] -> his_L[c] Keep: r1429 glyc3p[c] <=> glyc3p[x] Duplicate: GLY3Pt glyc3p[x] -> glyc3p[c] Keep: r1441 trdrd[c] -> trdrd[m] Duplicate: HMR_6618 trdrd[c] <=> trdrd[m] Keep: r1455 phe_L[c] -> phe_L[m] Duplicate: r1456 phe_L[m] -> phe_L[c] Keep: r1618 tyr_L[c] + phe_L[e] <=> phe_L[c] + tyr_L[e] Duplicate: TYRPHELAT2tc phe_L[c] + tyr_L[e] -> tyr_L[c] + phe_L[e] Keep: r1619 cys_L[c] + phe_L[e] <=> cys_L[e] + phe_L[c] Duplicate: CYSPHELAT2tc cys_L[e] + phe_L[c] -> cys_L[c] + phe_L[e] Keep: r1620 leu_L[c] + phe_L[e] <=> leu_L[e] + phe_L[c] Duplicate: LEUPHELAT2tc leu_L[e] + phe_L[c] <=> leu_L[c] + phe_L[e] Keep: r1622 asn_L[c] + phe_L[e] <=> asn_L[e] + phe_L[c] Duplicate: ASNPHELAT2tc asn_L[e] + phe_L[c] -> asn_L[c] + phe_L[e] Keep: r1623 phe_L[e] + val_L[c] <=> phe_L[c] + val_L[e] Duplicate: VALPHELAT2tc phe_L[c] + val_L[e] -> phe_L[e] + val_L[c] Keep: r1624 thr_L[c] + phe_L[e] <=> thr_L[e] + phe_L[c] Duplicate: THRPHELAT2tc thr_L[e] + phe_L[c] -> thr_L[c] + phe_L[e] Keep: r1626 ile_L[c] + phe_L[e] <=> ile_L[e] + phe_L[c] Duplicate: ILEPHELAT2tc ile_L[e] + phe_L[c] -> ile_L[c] + phe_L[e] Keep: r1644 leu_L[e] + val_L[c] <=> leu_L[c] + val_L[e] Duplicate: VALLAT1tc leu_L[c] + val_L[e] -> leu_L[e] + val_L[c] Keep: r1647 ile_L[c] + leu_L[e] <=> ile_L[e] + leu_L[c] Duplicate: ILELAT1tc ile_L[e] + leu_L[c] -> ile_L[c] + leu_L[e] Keep: r1668 arg_L[e] + his_L[c] <=> arg_L[c] + his_L[e] Duplicate: HISyLATthc arg_L[c] + his_L[e] -> arg_L[e] + his_L[c] Keep: r2009 ala_L[c] + arg_L[e] -> ala_L[e] + arg_L[c] Duplicate: ALAyLATthc ala_L[e] + arg_L[c] -> ala_L[c] + arg_L[e] Keep: r2010 gln_L[c] + arg_L[e] -> gln_L[e] + arg_L[c] Duplicate: GLNyLATthc gln_L[e] + arg_L[c] -> gln_L[c] + arg_L[e] Keep: r2012 arg_L[e] + met_L[c] -> arg_L[c] + met_L[e] Duplicate: METyLATthc arg_L[c] + met_L[e] -> arg_L[e] + met_L[c] Keep: r2014 arg_L[e] + phe_L[c] -> arg_L[c] + phe_L[e] Duplicate: PHEyLATthc arg_L[c] + phe_L[e] -> arg_L[e] + phe_L[c] Keep: r2017 arg_L[e] + leu_L[c] -> arg_L[c] + leu_L[e] Duplicate: LEUyLAThtc arg_L[c] + leu_L[e] -> arg_L[e] + leu_L[c] Keep: r2073 zn2[e] -> zn2[c] Duplicate: r2465 zn2[c] -> zn2[e] Keep: r2346 wharachd[e] <=> wharachd[c] Duplicate: WHARACHDtd wharachd[c] <=> wharachd[e] Keep: r2355 HC02203[e] <=> HC02203[c] Duplicate: C05953td HC02203[c] <=> HC02203[e] Keep: r2364 HC02213[e] <=> HC02213[c] Duplicate: C06439td HC02213[c] <=> HC02213[e] Keep: r2373 akg[c] + cit[m] <=> akg[m] + cit[c] Duplicate: r2381 akg[m] + cit[c] -> akg[c] + cit[m] Keep: r2374 cit[m] + oxa[c] <=> cit[c] + oxa[m] Duplicate: r2384 cit[c] + oxa[m] -> cit[m] + oxa[c] Keep: r2375 icit[m] + succ[c] <=> icit[c] + succ[m] Duplicate: r2386 icit[c] + succ[m] -> icit[m] + succ[c] Keep: r2376 icit[m] + oxa[c] <=> icit[c] + oxa[m] Duplicate: r2388 icit[c] + oxa[m] -> icit[m] + oxa[c] Keep: r2377 akg[c] + HC00342[m] <=> akg[m] + HC00342[c] Duplicate: r2389 akg[m] + HC00342[c] -> akg[c] + HC00342[m] Keep: r2378 succ[c] + HC00342[m] <=> succ[m] + HC00342[c] Duplicate: r2390 succ[m] + HC00342[c] -> succ[c] + HC00342[m] Keep: r2379 mal_L[c] + HC00342[m] <=> mal_L[m] + HC00342[c] Duplicate: r2391 mal_L[m] + HC00342[c] -> mal_L[c] + HC00342[m] Keep: r2380 oxa[c] + HC00342[m] <=> HC00342[c] + oxa[m] Duplicate: r2392 HC00342[c] + oxa[m] -> oxa[c] + HC00342[m] Keep: r2395 lys_L[m] + arg_L[c] -> lys_L[c] + arg_L[m] Duplicate: r2399 lys_L[c] + arg_L[m] -> lys_L[m] + arg_L[c] Keep: r2396 orn[c] + lys_L[m] -> lys_L[c] + orn[m] Duplicate: r2403 lys_L[c] + orn[m] -> orn[c] + lys_L[m] Keep: r2397 lys_L[m] + his_L[c] -> lys_L[c] + his_L[m] Duplicate: r2406 lys_L[c] + his_L[m] -> lys_L[m] + his_L[c] Keep: r2398 lys_L[m] + citr_L[c] -> lys_L[c] + citr_L[m] Duplicate: r2410 lys_L[c] + citr_L[m] -> lys_L[m] + citr_L[c] Keep: r2400 orn[c] + arg_L[m] -> arg_L[c] + orn[m] Duplicate: r2404 arg_L[c] + orn[m] -> orn[c] + arg_L[m] Keep: r2401 arg_L[m] + his_L[c] -> arg_L[c] + his_L[m] Duplicate: r2407 arg_L[c] + his_L[m] -> arg_L[m] + his_L[c] Keep: r2402 arg_L[m] + citr_L[c] -> arg_L[c] + citr_L[m] Duplicate: r2411 arg_L[c] + citr_L[m] -> arg_L[m] + citr_L[c] Keep: r2405 orn[m] + his_L[c] -> orn[c] + his_L[m] Duplicate: r2408 orn[c] + his_L[m] -> orn[m] + his_L[c] Keep: r2409 citr_L[c] + his_L[m] -> citr_L[m] + his_L[c] Duplicate: r2413 citr_L[m] + his_L[c] -> citr_L[c] + his_L[m] Keep: r2471 ser_L[e] -> ser_L[c] Duplicate: r2526 ser_L[e] <=> ser_L[c] Keep: r2516 lac_L[x] <=> lac_L[c] Duplicate: LACLt lac_L[x] -> lac_L[c] Keep: RE3628M dc2coa[m] <=> dece3coa[m] Duplicate: FAOXC101m dece3coa[m] -> dc2coa[m] Keep: BCRNe 3bcrn[c] -> 3bcrn[e] Duplicate: 3BCRNtr 3bcrn[e] <=> 3bcrn[c] Keep: C101CRNe c101crn[c] -> c101crn[e] Duplicate: C101CRNtr c101crn[e] <=> c101crn[c] Keep: C10CRNe c10crn[c] -> c10crn[e] Duplicate: C10CRNtr c10crn[e] <=> c10crn[c] Keep: C10DCe c10dc[c] -> c10dc[e] Duplicate: C10DCtr c10dc[e] <=> c10dc[c] Keep: C12DCe c12dc[c] -> c12dc[e] Duplicate: C12DCtr c12dc[e] <=> c12dc[c] Keep: C141OHe 3tetd7ecoacrn[c] -> 3tetd7ecoacrn[e] Duplicate: 3TETD7ECOACRNtr 3tetd7ecoacrn[e] <=> 3tetd7ecoacrn[c] Keep: C142OHe 3ttetddcoacrn[c] -> 3ttetddcoacrn[e] Duplicate: 3TTETDDCOACRNtr 3ttetddcoacrn[e] <=> 3ttetddcoacrn[c] Keep: C162OHe 3thexddcoacrn[c] -> 3thexddcoacrn[e] Duplicate: 3THEXDDCOACRNtr 3thexddcoacrn[e] <=> 3thexddcoacrn[c] Keep: C16DCe c16dc[c] -> c16dc[e] Duplicate: C16DCtr c16dc[e] <=> c16dc[c] Keep: C3DCe c3dc[c] -> c3dc[e] Duplicate: C3DCtr c3dc[e] <=> c3dc[c] Keep: C4CRNe c4crn[c] -> c4crn[e] Duplicate: C4CRNtr c4crn[e] <=> c4crn[c] Keep: C4DCe c4dc[c] -> c4dc[e] Duplicate: C4DCtr c4dc[e] <=> c4dc[c] Keep: C5DCe c5dc[c] -> c5dc[e] Duplicate: C5DCtr c5dc[e] <=> c5dc[c] Keep: C6CRNe c6crn[c] -> c6crn[e] Duplicate: C6CRNtr c6crn[e] <=> c6crn[c] Keep: C6DCe c6dc[c] -> c6dc[e] Duplicate: C6DCtr c6dc[e] <=> c6dc[c] Keep: C81CRNe c81crn[c] -> c81crn[e] Duplicate: C81CRNtr c81crn[e] <=> c81crn[c] Keep: C8CRNe c8crn[c] -> c8crn[e] Duplicate: C8CRNtr c8crn[e] <=> c8crn[c] Keep: C8DCe c8dc[c] -> c8dc[e] Duplicate: C8DCtr c8dc[e] <=> c8dc[c] Keep: DDCRNe 3ddcrn[c] -> 3ddcrn[e] Duplicate: 3DDCRNtr 3ddcrn[e] <=> 3ddcrn[c] Keep: DDECCRNe ddeccrn[c] -> ddeccrn[e] Duplicate: DDECCRNtr ddeccrn[e] <=> ddeccrn[c] Keep: DDECE1CRNe ddece1crn[c] -> ddece1crn[e] Duplicate: DDECE1CRNtr ddece1crn[e] <=> ddece1crn[c] Keep: DECCRNe 3deccrn[c] -> 3deccrn[e] Duplicate: 3DECCRNtr 3deccrn[e] <=> 3deccrn[c] Keep: DECDICRNe decdicrn[c] -> decdicrn[e] Duplicate: DECDICRNtr decdicrn[e] <=> decdicrn[c] Keep: HEDCECRNe 3hdececrn[c] -> 3hdececrn[e] Duplicate: 3HDECECRNtr 3hdececrn[e] <=> 3hdececrn[c] Keep: HEXDCRNe 3hexdcrn[c] -> 3hexdcrn[e] Duplicate: 3HEXDCRNtr 3hexdcrn[e] <=> 3hexdcrn[c] Keep: HIVCRNe 3ivcrn[c] -> 3ivcrn[e] Duplicate: 3IVCRNtr 3ivcrn[e] <=> 3ivcrn[c] Keep: HOCTDEC2CRNe 3octdec2crn[c] -> 3octdec2crn[e] Duplicate: 3OCTDEC2CRNtr 3octdec2crn[e] <=> 3octdec2crn[c] Keep: HOCTDECCRNe 3octdeccrn[c] -> 3octdeccrn[e] Duplicate: 3OCTDECCRNtr 3octdeccrn[e] <=> 3octdeccrn[c] Keep: HTDCRNe 3tdcrn[c] -> 3tdcrn[e] Duplicate: 3TDCRNtr 3tdcrn[e] <=> 3tdcrn[c] Keep: IVCRNe ivcrn[c] -> ivcrn[e] Duplicate: IVCRNtr ivcrn[e] <=> ivcrn[c] Keep: OCTDECE1CRNe 3octdece1crn[c] -> 3octdece1crn[e] Duplicate: 3OCTDECE1CRNtr 3octdece1crn[e] <=> 3octdece1crn[c] Keep: TDCRNe ttdcrn[c] -> ttdcrn[e] Duplicate: TTDCRNtr ttdcrn[e] <=> ttdcrn[c] Keep: TETDEC2CRNe tetdec2crn[c] -> tetdec2crn[e] Duplicate: TETDEC2CRntr tetdec2crn[e] <=> tetdec2crn[c] Keep: TETDECE1CRNe tetdece1crn[c] -> tetdece1crn[e] Duplicate: TETDECE1CRNtr tetdece1crn[e] <=> tetdece1crn[c] Keep: TIGCRNe c51crn[c] -> c51crn[e] Duplicate: C51CRNtr c51crn[e] <=> c51crn[c] Keep: CARPEPT1tc carn[e] -> carn[c] Duplicate: CARNtr carn[e] <=> carn[c] Keep: CBLTDe adocbl[c] -> adocbl[e] Duplicate: CBLtle adocbl[e] -> adocbl[c] Keep: FOLTle fol[e] -> fol[c] Duplicate: r0963 fol[e] -> fol[c] Keep: GLYPROPEPT1tc glypro[e] -> glypro[c] Duplicate: GLYPROt glypro[c] <=> glypro[e] Keep: LEULEUPEPT1tc leuleu[e] -> leuleu[c] Duplicate: LEULEUt leuleu[c] <=> leuleu[e] Keep: PNTORDe pnto_R[c] -> pnto_R[e] Duplicate: PNTOte pnto_R[e] <=> pnto_R[c] Keep: PROGLYPEPT1tc progly[e] -> progly[c] Duplicate: PROGLyt progly[c] <=> progly[e] Keep: SBTle sbt_D[e] -> sbt_D[c] Duplicate: SBT_Dtde sbt_D[c] <=> sbt_D[e] Keep: TAUPAT1c taur[e] -> taur[c] Duplicate: TAURCHAe taur[c] -> taur[e] Keep: GLYCTDle glyc[e] <=> glyc[c] Duplicate: GLYCt glyc[c] <=> glyc[e] Keep: KHte k[e] <=> k[c] Duplicate: r1492 k[c] -> k[e] Keep: PHEMEe pheme[c] -> pheme[e] Duplicate: PHEMEt pheme[e] -> pheme[c] Keep: SPRMTDe sprm[e] <=> sprm[c] Duplicate: SPRMt2r sprm[e] <=> sprm[c] Keep: BALABETAtc2 cala[e] <=> cala[c] Duplicate: CALAtr cala[e] <=> cala[c] Keep: CRTNtr crtn[e] <=> crtn[c] Duplicate: HMR_9619 crtn[e] -> crtn[c] Keep: ALAPAT4te ala_L[e] <=> ala_L[c] Duplicate: ALAt2r ala_L[e] <=> ala_L[c] Keep: PROPAT4te pro_L[e] <=> pro_L[c] Duplicate: PROt2r pro_L[e] <=> pro_L[c] Keep: 5AOPt 5aop[c] <=> 5aop[e] Duplicate: 5AOPt2 5aop[e] -> 5aop[c] Keep: ABT_Dt abt_D[e] <=> abt_D[c] Duplicate: ABT_Dt2 abt_D[e] <=> abt_D[c] Keep: ELAIDCRNtd elaidcrn[c] <=> elaidcrn[e] Duplicate: ELAIDCRNtr elaidcrn[e] <=> elaidcrn[c] Keep: HC02149td pcrn[c] <=> pcrn[e] Duplicate: PCRNtr pcrn[e] <=> pcrn[c] Keep: LNLCCRNtd lnlccrn[c] <=> lnlccrn[e] Duplicate: LNLCCRNtr lnlccrn[e] <=> lnlccrn[c] Keep: PCSsec pcs[c] -> pcs[e] Duplicate: PCSup pcs[e] -> pcs[c] Keep: 3HCINNMup 3hcinnm[e] -> 3hcinnm[c] Duplicate: 3HCINNMsec 3hcinnm[c] -> 3hcinnm[e] Keep: 3HPPAup 3hppa[e] -> 3hppa[c] Duplicate: 3HPPAsec 3hppa[c] -> 3hppa[e] Keep: PACALDtm pacald[c] <=> pacald[m] Duplicate: HMR_4684 pacald[c] <=> pacald[m] Keep: ACNAMt2 acnam[e] -> acnam[c] Duplicate: ACNAMtr acnam[c] -> acnam[e] Keep: ETHAt etha[e] <=> etha[c] Duplicate: ETHAtr etha[c] -> etha[e] Keep: THMtrbc thm[e] <=> thm[c] Duplicate: THMt3 thm[e] <=> thm[c] Keep: BUTt2r but[e] <=> but[c] Duplicate: HMR_0155 but[e] <=> but[c] Keep: DIGALSGALSIDESECt digalsgalside_hs[c] -> digalsgalside_hs[e] Duplicate: DIGALSGALSIDEt1e digalsgalside_hs[e] -> digalsgalside_hs[c] Keep: PAIL_hs_SECt pail_hs[c] -> pail_hs[e] Duplicate: PAIL_hs_t1e pail_hs[e] -> pail_hs[c] Keep: PAILPALM_HSSECt pailpalm_hs[c] -> pailpalm_hs[e] Duplicate: PAILPALM_HSt1e pailpalm_hs[e] -> pailpalm_hs[c] Keep: PAILR_HSSECt pailar_hs[c] -> pailar_hs[e] Duplicate: PAILR_HSt1e pailar_hs[e] -> pailar_hs[c] Keep: PAILSTE_HSSECt pailste_hs[c] -> pailste_hs[e] Duplicate: PAILSTE_HSt1e pailste_hs[e] -> pailste_hs[c] Keep: SPHMYLN180241_hs_SECt sphmyln180241_hs[c] -> sphmyln180241_hs[e] Duplicate: SPHMYLN180241_hs_t1 sphmyln180241_hs[e] -> sphmyln180241_hs[c] Keep: SPHMYLN18114_hs_SECt sphmyln18114_hs[c] -> sphmyln18114_hs[e] Duplicate: SPHMYLN18114_hs_t1 sphmyln18114_hs[e] -> sphmyln18114_hs[c] Keep: SPHMYLN18115_hs_SECt sphmyln18115_hs[c] -> sphmyln18115_hs[e] Duplicate: SPHMYLN18115_hs_t1 sphmyln18115_hs[e] -> sphmyln18115_hs[c] Keep: SPHMYLN18116_hs_SECt sphmyln18116_hs[c] -> sphmyln18116_hs[e] Duplicate: SPHMYLN18116_hs_t1 sphmyln18116_hs[e] -> sphmyln18116_hs[c] Keep: SPHMYLN181161_hs_SECt sphmyln181161_hs[c] -> sphmyln181161_hs[e] Duplicate: SPHMYLN181161_hs_t1 sphmyln181161_hs[e] -> sphmyln181161_hs[c] Keep: SPHMYLN18117_hs_SECt sphmyln18117_hs[c] -> sphmyln18117_hs[e] Duplicate: SPHMYLN18117_hs_t1 sphmyln18117_hs[e] -> sphmyln18117_hs[c] Keep: SPHMYLN18118_hs_SECt sphmyln18118_hs[c] -> sphmyln18118_hs[e] Duplicate: SPHMYLN18118_hs_t1 sphmyln18118_hs[e] -> sphmyln18118_hs[c] Keep: SPHMYLN181181_hs_SECt sphmyln181181_hs[c] -> sphmyln181181_hs[e] Duplicate: SPHMYLN181181_hs_t1 sphmyln181181_hs[e] -> sphmyln181181_hs[c] Keep: SPHMYLN18120_hs_SECt sphmyln18120_hs[c] -> sphmyln18120_hs[e] Duplicate: SPHMYLN18120_hs_t1 sphmyln18120_hs[e] -> sphmyln18120_hs[c] Keep: SPHMYLN181201_hs_SECt sphmyln181201_hs[c] -> sphmyln181201_hs[e] Duplicate: SPHMYLN181201_hs_t1 sphmyln181201_hs[e] -> sphmyln181201_hs[c] Keep: SPHMYLN18121_hs_SECt sphmyln18121_hs[c] -> sphmyln18121_hs[e] Duplicate: SPHMYLN18121_hs_t1 sphmyln18121_hs[e] -> sphmyln18121_hs[c] Keep: SPHMYLN18122_hs_SECt sphmyln18122_hs[c] -> sphmyln18122_hs[e] Duplicate: SPHMYLN18122_hs_t1 sphmyln18122_hs[e] -> sphmyln18122_hs[c] Keep: SPHMYLN181221_hs_SECt sphmyln181221_hs[c] -> sphmyln181221_hs[e] Duplicate: SPHMYLN181221_hs_t1 sphmyln181221_hs[e] -> sphmyln181221_hs[c] Keep: SPHMYLN18123_hs_SECt sphmyln18123_hs[c] -> sphmyln18123_hs[e] Duplicate: SPHMYLN18123_hs_t1 sphmyln18123_hs[e] -> sphmyln18123_hs[c] Keep: SPHMYLN1824_hs_SECt sphmyln1824_hs[c] -> sphmyln1824_hs[e] Duplicate: SPHMYLN1824_hs_t1 sphmyln1824_hs[e] -> sphmyln1824_hs[c] Keep: SPHMYLN1825_hs_SECt sphmyln1825_hs[c] -> sphmyln1825_hs[e] Duplicate: SPHMYLN1825_hs_t1 sphmyln1825_hs[e] -> sphmyln1825_hs[c] Keep: 3AIBt1 3aib[e] <=> 3aib[c] Duplicate: HMR_8090 3aib[c] -> 3aib[e] Keep: 2HXIC_Lt1e 2hxic_L[e] -> 2hxic_L[c] Duplicate: 2HXIC_Lt2e 2hxic_L[c] -> 2hxic_L[e] Keep: MMAt2e mma[c] <=> mma[e] Duplicate: MMAte mma[e] <=> mma[c] Keep: CE4890te2 CE4890[c] <=> CE4890[e] Duplicate: CE4890te CE4890[c] <=> CE4890[e] Keep: MLTHFte mlthf[e] -> mlthf[c] Duplicate: MLTHFte3 mlthf[e] -> mlthf[c] Keep: TYMte2 tym[c] <=> tym[e] Duplicate: TYMte tym[c] <=> tym[e] Keep: 1A25DHVITD3te 1a25dhvitd3[e] -> 1a25dhvitd3[c] Duplicate: 1A25DHVITD3t2e 1a25dhvitd3[c] -> 1a25dhvitd3[e] Keep: ORN_Dtx orn_D[x] <=> orn_D[c] Duplicate: HMR_9179 orn_D[c] <=> orn_D[x] Keep: ORN_Dte orn_D[c] <=> orn_D[e] Duplicate: HMR_9180 orn_D[c] <=> orn_D[e] Keep: HC00005te HC00005[c] -> HC00005[e] Duplicate: HC00005t1e HC00005[e] -> HC00005[c] Keep: HC00006te HC00006[c] -> HC00006[e] Duplicate: HC00006t1e HC00006[e] -> HC00006[c] Keep: HC00007te HC00007[c] -> HC00007[e] Duplicate: HC00007t1e HC00007[e] -> HC00007[c] Keep: HC00008te HC00008[c] -> HC00008[e] Duplicate: HC00008t1e HC00008[e] -> HC00008[c] Keep: HC00009te HC00009[c] -> HC00009[e] Duplicate: HC00009t1e HC00009[e] -> HC00009[c] Keep: NO2te no2[e] <=> no2[c] Duplicate: HMR_6991 no2[c] <=> no2[e] Keep: HMR_0025 M01268[n] -> M01268[c] Duplicate: HMR_0030 M01268[c] -> M01268[n] Keep: HMR_9581 M02035[c] <=> M02035[e] Duplicate: HMR_9582 M02035[e] -> M02035[c] Keep: HMR_9583 M02467[c] <=> M02467[e] Duplicate: HMR_9584 M02467[e] -> M02467[c] Keep: HMR_0031 0.0024 ak2gchol_hs[c] + 0.0008 dak2gpe_hs[c] + 0.0016 pail_hs[c] + 0.19 dag_hs[c] + 0.0092 pchol_hs[c] + 0.0034 pe_hs[c] + 0.005 chsterol[c] + 0.0006 lpchol_hs[c] + 0.0002 ps_hs[c] + 0.0004 sphmyln_hs[c] + 0.34 xolest2_hs[c] + 0.005 HC02065[c] + 0.44 M02958[c] + 0.0014 M00511[c] -> M02392[c] Duplicate: HMR_0032 M02392[c] -> 0.0024 ak2gchol_hs[c] + 0.0008 dak2gpe_hs[c] + 0.0016 pail_hs[c] + 0.19 dag_hs[c] + 0.0092 pchol_hs[c] + 0.0034 pe_hs[c] + 0.005 chsterol[c] + 0.0006 lpchol_hs[c] + 0.0002 ps_hs[c] + 0.0004 sphmyln_hs[c] + 0.34 xolest2_hs[c] + 0.005 HC02065[c] + 0.44 M02958[c] + 0.0014 M00511[c] Keep: ALLOP2tu allop[e] -> allop[c] Duplicate: ALLOPtepvb allop[e] <=> allop[c] Keep: ATVACIDMCTtu atvacid[e] <=> atvacid[c] Duplicate: ATVACIDtdu atvacid[e] <=> atvacid[c] Keep: OXYPthc oxyp[e] <=> oxyp[c] Duplicate: OXYPtepv oxyp[c] <=> oxyp[e] Keep: PVSHtu pvs[e] <=> pvs[c] Duplicate: PVStep pvs[c] <=> pvs[e]
Remove any duplicate reactions from the stoichiometric matrix, but do not remove the protons.
if length(removedRxnInd)>0
irrevFlag=0;
metFlag=0;%dont remove the protons
model = removeRxns(model,model.rxns(removedRxnInd),irrevFlag,metFlag);
end
Display statistics of the removed reactions
if printLevel>0
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet0,nRxn0,' totals.')
fprintf('%6u\t%6u\t%s\n',nMet0-nMet,nRxn0-nRxn,' duplicate reactions upto protons removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
end
#mets #rxns
8399 13543 totals.
0 253 duplicate reactions upto protons removed.
8399 13290 remaining.
%model size
[nMet,nRxn]=size(model.S);

Heuristically identify exchange reactions and metabolites exclusively involved in exchange reactions

An external reaction is one that is heuristically identified by a single stoichiometric coefficient in the corresponding column of S, or an (abbreviated) reaction name matching a pattern (e.g. prefix EX_) or an external subsystem assignment. Any remaining reaction is assumed to be an internal reaction. If a reaction is not external then it is denoted an internal reaction. External reactants are exclusively involved in exchange reactions, and internal reactants otherwise. The findSExRxnInd function finds the external reactions in the model which export or import mass from or to the model, e.g. Exchange reactions, Demand reactions, Sink reactions.
if ~isfield(model,'SIntMetBool') || ~isfield(model,'SIntRxnBool')
model = findSExRxnInd(model,[],printLevel-1);
end
Assuming biomass reaction is: biomass_reaction

EXPECTED RESULTS

In the returned model, model.SIntRxnBool, is a boolean of reactions heuristically though to be mass balanced, while model.SIntMetBool is a boolean of metabolites heuristically though to be involved in mass balanced reactions.

CAUTION

The aforementioned assignments of external and internal reactions and reactants is the result of a heuristic and might result in one or more errors, either due to misspecification or because the names of external reactions and external subsystems often vary between laboratories.

Find the reactions that are flux inconsistent

Ultimately we seek to identify the set of stoichiometrically consistent reactions that are also flux consistent, with no bounds on reaction rates. However, finiding the stoichiometrically consistent subset can be demanding for large models so first we identify the subset of reactions that are flux consistent and focus on them.
modelOrig=model;
model.lb(~model.SIntRxnBool)=-1000;
model.ub(~model.SIntRxnBool)= 1000;
if 1
if ~isfield(model,'fluxConsistentMetBool') || ~isfield(model,'fluxConsistentRxnBool')
param.modeFlag=0;
param.method='null_fastcc';
%param.method='fastcc';
[fluxConsistentMetBool,fluxConsistentRxnBool,...
fluxInConsistentMetBool,fluxInConsistentRxnBool,model]...
= findFluxConsistentSubset(model,param,printLevel);
end
% Remove reactions that are flux inconsistent
if any(fluxInConsistentRxnBool)
irrevFlag=0;
metFlag=1;
model = removeRxns(model,model.rxns(fluxInConsistentRxnBool),irrevFlag,metFlag);
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
if printLevel>0
fprintf('%s\n','-------')
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet0,nRxn0,' totals.')
fprintf('%6u\t%6u\t%s\n',nMet0-nMet,nRxn0-nRxn,' flux inconsistent reactions removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
fprintf('%s\n','-------')
if printLevel>1
for n=1:nRxn0
if fluxInConsistentRxnBool(n)
fprintf('%15s\t%-100s\n',modelOrig.rxns{n},modelOrig.rxnNames{n})
end
end
end
end
%revise model size
[nMet,nRxn]=size(model.S);
%Recompute
%Heuristically identify exchange reactions and metabolites exclusively involved in exchange reactions
%finds the reactions in the model which export/import from the model
%boundary i.e. mass unbalanced reactions
%e.g. Exchange reactions
% Demand reactions
% Sink reactions
model = findSExRxnInd(model,[],0);
if printLevel>0
fprintf('%s\n','------end------')
end
end
end
--- findFluxConsistentSubset START ---- 12164 Total reactions 5974 Reversible reactions. 6190 Irreversible reactions. 6777 flux consistent metabolites 1622 flux inconsistent metabolites 11802 flux consistent reactions 1488 flux inconsistent reactions --- findFluxConsistentSubset END ----
-------
#mets #rxns
8399 13290 totals.
1622 1488 flux inconsistent reactions removed.
6777 11802 remaining.
-------
3HPCOAHYD 3-Hydroxyisobutyryl-Coenzyme A Hydrolase 3HPPD 3-Hydroxypropionate Dehydrogenase 3NTD7l 3'-Nucleotidase (AMP), Lysosomal 4MPTNLtr 4-Methylpentanal Transport, Endoplasmatic Reticulum 5HOXINDACTOXm 5-Hydroxyindoleacetaldehyde:NAD+ Oxidoreductase, Mitochondrial A_MANASE Alpha-Mannosidase ACSOMT S-Adenosyl-L-Methionine:N-Acetylserotonin O-Methyltransferase ADEtl Adenine Faciliated Transport from Lysosome ADPGLC ADPglucose Diphosphatase ADPRDPm ADPribose Diphosphatase, Mitochondrial ADSELK Adenylyl-Selenate Kinase AGLPR Alkyl Glycerol Phosphate Reductase AGPex Alkyl Glycerol Phosphate Transport AGPRim N-Acetyl-G-Glutamyl-Phosphate Reductase, Irreversible, Mitochondrial AGPSx Alkylglycerone Phosphate Synthase ALKP Alkaline Phosphatase ALOX12R Arachidonate 12-Lipoxygenase R AMACR2r Alpha-Methylacyl Coenzyme A Racemase (Reductase) AMACRr Alpha-Methylacyl Coenzyme A Racemase AMPtr AMP Transporter, Endoplasmic Reticulum AP4AH1 Ap4A Hydrolase, Asymmetrically BAMPPALDOXm Beta-Aminopropion Aldehyde:NAD+ Oxidoreductase, Mitochondrial BDG2HCGHD Beta-D-Glucosyl-2-Coumarinate Glucohydrolase C2M26DCOAHLm Cis-2-Methyl-5-Isopropylhexa-2, 5-Dienoyl Coenzyme A Hydro-Lyase, Mitochondrial C2M26DCOAHLx Cis-2-Methyl-5-Isopropylhexa-2, 5-Dienoyl Coenzyme A Hydro-Lyase, Peroxisomal CBR1 Carbonyl Reductase [NADPH] 1 CCA_D3t Calcitroic Acid Transport from Cytosol CCA_D3tm Calcitroic Acid Transport from Mitochondria CO2tn CO2 Nuclear Transport via Diffusion CPCTDTX Choline-Phosphate Cytidylyltransferase CRTSTRNtr Corticosterone Intracellular Transport CYSLYSL L-Cystine Lysteine-Lyase (Deaminating) CYSTAm Cysteine Transaminase, Mitochondrial DALAt2rL D-Alanine Transport via Proton Symport, Lysosomal DEDOLP1_U Dehydrodolichol Diphosphate Phosphatase (Uterus) DEDOLP2_U Dehydrodolichol Phosphate Phosphatase (Uterus) DEDOLR_U Dehydrodolichol Reductase (Uterus) DHAPAx Dihydroxyacetone Phosphate Acyltransferase DMHPTCRNCPT1 Carnitine Fatty-Acyl Transferase DOGULND1 2, 3-Dioxo-L-Gulonate Decarboxylase (L-Lyxonate-Forming) DOGULND2 2, 3-Dioxo-L-Gulonate Decarboxylase (L-Xylonate-Forming) DOGULNO2 2, 3-Dioxo-L-Gulonate:Hydrogen Peroxide Oxireductase DPROOp D-Proline Oxidase, Perixosomal ECGISOr Ecgonine Isomerase, Endoplasmatic Reticulum EGMESTr Ecgonine Methyl Esterase, Endoplasmatic Reticulum ENGASE Endo-Beta-N-Acetylglucosaminidase ENGASE2 Endo-Beta-N-Acetylglucosaminidase ENMAN1g Endomannosidase (Glc1Man-Producing), Golgi Apparatus ENMAN2g Endomannosidase (Glc2Man-Producing), Golgi Apparatus ENMAN3g Endomannosidase (Glc3Man-Producing), Golgi Apparatus ENMAN4g Endomannosidase (M6Masnc-Producing), Golgi Apparatus ENMAN5g Endomannosidase (M6Masnb2-Producing), Golgi Apparatus ENMAN6g Endomannosidase (M5Masnb1-Producing), Golgi Apparatus EPCTX Ethanolamine-Phosphate Cytidylyltransferase EX_cca_d3[e] Exchange of Calcitroic Acid (D3) EX_pro_D[e] Exchange of D-Proline EX_sel[e] Exchange of Selenate EX_ser_D[e] Exchange of D-Serine EX_vitd2[e] Exchange of Vitamin D2 FA120ACPH Fatty-Acyl-Acp Hydrolase FA140ACPH Fatty-Acyl-Acp Hydrolase FA141ACPH Fatty-Acyl-Acp Hydrolase FA161ACPH Fatty-Acyl-Acp Hydrolase FA180ACPH Fatty-Acyl-Acp Hydrolase FA181ACPH Fatty-Acyl-Acp Hydrolase FA1821ACPH Fatty-Acyl-Acp Hydrolase FA1822ACPH Fatty-Acyl-Acp Hydrolase FA182ACPH Fatty-Acyl-Acp Hydrolase G1M6MASNB1terg Transport of Glucosyl-(Alpha-D-Mannosyl)6-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine (Protein), Endoplasmic Reticulum to Golgi Apparatus G1M7MASNBterg Transport of Glucosyl-(Alpha-D-Mannosyl)7-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine, Isoform C (Protein), Endoplasmic Reticulum to Golgi Apparatus G1M7MASNCterg Transport of Glucosyl-(Alpha-D-Mannosyl)7-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine, Isoform C (Protein), Endoplasmic Reticulum to Golgi Apparatus G1M8MASNterg Transport of (Alpha-D-Glucosyl)-(Alpha-D-Mannosyl)8-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine (Protein), Endoplasmic Reticulum to Golgi Apparatus G2M8MASNterg Transport of (Alpha-D-Glucosyl)2-(Alpha-D-Mannosyl)8-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine (Protein), Endoplasmic Reticulum to Golgi Apparatus G3M8MASNterg Transport of (Alpha-D-Glucosyl)3-(Alpha-D-Mannosyl)8-Beta-D-Mannosyl-Diacetylchitobiosyl-L-Asparagine (Protein), Endoplasmic Reticulum to Golgi Apparatus GGT_U Geranylgeranyltransferase (Uterus) GHMT3m Glycine Hydroxymethyltransferase, Mitochondrial GK1m Guanylate Kinase (GMP:ATP), Mitochondrial GLACOm D-Glucuronolactone:NAD+ Oxidoreductase, Mitochondrial GPAMm_hs Glycerol-3-Phosphate Acyltransferase GSNKm Guanosine Kinase, Mitochondrial GSNtm Guanosine Faciliated Transport in Mitochondria H8MTer_L H8 Mannosyltransferase, Endoplasmic Reticulum H8MTer_U H8 Mannosyltransferase, Endoplasmic Reticulum HEXCCPT2 Carnitine Transferase HEXCCRNt Transport into the Mitochondria (Carnitine) HMGCOARr Hydroxymethylglutaryl Coenzyme A Reductase (Ir) HXANtl Hypoxanthine Faciliated Transport from Lysosome IMACTD_m Imidazole Acetaldeyde Dehydrogenase, Mitochondrial INSKm Insosine Kinase, Mitochondrial INStl Transport of Inosine, Faciliated, Lysosomal INStm Transport of Inosine, Faciliated, Mitochondrial IPDPtr Isopentenyl Diphosphate Transport, Endoplasmatic Reticulum LACZly B-Galactosidase, Lysosomal LCADi_Dm Lactaldehyde Dehydrogenase, Mitochondrial LCTStl Lactose Transport from Cytosol to Lysosome (Via Autophagocytosis) LCYSTATm L-Cysteate:2-Oxoglutarate Aminotransferase, Mitochondrial LGNCCPT2 Transport into the Mitochondria (Carnitine) LGNCCRNt Transport into the Mitochondria (Carnitine) LS3 Lumisterol 3 Formation LYSMTF1n Histone-Lysine N-Methyltransferase, Nuclear LYSMTF2n Histone-Lysine N-Methyltransferase, Nuclear LYSMTF3n Histone-Lysine N-Methyltransferase, Nuclear M4ATAer M4A Transamidase, Endoplasmic Reticulum M4BET2er M4B Phosphoethanolaminyl Transferase, Endoplasmic Reticulum MAN1_6B1er Mannosidase I, Endoplasmic Reticulum (G1M6Masnb1-Producing) MAN1_7Ber Mannosidase I, Endoplasmic Reticulum (G1M7Masnb-Producing) MAN2_6B1er Mannosidase Ii, Endoplasmic Reticulum (G1M6Masnb1-Producing) MAN2_7Cer Mannosidase Ii, Endoplasmic Reticulum (G1M7Masnc-Producing) MCOATAm Malonyl Coenzyme A-Acp Transacylase, Mitochondrial MEOHtr Methanol Transporter, Endoplasmic Reticulum MI1345PKn Inositol-1, 3, 4, 5-Triphosphate 6-Kinase, Nucleus MI1346PKn Inositol-1, 3, 4, 6-Tetrakisphosphate 5-Kinase, Nucleus MI1346Ptn 1D-Myo-Inositol 1, 3, 4, 6-Tetrakisphosphate Nuclear Transport (Diffusion) MI134PK Inositol-1, 3, 4-Trisphosphate 6-Kinase MI1456PKn Inositol-1, 4, 5, 6- Tetrakisphosphate 3-Kinase, Nucleus MI145P6Kn Inositol-1, 4, 5-Triphosphate 6-Kinase, Nucleus MI145PKn Inositol-1, 4, 5-Trisphosphate 3-Kinase, Nucleus MI3456PK Inositol-3, 4, 5, 6-Tetrakisphosphate 1-Kinase MMCD Methylmalonyl Coenzyme A Decarboxylase MMCDp Methylmalonyl Coenzyme A Decarboxylase, Peroxisomal NABTNOm N4-Acetylaminobutanal:NAD+ Oxidoreductase, Mitochondrial NDPK10m Nucleoside-Diphosphate Kinase (ATP:DIDP), Mitochondrial NDPK2m Nucleoside-Diphosphate Kinase (ATP:UDP), Mitochondrial NDPK9m Nucleoside-Diphosphate Kinase (ATP:IDP), Mitochondrial NMPTRCOX N-Methylputrescine:Oxygen Oxidoreductase (Deaminating) NNATm Nicotinate-Nucleotide Adenylyltransferase, Mitochondrial NRVNCCPT2 Carnitine Transferase NRVNCCRNt Transport into the Mitochondria (Carnitine) NTD2m 5'-Nucleotidase (UMP), Mitochondrial NTD3l 5'-Nucleotidase (dCMP), Lysosomal NTD6l 5'-Nucleotidase (dAMP), Lysosomal NTD8l 5'-Nucleotidase (dGMP), Lysosomal NTMELYStner Protein Trimethyl Lysine Transport (Nucleus to Endoplasmatic Reticulum) NTPP11 Nucleoside Triphosphate Pyrophosphorylase (XTP) PE_HStg Phosphatidylethanolamine Scramblase PECGONCOATr Pseudoecgonine Coenzyme A Transferase, Endoplasmatic Reticulum PEPLYStn Peptide (Lysine) Nuclear Transport via Diffusion PI45PLCn Phosphatidylinositol 4, 5-Bisphosphate Phospholipase C, Nucleus PI4P3Ker Phosphatidylinositol 4-Phosphate 3-Kinase, Endoplasmic Reticulum PI5P3Ker Phosphatidylinositol-5-Phosphate 3-Kinase, Endoplasmic Reticulum PIK3er Phosphatidylinositol 3-Kinase, Endoplasmic Reticulum PLYSPSer Protein Lysine Peptidase (Endoplasmic Reticulum) PNTKm Pantothenate Kinase, Mitochondrial PROAKGOX1r L-Proline, 2-Oxoglutarate:Oxygen Oxidoreductase (4-Hydroxylating), Endoplasmatic Reticulum PRODt2r D-Proline Reversible Transport via Proton Symport PRODt2rL D-Proline Reversible Transport via Proton Symport, Lysosomal PRPNCOAHYDx Propenoyl Coenzyme A Hydrolase, Peroxisomal PS_HStg Phosphatidylserine Scramblase PTE5x Peroxisomal Acyl Coenzyme A Thioesterase PYAM5Ptm Pyridoxamine 5'-Phosphate Transport via Diffusion, Mitochondrial PYDX5Ptm Pyridoxal 5'-Phosphate Transport via Diffusion, Mitochondrial PYLALDOX Perillyl Aldehyde:NAD+ Oxidoreductase PYLALDOXm Perillyl Aldehyde:NAD+ Oxidoreductase, Mitochondrial RETNCOA Retinoyl Coenzyme A Formation Rtotaltp Fatty Acid Intracellular Transport SELADT Selenate Adenylyltransferase SELCYSLY Selenocysteine Lyase SELCYSLY2 Selenocysteine Lyase SELNPS Selenophosphate Synthase SELt4_3 Selenate Transport via Sodium Symport SGPL11r Sphingosine-1-Phosphate Lyase 1 SIAASE Sialidase SLDxm L-Sulfolactate Dehydrogenase (NAD+), Mitochondrial SOAT11r Sterol O-Acyltransferase (Acyl-Coenzyme A: Cholesterol Acyltransferase) 1 SOAT12r Sterol O-Acyltransferase (Acyl-Coenzyme A: Cholesterol Acyltransferase) 1 SRTN23OX 5-Hydroxytryptamine:Oxygen 2, 3-Dioxygenase (Indole-Decyclizing) SRTNMTX S-Adenosyl-L-Methionine:Amine N-Methyltransferase (Srtn) T2M26DCOAHLm Trans-2-Methyl-5-Isopropylhexa-2, 5-Dienoyl Coenzyme A Hydro-Lyase, Mitochondrial T2M26DCOAHLx Trans-2-Methyl-5-Isopropylhexa-2, 5-Dienoyl Coenzyme A Hydro-Lyase, Peroxisomal T4HCINNOX 4-Coumarate:Oxygen Oxidoreductase TDPDRR DTDP-4-Dehydrorhamnose Reductase TMLYSter Trimethyl-L-Lysine Transport (Er to Cytosol) TRDRm Thioredoxin Reductase (NADPH) UDPGALt2g UDPgalactose Transport, Golgi Apparatus UDPGLCtg UDP-Glc Golgi Transport via CMP Antiport UGALNACter UDP-Galnac Endoplasmic Reticulum Transport via CMP Antiport UMPKm UMP Kinase (Mitochondrial, ATP) Uritm Uridine Faciliated Transport in Mitochondria VITD2Hm Vitamin D-25-Hydroxylase (D2) VITD2t Vitamin D2 Release VITD2tm Vitamin D2 Transport from Mitochondria XOL7AH2tr Lipid, Flip-Flop Intracellular Transport XOLDIOLONEtm Lipid, Flip-Flop Intracellular Transport r0001 Virtual Reaction/Potential Definition r0120 GTP 7, 8-8, 9-Dihydrolase r0121 GTP 7, 8-8, 9-Dihydrolase r0267 CMP-N-Acetylneuraminate, Ferrocytochrome-B5:Oxygen Oxidoreductase (N-Acetyl-Hydroxylating) r0268 Cytidine Monophospho-N-Acetylneuraminic Acid Hydroxylase r0400 N-Acetylneuraminate, Ferrocytochrome-B5:Oxygen Oxidoreductase (N-Acetyl-Hydroxylating) r0598 L-Fucose Ketol-Isomerase r0625 3Alpha, 7Alpha, 12Alpha-Trihydroxy-5Beta-Cholestan-26-Al:NAD+ 26-Oxidoreductase Bile Acid Biosynthesis r0626 5Beta-Cholestane-3Alpha, 7Alpha, 12Alpha, 26-Tetraol:NAD+ 26-Oxidoreductase Bile Acid Biosynthesis r0668 CTP:N-Acylneuraminate Cytidylyltransferase r0678 Acyl-[Acyl-Carrier-Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0681 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0682 Butyryl-[Acyl-Carrier Protein]:Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0691 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0692 (3R)-3-Hydroxydecanoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0693 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0694 (3R)-3-Hydroxyoctanoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0695 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier-Protein] Hydro-Lyase r0696 (3R)-3-Hydroxypalmitoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0697 (3R)-3-Hydroxypalmitoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0701 (3R)-3-Hydroxytetradecanoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0702 (3R)-3-Hydroxypalmitoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0708 2-Amino-4-Hydroxy-6- (Erythro-1, 2, 3-Trihydroxypropyl) Dihydropteridine Triphosphate 7, 8-8, 9-Dihydrolase r0709 2-Amino-4-Hydroxy-6- (Erythro-1, 2, 3-Trihydroxypropyl) Dihydropteridine Triphosphate 7, 8-8, 9-Dihydrolase r0712 Dodecanoyl-[Acyl-Carrier Protein]: Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0713 Dodecanoyl-[Acyl-Carrier-Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0760 Butyryl-[Acyl-Carrier Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0761 (3R)-3-Hydroxyhexanoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0762 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0763 Hexanoyl-[Acyl-Carrier Protein]:Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0764 Hexanoyl-[Acyl-Carrier Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0765 Octanoyl-[Acyl-Carrier Protein]:Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0766 Octanoyl-[Acyl-Carrier Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0767 Decanoyl-[Acyl-Carrier Protein]:Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0768 Decanoyl-[Acyl-Carrier Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0769 (3R)-3-Hydroxydodecanoyl-[Acyl-Carrier-Protein]:NADP+ Oxidoreductase Fatty Acid Biosynthesis r0770 (3R)-3-Hydroxybutanoyl-[Acyl-Carrier-Protein] Hydro-Lyase Fatty Acid Biosynthesis r0771 Tetradecanoyl-[Acyl-Carrier Protein]:Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0772 Tetradecanoyl-[Acyl-Carrier Protein]:Malonyl-[Acyl-Carrier-Protein] C-Acyltransferase (Decarboxylating) Fatty Acid Biosynthesis r0773 Hexadecanoyl-[Acyl-Carrier Protein:Malonyl Coenzyme A C-Acyltransferase (Decarboxylating, Oxoacyl- And Enoyl-Reducing And Thioester-Hydrolysing) Fatty Acid Biosynthesis r0775 Formamidopyrimidine Nucleoside Triphosphate 7, 8-8, 9-Dihydrolase r0776 Formamidopyrimidine Nucleoside Triphosphate 7, 8-8, 9-Dihydrolase r0777 GTP 7, 8-8, 9-Dihydrolase r0778 GTP 7, 8-8, 9-Dihydrolase r0800 Virtual ReactionPotential Definition r0988 Postulated Transport Reaction r0992 Na (+)Bile Acid Symporter Active Transport r1021 Postulated Transport Reaction r1027 Active Transport r1131 Transport Reaction r1132 Transport Reaction r1133 Transport Reaction r1319 Virtual ReactionPotential Definition r1320 Virtual ReactionPotential Definition r1321 Virtual ReactionPotential Definition r1322 Virtual ReactionPotential Definition r1323 Virtual ReactionPotential Definition r1324 Virtual ReactionPotential Definition r1325 Virtual ReactionPotential Definition r1326 Virtual ReactionPotential Definition r1327 Virtual ReactionPotential Definition r1328 Virtual ReactionPotential Definition r1329 Virtual ReactionPotential Definition r1330 Virtual ReactionPotential Definition r1331 Virtual ReactionPotential Definition r1332 Virtual ReactionPotential Definition r1430 [Acyl-Carrier-Protein] 4-Pantetheine-Phosphohydrolase r1431 2-Deoxyuridine 5-Diphosphate:Oxidized-Thioredoxin 2-Oxidoreductase r1432 2-Deoxyuridine 5-Diphosphate:Oxidized-Thioredoxin 2-Oxidoreductase r1441 Active Transport r1526 ATP-Binding Cassette (ABC) Tcdb:3.A.1.211.1 r2073 Zinc (Zn2+)-Iron (Fe2+) Permease (Zip), Tcdb:2.A.55.2.3 RE0066C Phosphatidylethanolamine N-Methyltransferase RE0066M Phosphatidylethanolamine N-Methyltransferase RE0066R Phosphatidylethanolamine N-Methyltransferase RE0344M Palmitoyl Coenzyme A Hydrolase RE0344X Palmitoyl Coenzyme A Hydrolase RE0452N DTMP Kinase RE0456M Ribonucleoside-Diphosphate Reductase RE0512C 3-Hydroxyacyl Coenzyme A Dehydrogenase RE0572N RE0572N RE0573N RE0573N RE0577M Palmitoyl Coenzyme A Hydrolase RE0577X Palmitoyl Coenzyme A Hydrolase RE0578M Palmitoyl Coenzyme A Hydrolase RE0578X Palmitoyl Coenzyme A Hydrolase RE0579M Palmitoyl Coenzyme A Hydrolase RE0579X Palmitoyl Coenzyme A Hydrolase RE0580L RE0580L RE0580R RE0580R RE0581R RE0581R RE0582N RE0582N RE0583N RE0583N RE0688C RE0688C RE0688X RE0688X RE0689C RE0689C RE0689X RE0689X RE0690C RE0690C RE0690X RE0690X RE0702C Dihydrolipoyl Dehydrogenase RE0702L Dihydrolipoyl Dehydrogenase RE0702M Dihydrolipoyl Dehydrogenase RE0702N Dihydrolipoyl Dehydrogenase RE0827C RE0827C RE0827X RE0827X RE0828C RE0828C RE0828X RE0828X RE0864C RE0864C RE0875C RE0875C RE0908G Steryl-Sulfatase RE0908R Steryl-Sulfatase RE0916G Steryl-Sulfatase RE0916R Steryl-Sulfatase RE0918G Steryl-Sulfatase RE0918R Steryl-Sulfatase RE0919C Glucuronosyltransferase RE0919R Glucuronosyltransferase RE0920C Glucuronosyltransferase RE0920R Glucuronosyltransferase RE0921C Glucuronosyltransferase RE0921R Glucuronosyltransferase RE0922C Glucuronosyltransferase RE0922R Glucuronosyltransferase RE0923C Glucuronosyltransferase RE0923R Glucuronosyltransferase RE0924C Glucuronosyltransferase RE0924R Glucuronosyltransferase RE0925C Glucuronosyltransferase RE0925R Glucuronosyltransferase RE0926C Alpha-Amylase RE0927C Glucuronosyltransferase RE0927R Glucuronosyltransferase RE0928C Glucuronosyltransferase RE0928R Glucuronosyltransferase RE0935C Alpha-Amylase RE0936C RE0936C RE0937C RE0937C RE0938C RE0938C RE0944C Alpha-Amylase RE1050C Peroxidase RE1050L Peroxidase RE1050N Peroxidase RE1062C Neurolysin RE1062M Neurolysin RE1063C Thimet Oligopeptidase RE1064C Thimet Oligopeptidase RE1096M RE1096M RE1096R RE1096R RE1099G Steryl-Sulfatase RE1099L Steryl-Sulfatase RE1099R Steryl-Sulfatase RE1100G Steryl-Sulfatase RE1100L Steryl-Sulfatase RE1134M RE1134M RE1134R RE1134R RE1135G Steryl-Sulfatase RE1135L Steryl-Sulfatase RE1233M Kynurenine-Oxoglutarate Transaminase RE1236C RE1236C RE1238X Diamine N-Acetyltransferase RE1240C RE1240C RE1317C L-Iditol 2-Dehydrogenase RE1441G 1-Phosphatidylinositol-4-Phosphate 5-Kinase RE1473C Gamma-Glutamyltransferase RE1508C RE1508C RE1514M Long-Chain-Fatty-Acid- Coenzyme A Ligase RE1514X Long-Chain-Fatty-Acid- Coenzyme A Ligase RE1525C 3-Hydroxyacyl Coenzyme A Dehydrogenase RE1526C 3-Hydroxyacyl Coenzyme A Dehydrogenase RE1527C 3-Hydroxyacyl Coenzyme A Dehydrogenase RE1537C RE1537C RE1537X RE1537X RE1538C RE1538C RE1538X RE1538X RE1539C RE1539C RE1539X RE1539X RE1582L Quinine 3-Monooxygenase RE1587L Quinine 3-Monooxygenase RE1651C NADPH:Quinone Reductase RE1653C NADPH:Quinone Reductase RE1711M Alcohol Dehydrogenase RE1796C Steroid Delta-Isomerase RE1806C Quinine 3-Monooxygenase RE1809C Quinine 3-Monooxygenase RE1809R Quinine 3-Monooxygenase RE1811C Quinine 3-Monooxygenase RE1811R Quinine 3-Monooxygenase RE1812C Quinine 3-Monooxygenase RE1812R Quinine 3-Monooxygenase RE1818C Glutathione Transferase RE1818M Glutathione Transferase RE1818R Glutathione Transferase RE1818X Glutathione Transferase RE1819C Carbonyl Reductase (NADPH) RE1819M Carbonyl Reductase (NADPH) RE1819X Carbonyl Reductase (NADPH) RE1826M RE1826M RE1827M RE1827M RE1828C RE1828C RE1828M RE1828M RE1829C RE1829C RE1829M RE1829M RE1830C RE1830C RE1830M RE1830M RE1835M Palmitoyl Coenzyme A Hydrolase RE1835X Palmitoyl Coenzyme A Hydrolase RE1836M Propionyl Coenzyme A C2-Trimethyltridecanoyltransferase RE1846X Bile Acid-CoA:Amino Acid N-Acyltransferase RE1860C 2',3'-Cyclic-Nucleotide 3'-Phosphodiesterase RE1899C Deoxyhypusine Synthase RE1907C RE1907C RE1916X Glutathione Transferase RE1917C RE1917C RE1920C Catechol O-Methyltransferase RE1922C Catechol O-Methyltransferase RE1927C RE1927C RE1942C RE1942C RE1942R RE1942R RE1952C Microsomal Epoxide Hydrolase RE1952R Microsomal Epoxide Hydrolase RE1952X Microsomal Epoxide Hydrolase RE1954C RE1954C RE1956C Microsomal Epoxide Hydrolase RE1956R Microsomal Epoxide Hydrolase RE1956X Microsomal Epoxide Hydrolase RE1957G 1-Phosphatidylinositol-4-Phosphate 5-Kinase RE2026C RE2026C RE2027C RE2027C RE2028C RE2028C RE2029C RE2029C RE2031M Amino-Acid N-Acetyltransferase RE2032M Amino-Acid N-Acetyltransferase RE2040C Gamma-Glutamylcyclotransferase RE2041C Gamma-Glutamylcyclotransferase RE2048N Arachidonate 5-Lipoxygenase RE2048R Arachidonate 5-Lipoxygenase RE2049C RE2049C RE2050C Prostaglandin-Endoperoxide Synthase RE2050R Prostaglandin-Endoperoxide Synthase RE2051C Phosphatidate Phosphatase RE2051G Phosphatidate Phosphatase RE2051R Phosphatidate Phosphatase RE2067C RE2067C RE2068C RE2068C RE2070C RE2070C RE2081C Peptide Alpha-N-Acetyltransferase RE2117M Glycine N-Acyltransferase RE2124C Catechol O-Methyltransferase RE2128C RE2128C RE2129C RE2129C RE2131C RE2131C RE2133C Catechol O-Methyltransferase RE2138C RE2138C RE2139C RE2139C RE2140C RE2140C RE2141C RE2141C RE2146C Glucuronosyltransferase RE2146R Glucuronosyltransferase RE2149C Glucuronosyltransferase RE2149R Glucuronosyltransferase RE2150C Glucuronosyltransferase RE2150R Glucuronosyltransferase RE2152C RE2152C RE2155R Steroid 21-Monooxygenase RE2156M Amino-Acid N-Acetyltransferase RE2202C RE2202C RE2203C RE2203C RE2221C RE2221C RE2221M RE2221M RE2248C RE2248C RE2250C RE2250C RE2251C RE2251C RE2252C RE2252C RE2265C Tissue Kallikrein RE2269C Chymase RE2270C Carboxypeptidase A RE2272C Tripeptidyl-Peptidase I RE2272L Tripeptidyl-Peptidase I RE2273C Carboxypeptidase A RE2292C RE2292C RE2296X Glutathione Transferase RE2306C Pyroglutamyl-Peptidase Ii RE2333C RE2333C RE2334C RE2334C RE2335C RE2335C RE2349M Kynurenine-Oxoglutarate Transaminase RE2360C RE2360C RE2360N RE2360N RE2373C RE2373C RE2375C RE2375C RE2377C RE2377C RE2384C RE2384C RE2404R Glucuronosyltransferase RE2405R Glucuronosyltransferase RE2410N 7-Dehydrocholesterol Reductase RE2440C RE2440C RE2443C Glutathione Transferase RE2443M Glutathione Transferase RE2444C RE2444C RE2445C Peptidyl-Dipeptidase A RE2452C RE2452C RE2453M Methylcrotonoyl Coenzyme A Carboxylase RE2454M Methylcrotonoyl Coenzyme A Carboxylase RE2459C Sterol Esterase RE2474C Quinine 3-Monooxygenase RE2474R Quinine 3-Monooxygenase RE2476C RE2476C RE2477C RE2477C RE2493C Methionine Synthase RE2513C Peroxidase RE2513L Peroxidase RE2513N Peroxidase RE2514C Peroxidase RE2514L Peroxidase RE2514N Peroxidase RE2520C NADPH:Quinone Reductase RE2521C NADPH:Quinone Reductase RE2522C Glutathione Transferase RE2522X Glutathione Transferase RE2523C Glutathione Transferase RE2523X Glutathione Transferase RE2524C Glutathione Transferase RE2524X Glutathione...
Found biomass reaction: biomass_reaction
------end------

Find mass leaks or siphons within the heuristically internal part, without using the bounds given by the model

if 1
modelBoundsFlag=0;
leakParams.method='dc';
leakParams.theta=0.5;
[leakMetBool,leakRxnBool,siphonMetBool,siphonRxnBool,leakY,siphonY,statp,statn] =...
findMassLeaksAndSiphons(model,model.SIntMetBool,model.SIntRxnBool,...
modelBoundsFlag,leakParams,printLevel);
end
6776 9958 subset tested for leakage (dc method, with infinite flux bounds)... 5028 6528 semipositive leaking metabolites (and exclusive reactions). 983.289 10fthf5glu[c] 983.289 10fthf5glu[l] 983.289 10fthf5glu[m] 1111.32 10fthf6glu[c] 1111.32 10fthf6glu[l] 1111.32 10fthf6glu[m] 1239.36 10fthf7glu[c] 1239.36 10fthf7glu[l] 1239.36 10fthf7glu[m] 471.15 10fthf[c] ... 11DOCRTSLtm 11DOCRTSLtr 11DOCRTSTRNtm 11DOCRTSTRNtr 13DAMPPOX 1MNCAMti 1PPDCRp 24_25DHVITD3t 24_25DHVITD3tm 25HVITD3t 5028 6528 seminegative siphon metabolites (and exclusive reactions). 983.289 10fthf5glu[c] 983.289 10fthf5glu[l] 983.289 10fthf5glu[m] 1111.32 10fthf6glu[c] 1111.32 10fthf6glu[l] 1111.32 10fthf6glu[m] 1239.36 10fthf7glu[c] 1239.36 10fthf7glu[l] 1239.36 10fthf7glu[m] 471.15 10fthf[c] ... 11DOCRTSLtm 11DOCRTSLtr 11DOCRTSTRNtm 11DOCRTSTRNtr 13DAMPPOX 1MNCAMti 1PPDCRp 24_25DHVITD3t 24_25DHVITD3tm 25HVITD3t

Find the maximal set of reactions that are stoichiometrically consistent

if ~isfield(model,'SConsistentMetBool') || ~isfield(model,'SConsistentRxnBool')
if strcmp(model.modelID,'HMRdatabase2_00')
massBalanceCheck=0;
else
massBalanceCheck=1;
end
if 1
[SConsistentMetBool,SConsistentRxnBool,SInConsistentMetBool,SInConsistentRxnBool,unknownSConsistencyMetBool,unknownSConsistencyRxnBool,model]...
=findStoichConsistentSubset(model,massBalanceCheck,printLevel);
else
%print out problematic reactions to file
resultsFileName=[resultsPath filesep model.modelID];
[SConsistentMetBool,SConsistentRxnBool,SInConsistentMetBool,SInConsistentRxnBool,unknownSConsistencyMetBool,unknownSConsistencyRxnBool,model]...
=findStoichConsistentSubset(model,massBalanceCheck,printLevel,resultsFileName);
end
end
--- findStoichConsistentSubset START ---- ------- #mets #rxns 6777 11802 totals. ------- 1 1844 heuristically external. 6776 9958 heuristically internal. 3676 9238 seemingly elementally balanced. 3676 9238 seemingly elementally balanced and stoichiometrically consistent. 3101 2564 seemingly elementally imbalanced. ------- 3676 9238 heuristically internal and seemingly elementally balanced. 3676 9238 seemingly elementally balanced and stoichiometrically consistent. 3100 720 heuristically internal and seemingly elementally imbalanced. ------- Iteration #1 minimum cardinality of conservation relaxation vector. 6776 9958 unknown consistency. 6776 9958 being tested. 6776 9475 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. Infeasibility while detecting semipositive leaking metabolites. 6776 9475 Confirmed stoichiometrically consistent by leak/siphon testing. 0 483 ... of which are of unknown consistency. 0 101 removed. ------- Iteration #2 minimum cardinality of conservation relaxation vector. 0 382 unknown consistency. 6776 9857 being tested. 6776 9601 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. 6776 9601 Confirmed stoichiometrically consistent by leak/siphon testing. 0 256 ... of which are of unknown consistency. 0 22 removed. ------- Iteration #3 minimum cardinality of conservation relaxation vector. 0 234 unknown consistency. 6776 9835 being tested. 6776 9605 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. Infeasibility while detecting seminegative leaking metabolites. 6776 9605 Confirmed stoichiometrically consistent by leak/siphon testing. 0 230 ... of which are of unknown consistency. 0 8 removed. ------- Iteration #4 minimum cardinality of conservation relaxation vector. 0 222 unknown consistency. 6776 9827 being tested. 6776 9610 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. Infeasibility while detecting semipositive leaking metabolites. 6776 9610 Confirmed stoichiometrically consistent by leak/siphon testing. 0 217 ... of which are of unknown consistency. 0 3 removed. ------- Iteration #5 minimum cardinality of conservation relaxation vector. 0 214 unknown consistency. 6776 9824 being tested. 6776 9609 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. Infeasibility while detecting seminegative leaking metabolites. 6776 9609 Confirmed stoichiometrically consistent by leak/siphon testing. 0 215 ... of which are of unknown consistency. ------- Iteration #6 minimum cardinality of conservation relaxation vector. 0 215 unknown consistency. 6776 9824 being tested. 6776 9609 ... of which are stoichiometrically consistent by min cardinality of stoich consistency relaxation. Infeasibility while detecting seminegative leaking metabolites. 6776 9609 Confirmed stoichiometrically consistent by leak/siphon testing. 0 215 ... of which are of unknown consistency. Infeasibility while detecting seminegative leaking metabolites. --- Summary of stoichiometric consistency ---- 6777 11802 totals. 1 1844 heuristically external. 6776 9958 heuristically internal: 6776 9609 ... of which are stoichiometrically consistent. 0 134 ... of which are stoichiometrically inconsistent. 0 215 ... of which are of unknown consistency. --- 0 349 heuristically internal and stoichiometrically inconsistent or unknown consistency. 644 134 ... of which are elementally imbalanced (inclusively involved metabolite). 0 134 ... of which are elementally imbalanced (exclusively involved metabolite). 6776 9609 Confirmed stoichiometrically consistent by leak/siphon testing. --- findStoichConsistentSubset END ----
rxnBool=model.SInConsistentRxnBool & model.SIntRxnBool;
if any(rxnBool)
if printLevel>0
fprintf('%s\n','Stoichiometrically inconsistent heuristically non-exchange reactions:')
end
for n=1:nRxn
if rxnBool(n)
fprintf('%20s\t%50s\t%s\n',model.rxns{n},model.rxnNames{n})
end
end
if printLevel>0
fprintf('%s\n','--------------')
end
end
Stoichiometrically inconsistent heuristically non-exchange reactions:
ABO7g Abo Blood Group (Transferase A, Alpha 1-3-N-Acetylgalactosaminyltransferase AGLPET Alkyl Acylglycerol Phosphoethanolamine Transferase AGPAT1 1-Acylglycerol-3-Phosphate O-Acyltransferase 1 ARTFR13 R Group Artificial Flux ARTFR202 R Group Artificial Flux (C18:3, N-3) ARTFR203 R Group Artificial Flux ARTFR204 R Group Artificial Flux ARTFR205 R Group Artificial Flux ARTFR206 R Group Artificial Flux ARTFR207 R Group Artificial Flux ARTFR208 R Group Artificial Flux ARTFR209 R Group Artificial Flux ARTFR210 R Group Artificial Flux ARTFR211 R Group Artificial Flux ARTFR212 R Group Artificial Flux ARTFR213 R Group Artificial Flux ARTFR42 R Group Artificial Flux ARTFR43 R Group Artificial Flux ARTFR44 R Group Artificial Flux ARTFR45 R Group Artificial Flux ARTFR46 R Group Artificial Flux ARTFR52 R Group Artificial Flux ARTFR53 R Group Artificial Flux ARTPLM2 R Group to Palmitate Conversion ARTPLM2m R Group to Palmitate Conversion ARTPLM3 R Group to Palmitate Conversion B3GNT311g UDP-GlcNac:Betagal Beta-1, 3-N-Acetylglucosaminyltransferase 3, Golgi Apparatus GPAM_hs Glycerol-3-Phosphate Acyltransferase NOS2 Nitric Oxide Synthase (No Forming) RTOT_2 R Total Flux 2 Position RTOT2 R Total Flux RTOT3 R Total Flux RTOT5 R Total Flux UNK2 2-Keto-4-Methylthiobutyrate Transamination r0145 L-Arginine, NADPH:Oxygen Oxidoreductase (Nitric-Oxide-Forming) r0698 Propanoyl Coenzyme A:Acetyl Coenzyme A C-Acyltransferase Bile Acid Biosynthesis r1135 Hydroxysteroid (17-Beta) Dehydrogenase 7 r1254 Long-Chain-Fatty-Acid---Coa Ligase r1293 Adf Protein Assembly r1333 Protein Degradation r1335 Protein Degradation r1339 Protein Degradation r1341 Protein Degradation r1343 Protein Degradation r1344 Protein Degradation r1345 Protein Degradation r1346 Protein Degradation r1453 L-Proline: (Acceptor) Oxidoreductase RE2426C RE2426C RE2898C RE2898C RE3158X Acetyl Coenzyme A C-Acyltransferase RE3238C RE3238C RE3268C Phosphatidylinositol-3,4,5-Trisphosphate 3-Phosphatase RE3411C RE3411C FAOXC11BRC9BRx Fatty Acid Beta Oxidation (C11Br->C9Br), Peroxisomal CHOLESACATc Esterification of Cholesterol to Cholesterol Ester LCAT23e Lecithin-Cholesterol Acyltransferase, Formation of Cholesterol-Ester (18:3) LCAT26e Lecithin-Cholesterol Acyltransferase, Formation of Cholesterol-Ester (20:5) LCAT27e Lecithin-Cholesterol Acyltransferase, Formation of Cholesterol-Ester (20:4) AGPAT2 1-Acylglycerol-3-Phosphate O-Acyltransferase 1 (C16:0) AGPAT3 1-Acylglycerol-3-Phosphate O-Acyltransferase 1 (C18:1) AGPAT4 1-Acylglycerol-3-Phosphate O-Acyltransferase 1 (C18:2) TAG_HSad Formation of Triglycerides in Adipocytes TAG_HSad_E Formation of Triglycerides in Adipocytes, Essential Fas IDL_HSDEG Degradation of IDL LDL_HSDEG Degradation of LDL HDL_HSDEG Degradation of HDL HMR_0012 HMR_0012 HMR_0544 Glycerol-3-Phosphate 1-O-Acyltransferase HMR_0546 HMR_0546 HMR_0547 HMR_0547 HMR_0548 HMR_0548 HMR_0549 HMR_0549 HMR_0551 HMR_0551 HMR_0552 HMR_0552 HMR_0556 HMR_0556 HMR_0557 HMR_0557 HMR_0559 HMR_0559 HMR_0588 1-Acylglycerol-3-Phosphate O-Acyltransferase HMR_0616 Phosphatidylserine Decarboxylase HMR_0657 S-Adenosyl-L-Methionine:Phosphatidyl-N-Dimethylethanolamine N-Methyltransferase HMR_0665 Triacylglycerol Lipase HMR_0685 HMR_0685 HMR_0686 HMR_0686 HMR_0688 HMR_0688 HMR_0689 HMR_0689 HMR_0690 HMR_0690 HMR_0691 HMR_0691 HMR_0692 HMR_0692 HMR_0792 Galactosylceramide Sulfotransferase HMR_0866 Galactoside 2-Alpha-L-Fucosyltransferase HMR_0895 4-Galactosyl-N-Acetylglucosaminide 3-Alpha-L-Fucosyltransferase HMR_0900 4-Galactosyl-N-Acetylglucosaminide 3-Alpha-L-Fucosyltransferase HMR_1077 Arachidonate 5-Lipoxygenase HMR_1186 HMR_1186 HMR_1403 HMR_1403 HMR_1404 HMR_1404 HMR_1405 HMR_1405 HMR_1406 HMR_1406 HMR_1407 HMR_1407 HMR_1408 HMR_1408 HMR_1409 HMR_1409 HMR_1970 Steroid Delta-Isomerase HMR_1971 Steroid Delta-Isomerase HMR_2029 Unspecific Monooxygenase HMR_2031 Unspecific Monooxygenase HMR_2034 Unspecific Monooxygenase HMR_2558 HMR_2558 HMR_2611 Carnitine O-Palmitoyltransferase HMR_2794 Carnitine O-Acetyltransferase HMR_3055 HMR_3055 HMR_3288 Dodecenoyl Coenzyme A Isomerase HMR_3316 Dodecenoyl Coenzyme A Isomerase HMR_3321 Acyl Coenzyme A Oxidase HMR_3537 HMR_3537 HMR_4763 Heme Oxygenase (Biliverdin-Producing) HMR_4768 HMR_4768 HMR_4782 HMR_4782 HMR_4783 HMR_4783 HMR_6729 L-Tyrosine:Oxygen Oxidoreductase HMR_6813 Peroxidase HMR_7164 Exodeoxyribonuclease Iii HMR_7197 HMR_7197 HMR_7610 CDP-Choline:1-Alkyl-2-Acetylglycerol Cholinephosphotransferase HMR_7617 Receptor Protein-Tyrosine Kinase HMR_7656 ATP:1D-Myo-Inositol-5-Diphosphate-Pentakisphosphate Phosphotransferase HMR_9488 ATP:Phosphorylase-B Phosphotransferase; HMR_9494 [Myosin-Light-Chain]-Phosphate Phosphohydrolase HMR_9577 Non-Specific Serine/Threonine Protein Kinase steroids Steroids (from HMR) HMR_0980 Carbonyl Reductase (NADPH) HMR_5156 HMR_5156 HMR_5167 HMR_5167 CYOOm3i CYOOm3i
--------------
rxnBool=model.unknownSConsistencyRxnBool & model.SIntRxnBool;
if any(rxnBool)
if printLevel>0
fprintf('%s\n','Unknown consistency heuristically non-exchange reactions:')
end
for n=1:nRxn
if rxnBool(n)
fprintf('%20s\t%50s\t%s\n',model.rxns{n},model.rxnNames{n})
end
end
if printLevel>0
fprintf('%s\n','--------------')
end
end
Unknown consistency heuristically non-exchange reactions:
3MOBt2im 3-Methyl-2-Oxobutanoate Mitochondrial Transport via Proton Symport ACSm Acetyl Coenzyme A Synthetase ADK1m Adenylate Kinase, Mitochondrial ADK3 Adentylate Kinase (GTP) ADK3m Adentylate Kinase (GTP) ADKd Adenylate Kinase (D Form) ADNCYC Adenylate Cyclase ADNtm Adenosine Faciliated Transport in Mitochondria AGLPH Alkyl Glycerol Phosphate Hydrolase AKR1D2 Aldo-Keto Reductase Family 1, Member D1 (Delta 4-3-Ketosteroid-5-Beta-Reductase) ALAt2rL L-Alanine Reversible Transport via Proton Symport, Lysosomal APOCFm Apocarboxylase Formation, Mitochondrial ARTCOAL1 R Group Coenzyme A Ligase R_group_phosphotase_1 R Group Phosphotase 1 R_group_phosphotase_2 R Group Phosphotase 2 R_group_phosphotase_3 R Group Phosphotase 3 ASNtm L-Asparagine Transport, Mitochondrial ATP2ter AMP/ATP Transporter, Endoplasmic Reticulum BACCL Biotin-[Acetyl Coenzyme A-Carboxylase] Ligase DEDOLR_L Dehydrodolichol Reductase (Liver) DOLP_Lter Dolichol Phosphate Flippase (Liver) DSAT Dihydrosphingosine N-Acyltransferase FA160ACPH Fatty-Acyl-Acp Hydrolase FACOAL150 Fatty-Acid- Coenzyme A Ligase FACOAL160i C160 Fatty Acid Activation FACOAL170 Fatty-Acid- Coenzyme A Ligase FACOAL181i C181 Fatty Acid Activation FACOAL1821 Fatty-Acid- Coenzyme A Ligase FACOAL1822 Fatty-Acid- Coenzyme A Ligase FACOAL1831 Fatty-Acid- Coenzyme A Ligase FACOAL1832 Fatty-Acid- Coenzyme A Ligase FACOAL184 Fatty-Acid- Coenzyme A Ligase FACOAL203 Fatty-Acid- Coenzyme A Ligase FACOAL204 Fatty-Acid- Coenzyme A Ligase FACOAL205 Fatty-Acid- Coenzyme A Ligase FACOAL224 Fatty-Acid- Coenzyme A Ligase FACOAL2251 Fatty-Acid- Coenzyme A Ligase FACOAL2252 Fatty-Acid- Coenzyme A Ligase FACOAL226 Fatty-Acid- Coenzyme A Ligase FACOAL244_1 Fatty-Acid- Coenzyme A Ligase FBA4 D-Fructose 1-Phosphate D-Glyceraldehyde-3-Phosphate-Lyase FUMAC Fumarylacetoacetase G12MT2_U Glycolipid 1, 2-Alpha-D-Mannosyltransferase (Uterus) G16MT_L Glycolipid 1, 6-Alpha-D-Mannosyltransferase (Liver) GLYt2rL Transport of Glycine via Proton Symport, Reversible, Lysosomal GNDer Phosphogluconate Dehydrogenase, Endoplasmic Reticulum HACD9m 3-Hydroxyacyl Coenzyme A Dehydrogenase (2-Methylacetoacetyl Coenzyme A), Mitochondrial INOSTO Inositol Oxygenase LNS14DM Cytochrome P450 Lanosterol 14-Alpha-Demethylase (NADP) MCCCrm Methylcrotonoyl Coenzyme A Carboxylase, Mitochondrial MDRPD 5-Methylthio-5-Deoxy-D-Ribulose 1-Phosphate Dehydratase METAT Methionine Adenosyltransferase MGSA Methylglyoxal Synthase MGSA2 Methyglyoxylate Synthase 2 (from G3P) MOGAT Monoacylglycerol Acyltransferase NICRNTtn Transport of Nicotinate D-Ribonucleotide, Nuclear through Pore PGS Prostaglandin G/H Synthase PGSr Prostaglandin G/H Synthase PPAtm Propionate Transport, Diffusion PROt2rL Transport of L-Proline via Proton Symport, Reversible, Lysosomal PTE3x Peroxisomal Acyl Coenzyme A Thioesterase PTE4x Peroxisomal Acyl Coenzyme A Thioesterase RTOTAL3t Rtotal3 Transport SADT Sulfate Adenylyltransferase TAGt Triacylglycerol Transport UDPGD UDPglucose 6-Dehydrogenase VALt5m Valine Reversible Mitochondrial Transport VLCSr Very-Long-Chain-Fatty-Acid Coenzyme A Ligase r0028 ATP Pyrophosphohydrolase r0068 Acetyl Adenylate:Coa Ligase (AMP-Forming) r0283 L-Histidine:Beta-Alanine Ligase (AMP-Forming) r0301 Xanthosine-5-Phosphate:Ammonia Ligase (AMP-Forming) r0321 Acetoacetate:Coa Ligase (AMP-Forming) r0465 L-Histidine:4-Aminobutanoate Ligase (AMP-Forming) r0470 2-Deoxyadenosine 5-Diphosphate:Oxidized-Thioredoxin 2-Oxidoreductase r0488 (R)-Mevalonate:NADP+ Oxidoreductase (Coa Acylating) r0591 Dephospho Coenzyme A Nucleotidohydrolase r0651 Chenodeoxycholate:Coa Ligase (AMP-Forming) Bile Acid Biosynthesis r0926 Postulated Transport Reaction r1012 Postulated Transport Reaction r1061 Vesicular Transport r1063 Vesicular Transport r1064 Postulated Transport Reaction r1068 Vesicular Transport r1071 Transport Reaction r1073 Transport Reaction r1074 Vesicular Transport r1076 Postulated Transport Reaction r1116 ATP Exporter (ATP-E) Tcdb:9.A.6.1.1 r1140 Vesicular Transport r1487 Long-Chain-Fatty-Acid Coenzyme A Ligase RE0344C Palmitoyl Coenzyme A Hydrolase RE0577C Palmitoyl Coenzyme A Hydrolase RE0579C Palmitoyl Coenzyme A Hydrolase RE2649C Palmitoyl Coenzyme A Hydrolase RE2649M Palmitoyl Coenzyme A Hydrolase RE2910M 3-Hydroxyacyl Coenzyme A Dehydrogenase RE2912M Long-Chain-Fatty-Acid- Coenzyme A Ligase RE3134C Delta14-Sterol Reductase RE3237C RE3237C RE3239C RE3239C ADPCOACROT Production of Adipoyl Carnitine DOCOSACT Activation of Docosanoic Acid for Transport FAOXC12DCx Production of Dodecanedioyl Carnitine SEBACIDtx Transport of Sebacic Acid into Cytosol (Diffusion) SUBERICACT Activation of Suberic Acid for Formation of Suberyl Carnitine SUCCACT Activation of Succinate LINOFATPtc Uptake of Linoleic Acid OLEICFATPtc Uptake of Octadecenoate PALFATPtc Transport of Hexadecanoate GNDc Phosphogluconate Dehydrogenase RTOTAL2FATPc Uptake of Rtotal2 RTOTAL3FATPc Uptake of Rtotal3 RTOTALFATPc Uptake of Rtotal ARACHDFATPtc Arachidonate (N-C18:1) Transport by FATP XOLEST181CEH Hydrolysis of 1-Vaccenoyl-Cholesterol, Cholesterol-Ester (18:1, Delta 11) FAS180 Fas180 ACCOAL Acetate Coenzyme A Ligase (ADP-Forming) ACS Acetyl Coenzyme A Synthetase ADK1 Adenylate Kinase BPNT 3', 5'-Bisphosphate Nucleotidase CYSTGL Cystathionine G-Lyase FMNAT FMN Adenylyltransferase FTHFCL 5-Formethyltetrahydrofolate Cyclo-Ligase GAPD Glyceraldehyde-3-Phosphate Dehydrogenase GMAND GDP-D-Mannose Dehydratase GMPS2 GMP Synthase MAN6PI Mannose-6-Phosphate Isomerase NNATr Nicotinate-Nucleotide Adenylyltransferase PMANM Phosphomannomutase PPM Phosphopentomutase PPNCL3 Phosphopantothenate-Cysteine Ligase PRPPS Phosphoribosylpyrophosphate Synthetase RNDR1 Ribonucleoside-Diphosphate Reductase (ADP) TMDPK Thiamin Pyrophosphokinase (Ec 2.7.6.2) r0127 L-Asparagine Amidohydrolase / Cyanoamino Acid Metabolism / Nitrogen Metabolism Ec:3.5.1.1 Ec:3.5.1.38 r0345 ATP:AMP Phosphotransferase Ec:2.7.4.11 ADPRDP ADPribose Diphosphatase ARGSL Argininosuccinate Lyase GLUPRT Glutamine Phosphoribosyldiphosphate Amidotransferase GND Phosphogluconate Dehydrogenase THRD_L L-Threonine Deaminase r0392 D-Glyceraldehyde:NAD+ Oxidoreductase Ec:1.2.1.3 AACOAT Acetoacetyl Coenzyme A:Acetate Coa-Transferase HMR_0019 HMR_0019 HMR_0020 HMR_0020 HMR_0156 Carboxylic Acid:Coa Ligase (AMP-Forming) HMR_0168 Butyrate Coenzyme A Ligase HMR_0189 Palmitoyl Coenzyme A Hydrolase HMR_0192 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0193 Palmitoyl Coenzyme A Hydrolase HMR_0197 Palmitoyl Coenzyme A Hydrolase HMR_0200 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0204 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0209 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0214 Palmitoyl Coenzyme A Hydrolase HMR_0230 Palmitoyl Coenzyme A Hydrolase HMR_0233 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0238 Palmitoyl Coenzyme A Hydrolase HMR_0241 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0245 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0256 Palmitoyl Coenzyme A Hydrolase HMR_0260 Palmitoyl Coenzyme A Hydrolase HMR_0268 Palmitoyl Coenzyme A Hydrolase HMR_0272 Palmitoyl Coenzyme A Hydrolase HMR_0280 Palmitoyl Coenzyme A Hydrolase HMR_0290 Palmitoyl Coenzyme A Hydrolase HMR_0298 Palmitoyl Coenzyme A Hydrolase HMR_0302 Palmitoyl Coenzyme A Hydrolase HMR_0305 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0310 Palmitoyl Coenzyme A Hydrolase HMR_0324 Palmitoyl Coenzyme A Hydrolase HMR_0328 Palmitoyl Coenzyme A Hydrolase HMR_0342 Palmitoyl Coenzyme A Hydrolase HMR_0346 Palmitoyl Coenzyme A Hydrolase HMR_0358 Palmitoyl Coenzyme A Hydrolase HMR_0370 Palmitoyl Coenzyme A Hydrolase HMR_0374 Palmitoyl Coenzyme A Hydrolase HMR_0381 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_0386 Palmitoyl Coenzyme A Hydrolase HMR_0390 Palmitoyl Coenzyme A Hydrolase HMR_0394 Palmitoyl Coenzyme A Hydrolase HMR_0422 Palmitoyl Coenzyme A Hydrolase HMR_0430 Palmitoyl Coenzyme A Hydrolase HMR_0434 Palmitoyl Coenzyme A Hydrolase HMR_0438 Palmitoyl Coenzyme A Hydrolase HMR_0676 Acylglycerol Kinase HMR_1158 Long-Chain-Fatty-Acid Coenzyme A Ligase HMR_1188 HMR_1188 HMR_1240 HMR_1240 HMR_1252 HMR_1252 HMR_1267 HMR_1267 HMR_1479 Sterol 14Alpha-Demethylase HMR_1512 Cholestenol Delta-Isomerase HMR_1752 HMR_1752 HMR_1767 7Alpha-Hydroxycholest-4-En-3-One 12Alpha-Hydroxylase HMR_2282 Stearoyl Coenzyme A 9-Desaturase HMR_2819 Carnitine O-Acetyltransferase HMR_3398 Enoyl Coenzyme A Hydratase HMR_3597 HMR_3597 HMR_3966 Nucleoside-Triphosphate Diphosphatase HMR_4263 NAD+ Diphosphatase HMR_4284 HMR_4284 HMR_4630 (R)-Mevalonate:NADP+ Oxidoreductase (Coa Acylating) HMR_5253 HMR_5253 HMR_6784 4-Coumarate:Coa Ligase (AMP-Forming) HMR_7141 Se-Methyl-L-Selenocysteine Methaneselenol-Lyase (Deaminating, Pyruvate-Forming) HMR_7747 ADP:D-Glucose 6-Phosphotransferase HMR_9716 HMR_9716 HMR_9801 GTP:5-Hydroxy-L-Lysine O-Phosphotransferase 2HATVACIDhc conversion of 2-hydroxy-atorvastatin-lactone to its acid form in hepatocytes 4HATVLAChc conversion of 4-hydroxy-atorvastatin-lactone to its acid form in hepatocytes ATVLAChc lactonization of atorvastatin in hepatocytes LVACLAChep reconversion of open acid form to lactone form of lovastatin SMVLAChep conversion of open acid form to lactone form of simvastatin
--------------

Sanity check of stoichiometric and flux consistency of model with open external reactions

if all(model.SIntMetBool & model.SConsistentMetBool)...
&& nnz(model.SIntRxnBool & model.SConsistentRxnBool)==nnz(model.SIntRxnBool)...
&& all(model.fluxConsistentMetBool)...
&& all(model.fluxConsistentRxnBool)
[nMet,nRxn]=size(model.S);
if printLevel>1
fprintf('%6s\t%6s\n','#mets','#rxns')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' totals.')
fprintf('%6u\t%6u\t%s\n',nnz(~model.SIntMetBool),nnz(~model.SIntRxnBool),' heuristically exchange.')
end
checksPassed=0;
%Check that all heuristically non-exchange reactions are also stoichiometrically consistent
%exchange reactions
model.EXRxnBool=strncmp('EX_', model.rxns, 3)==1;
%demand reactions going out of model
model.DMRxnBool=strncmp('DM_', model.rxns, 3)==1;
%sink reactions going into or out of model
model.SinkRxnBool=strncmp('sink_', model.rxns, 5)==1;
%all heuristic non-exchanges, i.e., supposedly all external reactions
bool=~(model.EXRxnBool | model.DMRxnBool | model.SinkRxnBool);
if nnz(bool & model.SIntRxnBool & model.SConsistentRxnBool)==nnz(model.SConsistentRxnBool)
checksPassed=checksPassed+1;
if printLevel>1
fprintf('%6u\t%6u\t%s\n',nnz(model.SIntMetBool),nnz(model.SIntRxnBool),' All internally stoichiometrically consistent. (Check 1: minimum cardinality of conservation relaxation vector.)');
end
end
%Check for mass leaks or siphons in the stoichiometrically consistent part
%There should be no leaks or siphons in the stiochiometrically consistent part
modelBoundsFlag=0;
leakParams.epsilon=1e-4;
leakParams.eta = getCobraSolverParams('LP', 'feasTol')*100;
leakParams.method='dc';
[leakMetBool,leakRxnBool,siphonMetBool,siphonRxnBool,leakY,siphonY,statp,statn]...
=findMassLeaksAndSiphons(model,model.SConsistentMetBool,model.SConsistentRxnBool,modelBoundsFlag,leakParams,printLevel);
if nnz(leakMetBool)==0 && nnz(leakRxnBool)==0 && nnz(siphonMetBool)==0 && nnz(siphonRxnBool)==0
checksPassed=checksPassed+1;
if printLevel>1
fprintf('%6u\t%6u\t%s\n',nnz(leakMetBool | siphonMetBool),nnz(leakRxnBool | siphonRxnBool),' No internal leaks or siphons. (Check 2: leak/siphon tests.)');
end
end
%Check that the maximal conservation vector is nonzero for each the
%internal stoichiometric matrix
maxCardinalityConsParams.epsilon=1e-4;%1/epsilon is the largest mass considered, needed for numerical stability
maxCardinalityConsParams.method = 'quasiConcave';%seems to work the best, but sometimes infeasible
maxCardinalityConsParams.theta = 0.5;
maxCardinalityConsParams.eta=getCobraSolverParams('LP', 'feasTol')*100;
[maxConservationMetBool,maxConservationRxnBool,solution]=maxCardinalityConservationVector(model.S(model.SConsistentMetBool,model.SConsistentRxnBool), maxCardinalityConsParams);
if nnz(maxConservationMetBool)==size(model.S,1) && nnz(maxConservationRxnBool)==nnz(model.SIntRxnBool)
checksPassed=checksPassed+1;
if printLevel>1
fprintf('%6u\t%6u\t%s\n',nnz(maxConservationMetBool),nnz(maxConservationRxnBool),' All internally stoichiometrically consistent. (Check 3: maximim cardinality conservation vector.)');
end
end
%Check that each of the reactions in the model (with open external reactions) is flux consistent
modelOpen=model;
modelOpen.lb(~model.SIntRxnBool)=-1000;
modelOpen.ub(~model.SIntRxnBool)= 1000;
param.epsilon=1e-4;
param.modeFlag=0;
param.method='null_fastcc';
[fluxConsistentMetBool,fluxConsistentRxnBool,fluxInConsistentMetBool,fluxInConsistentRxnBool,modelOpen] = findFluxConsistentSubset(modelOpen,param,printLevel-2);
if nnz(fluxConsistentMetBool)==size(model.S,1) && nnz(fluxConsistentRxnBool)==size(model.S,2)
checksPassed=checksPassed+1;
if printLevel>1
fprintf('%6u\t%6u\t%s\n',nnz(fluxConsistentMetBool),nnz(fluxConsistentRxnBool),' All flux consistent. (Check 4: maximim cardinality constrained right nullspace.)');
end
end
if checksPassed==4
%save the model with open exchanges as the default generic
%model
model=modelOpen;
if printLevel>0
fprintf('%s\n','Open external reactions is stoichiometrically and flux consistent. A flux balance model generated from a reconstruction. GREAT!!!!');
end
end
save([resultsFileName '_consistent.mat'],'model')
end

REFERENCES

Gevorgyan, A., Poolman, M. G., Fell D., Detection of stoichiometric inconsistencies in biomolecular models. Bioinformatics, 24(19):2245–51, 2008.
Fleming, R.M.T., et al., Cardinality optimisation in constraint-based modelling: Application to Recon 3D (submitted), 2017.
Brunk, E. et al. Recon 3D: A resource enabling a three-dimensional view of gene variation in human metabolism. (submitted) 2017.