0001
0002
0003
0004
0005
0006
0007 model=importExcelModel('smallYeast.xlsx',true);
0008
0009
0010
0011 model=setParam(model,'ub',{'glcIN' 'o2IN'},[1 0]);
0012
0013
0014 model=setParam(model,'obj',{'ATPX'},1);
0015
0016
0017 sol=solveLP(model);
0018
0019
0020
0021 printFluxes(model,sol.x,false);
0022
0023
0024
0025
0026 model=setParam(model,'ub',{'glcIN' 'o2IN'},[1 1000]);
0027 model=setParam(model,'obj',{'ethOUT'},1);
0028 sol=solveLP(model);
0029 fprintf(['Yield of ethanol is ' num2str(sol.f) ' mol/mol\n']);
0030 model=setParam(model,'obj',{'acOUT'},1);
0031 sol=solveLP(model);
0032 fprintf(['Yield of acetate is ' num2str(sol.f) ' mol/mol\n']);
0033 model=setParam(model,'obj',{'glyOUT'},1);
0034 sol=solveLP(model);
0035 fprintf(['Yield of glycerol is ' num2str(sol.f) ' mol/mol\n']);
0036 model=setParam(model,'obj',{'biomassOUT'},1);
0037 sol=solveLP(model);
0038 fprintf(['Yield of biomass is ' num2str(sol.f) '/h\n']);
0039
0040
0041
0042 solA=solveLP(model);
0043 model=setParam(model,'ub',{'o2IN'},0.5);
0044 solB=solveLP(model);
0045
0046
0047
0048 load 'pathway.mat' pathway;
0049 drawMap('Aerobic vs Anaerobic',pathway,model,solA.x,solB.x,[],'mapFBA.pdf',10^-5);
0050
0051
0052
0053 model=setParam(model,'eq',{'o2IN'},0);
0054 model=setParam(model,'obj',{'biomassOUT'},1);
0055 sol=solveLP(model);
0056 printFluxes(model,sol.x,true);
0057
0058
0059
0060
0061 [genes, fluxes, originalGenes, details]=findGeneDeletions(model,'sgd','fba');
0062
0063
0064 I=getIndexes(model,{'biomassOUT'},'rxns');
0065 J=getIndexes(model,{'glyOUT'},'rxns');
0066
0067 okSolutions=find(fluxes(I,:)>10^-2);
0068 [maxGlycerol, J]=max(fluxes(J,okSolutions));
0069 fprintf(['Glycerol production is ' num2str(maxGlycerol) ' after deletion of ' originalGenes{genes(okSolutions(J),:)} '\n']);
0070
0071
0072
0073 model2=setParam(model,'eq',{'ZWF'},0);
0074 sol2=solveLP(model2);
0075 drawMap('ZWF1 deletion vs WT',pathway,model,sol2.x,sol.x,[],'mapZWF.pdf',10^-5);
0076 followChanged(model,sol2.x,sol.x, 10, 10^-2, 0,{'NADPH' 'NADH' 'NAD' 'NADP'});
0077
0078
0079
0080 model=setParam(model,'lb',{'acOUT' 'biomassOUT' 'co2OUT' 'ethOUT' 'glyOUT' 'glcIN' 'o2IN' 'ethIN'},[0 0.67706 22.4122 19.0946 1.4717 15 1.6 0]*0.9999);
0081 model=setParam(model,'ub',{'acOUT' 'biomassOUT' 'co2OUT' 'ethOUT' 'glyOUT' 'glcIN' 'o2IN' 'ethIN'},[0 0.67706 22.4122 19.0946 1.4717 15 1.6 0]*1.0001);
0082
0083
0084 model2=model;
0085 I=getIndexes(model,getExchangeRxns(model),'rxns');
0086 model2.lb(I)=0;
0087 model2.ub(I)=1000;
0088
0089
0090 model2=setParam(model2,'eq',{'ZWF'},0);
0091
0092
0093 [fluxA, fluxB, flag]=qMOMA(model,model2);
0094 drawMap('ZWF deletion vs wild type',pathway,model,fluxB,fluxA,[],'mapMOMA.pdf',10^-5);
0095
0096
0097
0098
0099
0100
0101
0102
0103 [orfs, pvalues]=textread('expression.txt','%s%f');
0104 repMets=reporterMetabolites(model,orfs,pvalues);
0105 [I, J]=sort(repMets.metPValues);
0106
0107 fprintf('TOP 10 REPORTER METABOLITES:\n');
0108 for i=1:min(numel(J),10)
0109 fprintf([repMets.mets{J(i)} '\t' num2str(I(i)) '\n']);
0110 end
0111
0112
0113 mets=ismember(model.mets,repMets.mets(J(1:10)));
0114 [~, I]=find(model.S(mets,:));
0115 pathway=trimPathway(pathway, model.rxns(I), true);
0116 drawMap('Reactions involving the top 10 Reporter Metabolites',pathway,model,ones(numel(model.rxns),1),zeros(numel(model.rxns),1),[],'mapRM.pdf',10^-5);