extractSubNetwork

PURPOSE ^

extractSubNetwork Extract subnetwork model

SYNOPSIS ^

function subModel = extractSubNetwork(model,rxnNames,metNames)

DESCRIPTION ^

extractSubNetwork Extract subnetwork model

 subModel = extractSubNetwork(model,rxnNames,metNames)

INPUTS
 model     COBRA model structure
 rxnNames  Reaction list for the subnetwork to be extracted

OPTIONAL INPUTS
 metNames  Metabolite list for the subnetwork to be extracted

OUTPUT
 subModel  COBRA model of subnetwork

 Markus Herrgard 12/11/06

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function subModel = extractSubNetwork(model,rxnNames,metNames)
0002 %extractSubNetwork Extract subnetwork model
0003 %
0004 % subModel = extractSubNetwork(model,rxnNames,metNames)
0005 %
0006 %INPUTS
0007 % model     COBRA model structure
0008 % rxnNames  Reaction list for the subnetwork to be extracted
0009 %
0010 %OPTIONAL INPUTS
0011 % metNames  Metabolite list for the subnetwork to be extracted
0012 %
0013 %OUTPUT
0014 % subModel  COBRA model of subnetwork
0015 %
0016 % Markus Herrgard 12/11/06
0017 
0018 selRxns = ismember(model.rxns,rxnNames);
0019 subS = model.S(:,selRxns);
0020 if (nargin < 3)
0021     selMets = ~all(subS == 0,2);
0022 else
0023     selMets = ismember(model.mets,metNames);
0024 end
0025 
0026 subS = subS(selMets,:);
0027 
0028 subModel.S = subS;
0029 subModel.rxns = model.rxns(selRxns);
0030 subModel.mets = model.mets(selMets);
0031 if (isfield(model,'b'))
0032     subModel.b = model.b(selMets);
0033 end
0034 if (isfield(model,'metNames'))
0035     subModel.metNames = model.metNames(selMets);
0036 end
0037 if (isfield(model,'metFormulas'))
0038     subModel.metFormulas = model.metFormulas(selMets);
0039 end
0040 if (isfield(model,'description'))
0041     subModel.description = model.description;
0042 end
0043 if (isfield(model,'rev'))
0044     subModel.rev = model.rev(selRxns);
0045 end
0046 if (isfield(model,'lb'))
0047     subModel.lb = model.lb(selRxns);
0048 end 
0049 if (isfield(model,'ub'))
0050     subModel.ub = model.ub(selRxns);
0051 end
0052 if (isfield(model,'c'))
0053     subModel.c = model.c(selRxns);
0054 end
0055 if (isfield(model,'genes'))
0056    newRxnGeneMat = model.rxnGeneMat(selRxns,:); 
0057    selGenes = sum(newRxnGeneMat)' > 0;
0058    subModel.rxnGeneMat = newRxnGeneMat(:,selGenes);
0059    subModel.genes = model.genes(selGenes);
0060    subModel.grRules = model.grRules(selRxns);
0061 end
0062 if (isfield(model,'geneNames'))
0063     subModel.geneNameRules = model.geneNameRules(selRxns);
0064     subModel.geneNames = model.geneNames(selGenes);
0065 end
0066 if (isfield(model,'subSystems'))
0067     subModel.subSystems = model.subSystems(selRxns);
0068 end

Generated on Thu 21-Jun-2012 15:39:23 by m2html © 2003