0001 classdef INITStepDesc 0002 % Describes a step in the ftINIT algorithm. A cell array of objects of this 0003 % class is used as input to ftINIT to specify how the algorithm should be run. 0004 properties 0005 PosRevOff 0006 AllowMetSecr 0007 HowToUsePrevResults %'ignore', 'exclude', 'essential' 0008 RxnsToIgnoreMask %Specifies reactions to leave outside the problem in 0009 %the MILP. 0010 % [b1,b2,b3,b4,b5,b6,b7,b8], bx is either 0 or 1, 0011 % where 1 means that the group is excluded. 0012 % b1 - Exchange rxns 0013 % b2 - Import rxns without GPRs (from s into the cell) 0014 % b3 - Simple transport reactions without GPRs (moves one metabolite between compartments) 0015 % b4 - Advanced transport reactions without GPRs (moves metabolites between compartments, more complex function such as antiporter) 0016 % b5 - Spontaneous reactions 0017 % b6 - Reactions in the s compartment without GPRs 0018 % b7 - Customly specified rxns (sent in when generating prepData) 0019 % b8 - All rxns without GPRs 0020 0021 MetsToIgnore % Structure describing mets that can be removed from the model 0022 % before running ftINIT, such as water etc. 0023 % .simpleMets 0024 % .mets Names of metabolites to remove 0025 % .compsToKeep Compartments for which metabolites should be kept. 0026 MILPParams %Cell array of MILPparams - dictates how many iterations that will be run in this step. 0027 %Typically, MIPGap and TimeLimit is specified 0028 AbsMIPGaps %If the objective is close to zero, a percentage of that is very small. 0029 %Therefore, also set an absolut value for this (typically 10 or 20). 0030 %For practical reasons, the first number is not used 0031 end 0032 methods 0033 function obj = INITStepDesc(posRevOff_, AllowMetSecr_, howToUsePrevResults_, rxnsToIgnoreMask_, metsToIgnore_, MILPParams_, absMIPGaps_) 0034 if nargin > 0 0035 obj.PosRevOff = posRevOff_; 0036 else 0037 obj.PosRevOff = false; 0038 end 0039 if nargin > 1 0040 obj.AllowMetSecr = AllowMetSecr_; 0041 else 0042 obj.AllowMetSecr = false; 0043 end 0044 if nargin > 2 0045 obj.HowToUsePrevResults = howToUsePrevResults_; 0046 else 0047 obj.HowToUsePrevResults = 'essential'; 0048 end 0049 if nargin > 3 0050 obj.RxnsToIgnoreMask = rxnsToIgnoreMask_; 0051 else 0052 obj.RxnsToIgnoreMask = [1;0;0;0;0;0;0;0]; 0053 end 0054 if nargin > 4 0055 obj.MetsToIgnore = metsToIgnore_; 0056 else 0057 obj.MetsToIgnore = [1;0;0;0;0;0;0;0]; 0058 end 0059 if nargin > 5 0060 obj.MILPParams = MILPParams_; 0061 else 0062 params = struct(); 0063 params.TimeLimit = 5000; 0064 params.MIPGap = 0.0004; 0065 obj.MILPParams = {params}; 0066 end 0067 0068 if nargin > 6 0069 obj.AbsMIPGaps = absMIPGaps_; 0070 else 0071 obj.AbsMIPGaps = 10; 0072 end 0073 end 0074 end 0075 end