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.
if ~exist('modelOrig','var')
%select your own model, or use Recon2.0model instead
filename='Recon3D_301.mat'
filename='Recon2.0model.mat';
if exist('Recon2.0model.mat','file')==2
model = readCbModel(filename);
model.csense(1:size(model.S,1),1)='E';
end
filename = 'Recon3D_301.mat'
Set the level of printing, zero for silent, higher for more output.
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')
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.
diary([resultsFileName '_diary.txt'])
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')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' totals.')
Make sure the stoichiometric matrix is stored in a sparse format as this accelerates computations with large networks
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')
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')
%Rename some of the biomass reactions to make them more obviously exchange
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,removeMetBool,removeRxnBool] = manuallyAdaptRecon3(model,printLevel);
[model,removeMetBool,removeRxnBool] = manuallyAdaptRecon3Ines(model,printLevel);
[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.')
Remove any trivial rows and columns of the stoichiometric matrix
Remove any zero rows or columns of the stoichiometric matrix
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----
Check for duplicate columns by detecting the columns of the S matrix that are identical upto scalar multiplication.
[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
%set all reactions reversible that are duplicates
model.lb(removedRxnInd)=-model.ub(removedRxnInd);
model = removeRxns(model,model.rxns(removedRxnInd),irrevFlag,metFlag);
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----
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.
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});
protonMetBool=strncmp(modelH.mets,'h',1) & nMetChars==length('h[*]');
disp(modelH.mets(protonMetBool))
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.
[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
metFlag=0;%dont remove the protons
model = removeRxns(model,model.rxns(removedRxnInd),irrevFlag,metFlag);
Display statistics of the removed 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,' duplicate reactions upto protons removed.')
fprintf('%6u\t%6u\t%s\n',nMet,nRxn,' remaining.')
end
0 253 duplicate reactions upto protons removed.
[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.
model.lb(~model.SIntRxnBool)=-1000;
model.ub(~model.SIntRxnBool)= 1000;
if ~isfield(model,'fluxConsistentMetBool') || ~isfield(model,'fluxConsistentRxnBool')
param.method='null_fastcc';
[fluxConsistentMetBool,fluxConsistentRxnBool,...
fluxInConsistentMetBool,fluxInConsistentRxnBool,model]...
= findFluxConsistentSubset(model,param,printLevel);
% Remove reactions that are flux inconsistent
if any(fluxInConsistentRxnBool)
model = removeRxns(model,model.rxns(fluxInConsistentRxnBool),irrevFlag,metFlag);
[nMet0,nRxn0]=size(modelOrig.S);
[nMet,nRxn]=size(model.S);
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 fluxInConsistentRxnBool(n)
fprintf('%15s\t%-100s\n',modelOrig.rxns{n},modelOrig.rxnNames{n})
[nMet,nRxn]=size(model.S);
%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
model = findSExRxnInd(model,[],0);
fprintf('%s\n','------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 ----
1622 1488 flux inconsistent reactions removed.
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
Find mass leaks or siphons within the heuristically internal part, without using the bounds given by the model
[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')
[SConsistentMetBool,SConsistentRxnBool,SInConsistentMetBool,SInConsistentRxnBool,unknownSConsistencyMetBool,unknownSConsistencyRxnBool,model]...
=findStoichConsistentSubset(model,massBalanceCheck,printLevel);
%print out problematic reactions to file
resultsFileName=[resultsPath filesep model.modelID];
[SConsistentMetBool,SConsistentRxnBool,SInConsistentMetBool,SInConsistentRxnBool,unknownSConsistencyMetBool,unknownSConsistencyRxnBool,model]...
=findStoichConsistentSubset(model,massBalanceCheck,printLevel,resultsFileName);
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;
fprintf('%s\n','Stoichiometrically inconsistent heuristically non-exchange reactions:')
fprintf('%20s\t%50s\t%s\n',model.rxns{n},model.rxnNames{n})
fprintf('%s\n','--------------')
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;
fprintf('%s\n','Unknown consistency heuristically non-exchange reactions:')
fprintf('%20s\t%50s\t%s\n',model.rxns{n},model.rxnNames{n})
fprintf('%s\n','--------------')
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);
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.')
%Check that all heuristically non-exchange reactions are also stoichiometrically consistent
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;
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.)');
%Check for mass leaks or siphons in the stoichiometrically consistent part
%There should be no leaks or siphons in the stiochiometrically consistent part
leakParams.eta = getCobraSolverParams('LP', 'feasTol')*100;
[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;
fprintf('%6u\t%6u\t%s\n',nnz(leakMetBool | siphonMetBool),nnz(leakRxnBool | siphonRxnBool),' No internal leaks or siphons. (Check 2: leak/siphon tests.)');
%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;
fprintf('%6u\t%6u\t%s\n',nnz(maxConservationMetBool),nnz(maxConservationRxnBool),' All internally stoichiometrically consistent. (Check 3: maximim cardinality conservation vector.)');
%Check that each of the reactions in the model (with open external reactions) is flux consistent
modelOpen.lb(~model.SIntRxnBool)=-1000;
modelOpen.ub(~model.SIntRxnBool)= 1000;
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;
fprintf('%6u\t%6u\t%s\n',nnz(fluxConsistentMetBool),nnz(fluxConsistentRxnBool),' All flux consistent. (Check 4: maximim cardinality constrained right nullspace.)');
%save the model with open exchanges as the default generic
fprintf('%s\n','Open external reactions is stoichiometrically and flux consistent. A flux balance model generated from a reconstruction. GREAT!!!!');
save([resultsFileName '_consistent.mat'],'model')
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.