@@ -111,96 +111,92 @@ <h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" sr
1111110039 < span class ="keyword "> else</ span >
1121120040 rxnList=< a href ="convertCharArray.html " class ="code " title ="function inputConverted = convertCharArray(funcInput) "> convertCharArray</ a > (rxnList);
1131130041 < span class ="keyword "> end</ span >
114- 0042
115- 0043 < span class ="comment " > %Allow to set several parameters to the same value </ span >
116- 0044 < span class ="keyword "> if </ span > numel(rxnList)~=numel(params) && numel(params)~=1
117- 0045 EM= < span class =" string " > 'The number of parameter values and the number of reactions must be the same' </ span > ;
118- 0046 < a href =" dispEM.html " class ="code " title =" function dispEM(string,throwErrors,toList,trimWarnings) " > dispEM </ a > (EM);
119- 0047 < span class ="keyword "> end </ span >
120- 0048
121- 0049 < span class ="keyword " > if </ span > length(rxnList)>1
122- 0050 < span class ="keyword "> if </ span > length(paramType)==1
123- 0051 paramType(1:length(rxnList))=paramType;
124- 0052 < span class ="keyword "> end </ span >
125- 0053 < span class ="keyword "> if</ span > length(params )==1
126- 0054 params (1:length(rxnList))=params ;
114+ 0042 < span class =" keyword " > if </ span > isempty(rxnList)
115+ 0043 < span class ="keyword " > return </ span > ;
116+ 0044 < span class ="keyword "> end </ span >
117+ 0045
118+ 0046 < span class ="comment " > %Allow to set several parameters to the same value </ span >
119+ 0047 < span class ="keyword "> if </ span > numel(rxnList)~=numel(params) && numel(params)~=1
120+ 0048 EM= < span class =" string " > 'The number of parameter values and the number of reactions must be the same' </ span > ;
121+ 0049 < a href =" dispEM.html " class ="code " title =" function dispEM(string,throwErrors,toList,trimWarnings) " > dispEM </ a > (EM);
122+ 0050 < span class ="keyword "> end </ span >
123+ 0051
124+ 0052 < span class ="keyword "> if </ span > length(rxnList)>1
125+ 0053 < span class ="keyword "> if</ span > length(paramType )==1
126+ 0054 paramType (1:length(rxnList))=paramType ;
1271270055 < span class ="keyword "> end</ span >
128- 0056 < span class ="keyword "> end </ span >
129- 0057
130- 0058 < span class ="comment " > %Find the indexes for the reactions in rxnList. Do not use getIndexes </ span >
131- 0059 < span class ="comment " > %as we do not want to throw errors if matches fail </ span >
132- 0060 indexes=zeros(numel(rxnList),1);
133- 0061
134- 0062 < span class ="keyword " > for </ span > i=1:numel(rxnList)
135- 0063 index=find(strcmp (rxnList{i},model.rxns ),1);
136- 0064 < span class =" keyword " > if </ span > ~isempty(index)
137- 0065 indexes(i)=index ;
138- 0066 < span class =" keyword " > else </ span >
139- 0067 indexes(i)=-1;
140- 0068 EM=[ < span class =" string " > 'Reaction ' </ span > rxnList{i} < span class =" string " > ' is not present in the reaction list' </ span > ];
141- 0069 < a href =" dispEM.html " class =" code " title =" function dispEM(string,throwErrors,toList,trimWarnings) " > dispEM </ a > (EM,false) ;
142- 0070 < span class =" keyword " > end </ span >
143- 0071 < span class ="keyword " > end </ span >
144- 0072
145- 0073 < span class =" comment " > %Remove the reactions that were not found </ span >
146- 0074 params(indexes==-1)=[];
147- 0075 indexes (indexes==-1)=[];
148- 0076 paramType(indexes==-1)=[];
149- 0077 < span class ="comment "> %Change the parameters </ span >
150- 0078
151- 0079 < span class ="keyword "> if </ span > ~isempty(indexes )
152- 0080 < span class ="keyword "> if</ span > contains (paramType,< span class ="string "> 'obj '</ span > )
153- 0081 model.c=zeros(numel(model.c),1); < span class =" comment " > % parameter is changed, not added </ span >
154- 0082 < span class =" keyword " > end </ span >
155- 0083 < span class ="keyword "> for </ span > j=1:length(paramType)
156- 0084 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'eq '</ span > )
128+ 0056 < span class ="keyword "> if </ span > length(params)==1
129+ 0057 params(1:length(rxnList))=params;
130+ 0058 < span class ="keyword " > end </ span >
131+ 0059 < span class ="keyword " > end </ span >
132+ 0060
133+ 0061 < span class =" comment " > %Find the indexes for the reactions in rxnList. Do not use getIndexes </ span >
134+ 0062 < span class ="comment " > %as we do not want to throw errors if matches fail </ span >
135+ 0063 indexes=zeros(numel (rxnList),1);
136+ 0064
137+ 0065 [Lia,Locb] = ismember(rxnList,model.rxns) ;
138+ 0066 indexes(Lia) = Locb;
139+ 0067 < span class =" keyword " > if </ span > any(~Lia)
140+ 0068 params(~Lia)=[ ];
141+ 0069 indexes(~Lia)=[] ;
142+ 0070 paramType(~Lia)=[];
143+ 0071 < a href =" dispEM.html " class =" code " title =" function dispEM(string,throwErrors,toList,trimWarnings) " > dispEM </ a > ( < span class ="string " > 'Reactions not present in model, will be ignored:' </ span > ,false,rxnLise(~Lia));
144+ 0072 < span class =" keyword " > end </ span >
145+ 0073
146+ 0074 < span class =" comment " > %Change the parameters </ span >
147+ 0075 < span class =" keyword " > if </ span > ~isempty (indexes)
148+ 0076 < span class =" keyword " > if </ span > contains(paramType, < span class =" string " > 'obj' </ span > )
149+ 0077 model.c=zeros(numel(model.c),1); < span class ="comment "> % parameter is changed, not added </ span >
150+ 0078 < span class =" keyword " > end </ span >
151+ 0079 < span class ="keyword "> for </ span > j=1:length(paramType )
152+ 0080 < span class ="keyword "> if</ span > strcmpi (paramType{j} ,< span class ="string "> 'eq '</ span > )
153+ 0081 model.lb(indexes(j))=params(j);
154+ 0082 model.ub(indexes(j))=params(j);
155+ 0083 < span class ="keyword "> end </ span >
156+ 0084 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'lb '</ span > )
1571570085 model.lb(indexes(j))=params(j);
158- 0086 model.ub(indexes(j))=params(j);
159- 0087 < span class ="keyword "> end </ span >
160- 0088 < span class =" keyword " > if </ span > strcmpi(paramType{j}, < span class =" string " > 'lb' </ span > )
161- 0089 model.lb(indexes(j))=params(j);
162- 0090 < span class ="keyword "> end </ span >
163- 0091 < span class =" keyword " > if </ span > strcmpi(paramType{j}, < span class =" string " > 'ub' </ span > )
164- 0092 model.ub(indexes(j))=params(j);
165- 0093 < span class ="keyword "> end </ span >
166- 0094 < span class =" keyword " > if </ span > strcmpi(paramType{j}, < span class ="string " > 'obj' </ span > )
167- 0095 model.c (indexes(j))=params(j);
158+ 0086 < span class =" keyword " > end </ span >
159+ 0087 < span class ="keyword "> if </ span > strcmpi(paramType{j}, < span class =" string " > 'ub' </ span > )
160+ 0088 model.ub(indexes(j))=params(j);
161+ 0089 < span class =" keyword " > end </ span >
162+ 0090 < span class ="keyword "> if </ span > strcmpi(paramType{j}, < span class =" string " > 'obj' </ span > )
163+ 0091 model.c(indexes(j))=params(j);
164+ 0092 < span class =" keyword " > end </ span >
165+ 0093 < span class ="keyword "> if </ span > strcmpi(paramType{j}, < span class =" string " > 'rev' </ span > )
166+ 0094 < span class ="comment " > %Non-zero values are interpreted as reversible </ span >
167+ 0095 model.rev (indexes(j))=params(j)~=0 ;
1681680096 < span class ="keyword "> end</ span >
169- 0097 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'rev'</ span > )
170- 0098 < span class ="comment "> %Non-zero values are interpreted as reversible</ span >
171- 0099 model.rev(indexes(j))=params(j)~=0;
172- 0100 < span class ="keyword "> end</ span >
173- 0101 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'var'</ span > )
174- 0102 < span class ="keyword "> if</ span > params(j) < 0
175- 0103 model.lb(indexes(j)) = params(j) * (1+var/200);
176- 0104 model.ub(indexes(j)) = params(j) * (1-var/200);
177- 0105 < span class ="keyword "> else</ span >
178- 0106 model.lb(indexes(j)) = params(j) * (1-var/200);
179- 0107 model.ub(indexes(j)) = params(j) * (1+var/200);
180- 0108 < span class ="keyword "> end</ span >
181- 0109 < span class ="keyword "> end</ span >
182- 0110 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'unc'</ span > )
183- 0111 < span class ="keyword "> if</ span > isfield(model.annotation,< span class ="string "> 'defaultLB'</ span > )
184- 0112 lb = model.annotation.defaultLB;
185- 0113 < span class ="keyword "> else</ span >
186- 0114 lb = -1000;
187- 0115 < span class ="keyword "> end</ span >
188- 0116 < span class ="keyword "> if</ span > isfield(model.annotation,< span class ="string "> 'defaultUB'</ span > )
189- 0117 ub = model.annotation.defaultUB;
190- 0118 < span class ="keyword "> else</ span >
191- 0119 ub = 1000;
192- 0120 < span class ="keyword "> end</ span >
193- 0121 model.lb(indexes(j)) = lb;
194- 0122 model.ub(indexes(j)) = ub;
195- 0123 < span class ="keyword "> end</ span >
196- 0124 < span class ="keyword "> end</ span >
197- 0125 < span class ="keyword "> end</ span >
198- 0126 < span class ="keyword "> if</ span > any(ismember(paramType,{< span class ="string "> 'lb'</ span > ,< span class ="string "> 'ub'</ span > ,< span class ="string "> 'unc'</ span > }))
199- 0127 invalidBound = model.lb(indexes) > model.ub(indexes);
200- 0128 < span class ="keyword "> if</ span > any(invalidBound)
201- 0129 error([< span class ="string "> 'Invalid set of bounds for reaction(s): '</ span > , strjoin(model.rxns(indexes(invalidBound)),< span class ="string "> ', '</ span > ), < span class ="string "> '.'</ span > ])
202- 0130 < span class ="keyword "> end</ span >
203- 0131 < span class ="keyword "> end</ span > </ pre > </ div >
169+ 0097 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'var'</ span > )
170+ 0098 < span class ="keyword "> if</ span > params(j) < 0
171+ 0099 model.lb(indexes(j)) = params(j) * (1+var/200);
172+ 0100 model.ub(indexes(j)) = params(j) * (1-var/200);
173+ 0101 < span class ="keyword "> else</ span >
174+ 0102 model.lb(indexes(j)) = params(j) * (1-var/200);
175+ 0103 model.ub(indexes(j)) = params(j) * (1+var/200);
176+ 0104 < span class ="keyword "> end</ span >
177+ 0105 < span class ="keyword "> end</ span >
178+ 0106 < span class ="keyword "> if</ span > strcmpi(paramType{j},< span class ="string "> 'unc'</ span > )
179+ 0107 < span class ="keyword "> if</ span > isfield(model.annotation,< span class ="string "> 'defaultLB'</ span > )
180+ 0108 lb = model.annotation.defaultLB;
181+ 0109 < span class ="keyword "> else</ span >
182+ 0110 lb = -1000;
183+ 0111 < span class ="keyword "> end</ span >
184+ 0112 < span class ="keyword "> if</ span > isfield(model.annotation,< span class ="string "> 'defaultUB'</ span > )
185+ 0113 ub = model.annotation.defaultUB;
186+ 0114 < span class ="keyword "> else</ span >
187+ 0115 ub = 1000;
188+ 0116 < span class ="keyword "> end</ span >
189+ 0117 model.lb(indexes(j)) = lb;
190+ 0118 model.ub(indexes(j)) = ub;
191+ 0119 < span class ="keyword "> end</ span >
192+ 0120 < span class ="keyword "> end</ span >
193+ 0121 < span class ="keyword "> end</ span >
194+ 0122 < span class ="keyword "> if</ span > any(ismember(paramType,{< span class ="string "> 'lb'</ span > ,< span class ="string "> 'ub'</ span > ,< span class ="string "> 'unc'</ span > }))
195+ 0123 invalidBound = model.lb(indexes) > model.ub(indexes);
196+ 0124 < span class ="keyword "> if</ span > any(invalidBound)
197+ 0125 error([< span class ="string "> 'Invalid set of bounds for reaction(s): '</ span > , strjoin(model.rxns(indexes(invalidBound)),< span class ="string "> ', '</ span > ), < span class ="string "> '.'</ span > ])
198+ 0126 < span class ="keyword "> end</ span >
199+ 0127 < span class ="keyword "> end</ span > </ pre > </ div >
204200< hr > < address > Generated by < strong > < a href ="http://www.artefact.tk/software/matlab/m2html/ " title ="Matlab Documentation in HTML "> m2html</ a > </ strong > © 2005</ address >
205201</ body >
206202</ html >
0 commit comments