Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

yeast 8.3.3 #182

Merged
merged 31 commits into from
Dec 6, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
0f0642f
fix: keywords
BenjaSanchez Nov 1, 2018
1364a79
feat-data: upload cofacor ion related data
feiranl Nov 1, 2018
e8a280f
feat-function: update all functions related
feiranl Nov 1, 2018
8d531c1
feat-model: update the model
feiranl Nov 1, 2018
44fe38b
feat-data:update coefficients
feiranl Nov 5, 2018
d962e17
fix-rxn:change a rxn name
feiranl Nov 5, 2018
39961e6
fix-function: modify the function
feiranl Nov 5, 2018
b26add3
feat-model: update all changes to model
feiranl Nov 5, 2018
f96338b
fix-data: corret the reference for 9 ions
feiranl Nov 8, 2018
74f1911
fix-function:delete unused variables
feiranl Nov 8, 2018
b741598
fix-data: update Cl- concentration and reference
Nov 12, 2018
fae3999
fix-model:update this change into the model
Nov 12, 2018
4fb6359
fix-data: update TDP concentration and reference
feiranl Nov 15, 2018
ef2b33a
fix-model:update this change into the model
feiranl Nov 15, 2018
fb0ead0
fix-function.name: change function name according to discussion
feiranl Nov 15, 2018
3eb8aec
Merge pull request #174 from SysBioChalmers/NewBiomass
BenjaSanchez Nov 16, 2018
78e9133
fix: non-compliant symbol
BenjaSanchez Nov 26, 2018
c97b07e
fix-met.annot: biomass SBO terms
BenjaSanchez Nov 26, 2018
2339f00
Merge pull request #180 from SysBioChalmers/fix/biomassSBOterms
BenjaSanchez Nov 30, 2018
321cd40
Merge pull request #179 from SysBioChalmers/fix/nonCompliantSymbol
BenjaSanchez Nov 30, 2018
1757426
doc: citation guidelines
BenjaSanchez Nov 30, 2018
51b259c
feat: Zenodo badge
BenjaSanchez Nov 30, 2018
7781e6b
Merge pull request #173 from SysBioChalmers/fix/keywords
demilappa Dec 2, 2018
39bfdc2
Merge pull request #181 from SysBioChalmers/doc/citationGuidelines
BenjaSanchez Dec 4, 2018
34a34fc
doc: added contributors
BenjaSanchez Dec 4, 2018
f88f507
style-data:add a title to the file 'biomassComposition_Cofactor_Ion.tsv'
feiranl Dec 4, 2018
1715d0a
fix-data: update the data with Ca2+ exchange reaction
feiranl Dec 4, 2018
c6dc07b
feat-rxns: add Ca2+ exchange reaction
feiranl Dec 4, 2018
c1ecddc
fix-rxnannot:fix the rxnconfidence scores for those reactions in this…
feiranl Dec 5, 2018
8aef65c
Merge pull request #183 from SysBioChalmers/fix-biomass
BenjaSanchez Dec 6, 2018
cb67932
chore: update dependencies
BenjaSanchez Dec 6, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 29 additions & 0 deletions ComplementaryData/modelCuration/Biomass_newRxnMatrix.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
rxnID coefficient Metabolite standard name Metabolite_type compartment
MNXR96437 1 Ca(2+) reactant extracellular
MNXR96437 1 H+ reactant extracellular
MNXR96437 1 Ca(2+) product cytoplasm
MNXR96437 1 H+ product cytoplasm
MNXR96797 1 chloride reactant extracellular
MNXR96797 1 chloride product cytoplasm
MNXR126350 1 Cu2(+) reactant extracellular
MNXR126350 1 H+ reactant extracellular
MNXR126350 1 Cu2(+) product cytoplasm
MNXR126350 1 H+ product cytoplasm
MNXR101669 1 Mn(2+) reactant extracellular
MNXR101669 1 H+ reactant extracellular
MNXR101669 1 Mn(2+) product cytoplasm
MNXR101669 1 H+ product cytoplasm
MNXR105278 1 Zn(2+) reactant extracellular
MNXR105278 1 H+ reactant extracellular
MNXR105278 1 Zn(2+) product cytoplasm
MNXR105278 1 H+ product cytoplasm
MNXR101553 1 Mg(2+) reactant extracellular
MNXR101553 1 H+ reactant extracellular
MNXR101553 1 Mg(2+) product cytoplasm
MNXR101553 1 H+ product cytoplasm
chloride exchange 1 chloride reactant extracellular
Cu2(+) exchange 1 Cu2(+) reactant extracellular
Mn(2+) exchange 1 Mn(2+) reactant extracellular
Zn(2+) exchange 1 Zn(2+) reactant extracellular
Mg(2+) exchange 1 Mg(2+) reactant extracellular
Ca(2+) exchange 1 Ca(2+) reactant extracellular
7 changes: 7 additions & 0 deletions ComplementaryData/modelCuration/Biomass_newRxnMet.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
NewMetName Charged formula Charge compartment KEGG ID CHEBI ID Remark
Ca(2+) [extracellular] Ca 2 extracellular C00076 CHEBI:29108
chloride [extracellular] Cl -1 extracellular C00698 CHEBI:17996
Cu2(+) [extracellular] Cu 2 extracellular C00070 CHEBI:29036
Mn(2+) [extracellular] Mn 2 extracellular C19610 CHEBI:29035
Zn(2+) [extracellular] Zn 2 extracellular C00038 CHEBI:29105
Mg(2+) [extracellular] Mg 2 extracellular C00305 CHEBI:18420
13 changes: 13 additions & 0 deletions ComplementaryData/modelCuration/Biomass_newRxnProp.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
rxnID rev GPR rxn_name_seed EC rxnID_kegg Source;reason
MNXR96437 1 YOL122C Ca(2+) transport bigg:CAt4; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
MNXR96797 1 YNL275W chloride transport bigg:Clt; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
MNXR126350 1 YOL122C Cu2(+) transport rhea:28727; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
MNXR101669 1 YGR191W Mn(2+) transport seed:rxn08946; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
MNXR105278 1 ( YGL255W or YLR130C ) Zn(2+) transport bigg:ZN2t3pp; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
MNXR101553 1 ( GR191W or YOL130W ) Mg(2+) transport bigg:MGt2pp; gRrules come from TCDB, not included in the DBnewAnnotaiton update (PR #142)
chloride exchange 1 chloride exchange
Cu2(+) exchange 1 Cu2(+) exchange
Mn(2+) exchange 1 Mn(2+) exchange
Zn(2+) exchange 1 Zn(2+) exchange
Mg(2+) exchange 1 Mg(2+) exchange
Ca(2+) exchange 1 Ca(2+) exchange
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ MNXR137279 0 Ketol-acid reductoisomerase, mitochondrial seed:rxn13008
MNXR95271 0 pyruvate:pyruvate acetaldehydetransferase (decarboxylating); (S)-2-acetolactate pyruvate-lyase (carboxylating) 2.2.1.6 R00226 rhea:25249
MNXR97523 1 (R)-2,3-dihydroxy-3-methylbutanoate:NADP+ oxidoreductase (isomerizing) 1.1.1.383;1.1.1.86 R04439 rhea:22068
MNXR106779 0 (2R,3S)-3-methylmalate:NAD+ oxidoreductase 1.1.1.-;1.1.1.85 R00994 rhea:32715
MNXR121603 0 malate/β-methylmalate synthase 2.3.3.- metacyc:RXN-18333
MNXR121603 0 malate/beta-methylmalate synthase 2.3.3.- metacyc:RXN-18333
MNXR99136 0 palmitoyl-CoA hydrolase 3.1.2.-;3.1.2.2 rhea:40143
MNXR99175 0 long-chain-fatty-acid---CoA ligase 6.2.1.3 rhea:33651
MNXR100010 0 a-galactosidase (stachyose) 3.2.1.22 seed:rxn02596
Expand Down
21 changes: 21 additions & 0 deletions ComplementaryData/physiology/biomassComposition_Cofactor_Ion.tsv
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
model_id name abundance_mmol/gDW MW_g/mol group reference
s_3880[c] Ca(2+) 2.17E-04 40.08 ion DOI: 10.22161/ijeab/2.2.2
s_3778[c] chloride 1.29E-03 35.45 ion DOI: 10.3103/S106836741702015X
s_4019[c] Cu2(+) 6.59E-04 63.55 ion DOI: 10.22161/ijeab/2.2.2
s_0924[c] iron(2+) 3.04E-05 55.84 ion DOI: 10.22161/ijeab/2.2.2
s_3801[c] Mn(2+) 2.73E-03 54.94 ion DOI: 10.22161/ijeab/2.2.2
s_3822[c] Zn(2+) 7.48E-04 65.39 ion DOI: 10.22161/ijeab/2.2.2
s_1373[c] potassium 3.63E-03 39.1 ion DOI: 10.22161/ijeab/2.2.2
s_1437[c] sodium 3.97E-03 22.99 ion DOI: 10.22161/ijeab/2.2.2
s_4013[c] Mg(2+) 0.001242543 24.3 ion DOI: 10.22161/ijeab/2.2.2
s_1467[c] sulphate 0.02 96.06 ion Forster2003
s_1203[c] NADH 1.5E-04 663.43 cofactor DOI: 10.1016/j.ymben.2013.11.005; Supplementary file
s_1198[c] NAD 2.65E-03 662.43 cofactor DOI: 10.1016/j.ymben.2013.11.005; Supplementary file
s_1212[c] NADPH 2.7E-03 745.4209 cofactor DOI: 10.1016/j.ymben.2013.11.005; Supplementary file
s_1207[c] NADP(+) 5.7E-04 744.4129 cofactor DOI: 10.1016/j.ymben.2013.11.005; Supplementary file
s_0529[c] coenzyme A 1.90E-04 767.5341 cofactor DOI: 10.1016/j.ymben.2013.11.005; Supplementary file
s_1487[c] THF 6.34E-05 445.4292 cofactor DOI: 10.1021/jf048083g
s_1475[c] TDP 0.0000012 425.3144 cofactor DOI:10.1002/jib.293; Figure 6B
s_0687[c] FAD 0.00001 785.5497 cofactor DOI: 10.1002/yea.1897
s_1405[c] riboflavin 0.00099 376.36 cofactor Forster2003
s_3714[c] heme a 0.000001 852.83 cofactor Forster2003
4 changes: 2 additions & 2 deletions ComplementaryScripts/missingFields/addSBOterms.m
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% model = addSBOterms(model)
%
% Benjamín J. Sánchez
% Benjamin J. Sanchez. Last update: 2018-11-26
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

function model = addSBOterms(model)
Expand All @@ -13,7 +13,7 @@
model.metSBOTerms = cell(size(model.mets));
for i = 1:length(model.mets)
metName = model_r.metNames{i};
if ismember(metName,{'biomass','DNA','RNA','protein','carbohydrate','lipid'}) ...
if ismember(metName,{'biomass','DNA','RNA','protein','carbohydrate','lipid','cofactor','ion'}) ...
|| endsWith(metName,' backbone') || endsWith(metName,' chain')
model.metSBOTerms{i} = 'SBO:0000649'; %Biomass
else
Expand Down
237 changes: 237 additions & 0 deletions ComplementaryScripts/modelCuration/addBiomassUpdate.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,237 @@
function model = addBiomassUpdate(model,data)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% addBiomassUpdate
% Adds rxns and metabolites for BiomassUpdate.
% Input: model, Biomass_newRxnMatrix.tsv, Biomass_newRxnProp.tsv,
% Biomass_newRxnMet.tsv.
%
% NOTE: changeGeneAssociation.m is a function from COBRA
%
% Feiran Li 2018-10-23
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Load stoichiometry data:
cd ..
fid = fopen('../ComplementaryData/modelCuration/Biomass_newRxnMatrix.tsv');
newreaction = textscan(fid,'%s %s %s %s %s','Delimiter','\t','HeaderLines',1);
matrix.rxnIDs = newreaction{1};
matrix.metcoef = cellfun(@str2num, newreaction{2});
matrix.metIDs = newreaction{3};
matrix.mettype = newreaction{4};
matrix.metcompartments = newreaction{5};
fclose(fid);

% Load rxn properties data:
fid = fopen('../ComplementaryData/modelCuration/Biomass_newRxnProp.tsv','r');
rev = textscan(fid,'%s %s %s %s %s %s %s','Delimiter','\t','HeaderLines',1);
newrxn.ID = rev{1};
newrxn.Rev = cellfun(@str2num, rev{2});
newrxn.GPR = rev{3};
newrxn.rxnNames = rev{4};
newrxn.rxnECNumbers = rev{5};
newrxn.rxnKEGGID = rev{6};
newrxn.rxnNotes = rev{7};
newrxn.rxnMetaNetXID = newrxn.ID;
for i = 1:length(newrxn.rxnMetaNetXID)
if ~startsWith(newrxn.rxnMetaNetXID{i},'MNXR')
newrxn.rxnMetaNetXID{i} = '';
end
end
newrxn.rxnMetaNetXID = regexprep(newrxn.rxnMetaNetXID,'_cv','');
fclose(fid);

% Change coefficients for reactants:
for i=1:length(matrix.rxnIDs)
if strcmp(matrix.mettype(i),'reactant')
matrix.metcoef(i) = matrix.metcoef(i)*-1;
end
end

% Change compartments:
CONValldata = cat(2,model.compNames,model.comps);
lbracket = ' [' ;
llbracket = '[';
rbrackets = ']';
[m, ~] = size(CONValldata);
for i = 1:m
aa = CONValldata(i,1);
aa = char(aa);
for j=1:length(matrix.rxnIDs)
bb = matrix.metcompartments(j,1);
bb = char(bb);
if strcmp(bb,aa)
matrix.Newcomps(j,1) = CONValldata(i,2);
end
end
end
for i=1:length(matrix.rxnIDs)
matrix.metnames(i) = strcat(matrix.metIDs(i),lbracket,matrix.metcompartments(i),rbrackets);
matrix.Newcomps(i) = strcat(llbracket,matrix.Newcomps(i),rbrackets);
end

% Map mets to model.metnames, get s_index for new mets:
cd otherChanges
for j = 1:length(matrix.metnames)
[~,metindex] = ismember(matrix.metnames(j),model.metNames);
if metindex ~= 0
matrix.mets(j) = model.mets(metindex);
elseif metindex == 0
newID = getNewIndex(model.mets);
matrix.mets(j) = strcat('s_',newID,matrix.Newcomps(j));
model = addMetabolite(model,char(matrix.mets(j)), ...
'metName',matrix.metnames(j));
end
end

% Add metabolite data:
fid = fopen('../../ComplementaryData/modelCuration/Biomass_newRxnMet.tsv');
newmet_annot = textscan(fid,'%s %s %s %s %s %s %s','Delimiter','\t','HeaderLines',1);
newmet.metNames = newmet_annot{1};
newmet.metFormulas = newmet_annot{2};
newmet.metCharges = cellfun(@str2num, newmet_annot{3});
newmet.metKEGGID = newmet_annot{5};
newmet.metChEBIID = newmet_annot{6};
newmet.metMetaNetXID = newmet_annot{7};

fclose(fid);
for i = 1:length(newmet.metNames)
[~,metID] = ismember(newmet.metNames(i),model.metNames);
if metID ~= 0
model.metFormulas{metID} = newmet.metFormulas{i};
model.metCharges(metID) = newmet.metCharges(i);
model.metKEGGID{metID} = newmet.metKEGGID{i};
model.metChEBIID{metID} = newmet.metChEBIID{i};
model.metMetaNetXID{metID} = newmet.metMetaNetXID{i};
model.metNotes{metID} = 'NOTES:added for BiomassUpdate (PR #174)';
end
end

% Add new reactions according to rev ID: Met Coef needs to be a column, not
% a row. Coef should be a double, which was converted at the import section
EnergyResults = {};
MassChargeresults = {};
RedoxResults = {};
if ~isfield(model,'rxnMetaNetXID')
model.rxnMetaNetXID = cell(size(model.rxns));
end
for i = 1:length(newrxn.ID)
cd ../otherChanges
newID = getNewIndex(model.rxns);
j = find(strcmp(matrix.rxnIDs,newrxn.ID{i}));
Met = matrix.mets(j);
Coef = transpose(matrix.metcoef(j));
[model,rxnIndex] = addReaction(model, ['r_' newID],...
'reactionName', newrxn.ID{i},...
'metaboliteList',Met,...
'stoichCoeffList',Coef,...
'reversible',newrxn.Rev(i,1),...
'geneRule',newrxn.GPR{i},...
'checkDuplicate',1);
cd ../modelCuration
[EnergyResults,RedoxResults] = CheckEnergyProduction(model,{['r_' newID]},EnergyResults,RedoxResults);
[MassChargeresults] = CheckBalanceforSce(model,{['r_' newID]},MassChargeresults);
if isempty(rxnIndex)
rxnIndex = strcmp(model.rxns,['r_' newID]);
end
% Add rxn annotation:
model.rxnNames{rxnIndex} = newrxn.rxnNames{i};
model.rxnECNumbers(rxnIndex) = newrxn.rxnECNumbers(i);
model.rxnKEGGID(rxnIndex) = newrxn.rxnKEGGID(i);
model.rxnMetaNetXID(rxnIndex) = newrxn.rxnMetaNetXID(i);
model.rxnNotes{rxnIndex} = 'NOTES:added for BiomassUpdate (PR #174)';
if ~isempty(model.rules{rxnIndex})
model.rxnConfidenceScores(rxnIndex) = 2; %reactions has GPR rules
elseif contains(model.rxnNames(rxnIndex),'exchange')
model.rxnConfidenceScores(rxnIndex) = NaN; %exchange rxns
else
model.rxnConfidenceScores(rxnIndex) = 1; %reactions without gene but needed for modelling
end
end

% add gene standard name for new genes
fid = fopen('../../ComplementaryData/databases/SGDgeneNames.tsv');
yeast_gene_annotation = textscan(fid,'%s %s','Delimiter','\t','HeaderLines',1);
fclose(fid);

geneIndex = zeros(1,1);
for i = 1: length(model.genes)
geneIndex = strcmp(yeast_gene_annotation{1}, model.genes{i});
if sum(geneIndex) == 1 && ~isempty(yeast_gene_annotation{2}{geneIndex})
model.geneNames{i} = yeast_gene_annotation{2}{geneIndex};
else
model.geneNames{i} = model.genes{i};
end
end

% Add protein name for genes
for i = 1:length(model.genes)
model.proteins{i} = strcat('COBRAProtein',num2str(i));
end

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Introduce two PseudoRxn for cofactors and ions
group = unique(data.groups);
for i = 1:length(group)
%get new metID for pseudo mets :ion and cofactor
cd ../otherChanges
metname = [group{i} ' [cytoplasm]'];
[~,index] = ismember(metname,model.metNames);
if index ~= 0
metID = model.mets(index);
elseif index == 0
metID = ['s_' getNewIndex(model.mets) '[c]'];
model = addMetabolite(model,metID, ...
'metName',metname);
end
[~,index] = ismember(metID,model.mets);
model.metNotes{index} = 'NOTES:added for BiomassUpdate (PR #174)';

% Get coefficients for pseudo rxns: ion pseudoreaction, cofactor pseudoreaction
newps.rxnName = {[group{i},' pseudoreaction']};
index = strcmp(group{i},data.groups);
newps.metIDs = data.mets(index);
newps.metcoef = data.abundances(index)*-1;

% introduce two pseudo mets ion [cytoplasm], cofactor [cytoplasm] into the reaction
newps.metIDs = [newps.metIDs;metID];
newps.metcoef = [newps.metcoef;1];
[~,index] = ismember(newps.rxnName,model.rxnNames);
if index == 0
rxnID = ['r_' getNewIndex(model.rxns)];
else
rxnID = model.rxns{index};
end
[model,rxnIndex] = addReaction(model, rxnID,...
'reactionName', char(newps.rxnName),...
'metaboliteList',newps.metIDs,...
'stoichCoeffList',newps.metcoef,...
'reversible',false,...
'checkDuplicate',1);
cd ../modelCuration/
[EnergyResults,RedoxResults] = CheckEnergyProduction(model,{['r_' newID]},EnergyResults,RedoxResults);
[MassChargeresults] = CheckBalanceforSce(model,{['r_' newID]},MassChargeresults);
if isempty(rxnIndex)
rxnIndex = strcmp(model.rxns,rxnID);
end
model.rxnNotes{rxnIndex} = 'NOTES:added for BiomassUpdate (PR #174)';
model.rxnConfidenceScores(rxnIndex) = 1; %needed for modeling
model = rmfield(model,'grRules');
end

% Change original biomass equation
UnusedMets = {'sulphate [cytoplasm]','riboflavin [cytoplasm]', 'heme a [cytoplasm]'};
[~,UnusedMets_index] = ismember(UnusedMets,model.metNames);
AddMets = {'cofactor [cytoplasm]','ion [cytoplasm]'};
[~,AddMets_index] = ismember(AddMets,model.metNames);
biomassRxn = 'r_4041';
[~,biomassRxn_index] = ismember(biomassRxn,model.rxns);
model.S(UnusedMets_index,biomassRxn_index) = 0;
model.S(AddMets_index,biomassRxn_index) = -1;

% Save model:
if isfield(model,'grRules')
model = rmfield(model,'grRules');
end
model = minimal_Y6(model);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
16 changes: 12 additions & 4 deletions ComplementaryScripts/modelCuration/minimal_Y6.m
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,15 @@
'r_2060'; ... % sulphate exchange
'r_1861'; ... % iron exchange, for test of expanded biomass def
'r_1832'; ... % hydrogen exchange
'r_2100'}; % water exchange
'r_2100'; ... % water exchange
'r_4593'; ... % chloride exchange
'r_4595'; ... % Mn(2+) exchange
'r_4596'; ... % Zn(2+) exchange
'r_4597'; ... % Mg(2+) exchange
'r_2049'; ... % sodium exchange
'r_4594'; ... % Cu(2+) exchange
'r_4600'; ... % Ca(2+) exchange
'r_2020' }; % potassium exchange

blockedExchanges = {'r_1663'; ... % bicarbonate exchange
'r_4062'; ... % lipid backbone exchange
Expand All @@ -32,11 +40,11 @@
glucoseExchangeIndex = findRxnIDs(model,glucoseExchange);
BlockedRxnIndex = findRxnIDs(model,blockedExchanges);

if length(uptakeRxnIndexes) ~= 7
error('Not all exchange reactions were found.')
if length(find(uptakeRxnIndexes~= 0)) ~= 15
warning('Not all exchange reactions were found.')
end

model.lb(uptakeRxnIndexes) = -1000;
model.lb(uptakeRxnIndexes(uptakeRxnIndexes~=0)) = -1000;
model.lb(glucoseExchangeIndex) = -1;

model.lb(BlockedRxnIndex) = 0;
Expand Down
Loading