





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. ftINIT additionally 0028 %defaults Threads to 1 (single-threaded Gurobi) for determinism; 0029 %set Threads here to override (0 = use all cores). 0030 AbsMIPGaps %If the objective is close to zero, a percentage of that is very small. 0031 %Therefore, also set an absolut value for this (typically 10 or 20). 0032 %For practical reasons, the first number is not used 0033 end 0034 methods 0035 function obj = INITStepDesc(posRevOff_, AllowMetSecr_, howToUsePrevResults_, rxnsToIgnoreMask_, metsToIgnore_, MILPParams_, absMIPGaps_) 0036 if nargin > 0 0037 obj.PosRevOff = posRevOff_; 0038 else 0039 obj.PosRevOff = false; 0040 end 0041 if nargin > 1 0042 obj.AllowMetSecr = AllowMetSecr_; 0043 else 0044 obj.AllowMetSecr = false; 0045 end 0046 if nargin > 2 0047 obj.HowToUsePrevResults = howToUsePrevResults_; 0048 else 0049 obj.HowToUsePrevResults = 'essential'; 0050 end 0051 if nargin > 3 0052 obj.RxnsToIgnoreMask = rxnsToIgnoreMask_; 0053 else 0054 obj.RxnsToIgnoreMask = [1;0;0;0;0;0;0;0]; 0055 end 0056 if nargin > 4 0057 obj.MetsToIgnore = metsToIgnore_; 0058 else 0059 obj.MetsToIgnore = [1;0;0;0;0;0;0;0]; 0060 end 0061 if nargin > 5 0062 obj.MILPParams = MILPParams_; 0063 else 0064 params = struct(); 0065 params.TimeLimit = 5000; 0066 params.MIPGap = 0.0004; 0067 obj.MILPParams = {params}; 0068 end 0069 0070 if nargin > 6 0071 obj.AbsMIPGaps = absMIPGaps_; 0072 else 0073 obj.AbsMIPGaps = 10; 0074 end 0075 end 0076 end 0077 end