Skip to content

Commit 71a7a86

Browse files
committed
Handle non-fitted parameters, including pre-defined standard errors
1 parent 85c29e4 commit 71a7a86

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

pyenzyme/thinlayers/psyces.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -232,7 +232,16 @@ def optimize(self, method="leastsq"):
232232

233233
self.parameters = parameters
234234

235-
return self.minimizer.minimize(method=method)
235+
result = self.minimizer.minimize(method=method)
236+
# add standard error if available in enzmldoc and if param.fit=False
237+
# (e.g. if parameter was fitted before)
238+
for param in self.enzmldoc.parameters:
239+
if not param.fit and param.stderr is not None:
240+
if param.symbol in result.params:
241+
result.params[param.symbol].stderr = param.stderr
242+
243+
return result
244+
236245

237246
def write(self) -> v2.EnzymeMLDocument:
238247
"""
@@ -286,8 +295,9 @@ def _initialize_parameters(self):
286295
for param in self.enzmldoc.parameters:
287296
# Build kwargs dictionary with conditional assignments
288297
kwargs = {
289-
**({"min": param.lower_bound} if param.lower_bound is not None else {}),
290-
**({"max": param.upper_bound} if param.upper_bound is not None else {}),
298+
**({'min': param.lower_bound} if param.lower_bound is not None else {}),
299+
**({'max': param.upper_bound} if param.upper_bound is not None else {}),
300+
**({'vary': param.fit}),
291301
}
292302

293303
# Determine parameter value

0 commit comments

Comments
 (0)