Skip to content

Commit 238a6ff

Browse files
committed
closes #164
1 parent d603a01 commit 238a6ff

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

petab_select/model.py

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -561,14 +561,18 @@ def to_petab(
561561
set_estimated_parameters = True
562562

563563
if set_estimated_parameters:
564-
required_estimates = {
565-
parameter_id
566-
for parameter_id, value in self.parameters.items()
567-
if value == ESTIMATE
568-
}
569-
missing_estimates = required_estimates.difference(
564+
# Check that estimates are provided for all estimated parameters
565+
required_estimates = set()
566+
for parameter_id in petab_problem.x_ids:
567+
if parameter_id in self.parameters:
568+
if self.parameters[parameter_id] == ESTIMATE:
569+
required_estimates.add(parameter_id)
570+
elif parameter_id in petab_problem.x_free_ids:
571+
required_estimates.add(parameter_id)
572+
573+
missing_estimates = sorted(required_estimates.difference(
570574
self.estimated_parameters
571-
)
575+
))
572576
if missing_estimates:
573577
raise ValueError(
574578
"Try again with `set_estimated_parameters=False`, because "
@@ -580,17 +584,18 @@ def to_petab(
580584
# If the parameter is to be estimated.
581585
if parameter_value == ESTIMATE:
582586
petab_problem.parameter_df.loc[parameter_id, ESTIMATE] = 1
583-
if set_estimated_parameters:
584-
petab_problem.parameter_df.loc[
585-
parameter_id, NOMINAL_VALUE
586-
] = self.estimated_parameters[parameter_id]
587587
# Else the parameter is to be fixed.
588588
else:
589589
petab_problem.parameter_df.loc[parameter_id, ESTIMATE] = 0
590590
petab_problem.parameter_df.loc[parameter_id, NOMINAL_VALUE] = (
591591
parameter_string_to_value(parameter_value)
592592
)
593593

594+
if set_estimated_parameters:
595+
petab_problem.parameter_df.update({
596+
NOMINAL_VALUE: self.estimated_parameters,
597+
})
598+
594599
petab_yaml = None
595600
if output_path is not None:
596601
output_path = Path(output_path)

0 commit comments

Comments
 (0)