diff --git a/petab_select/model.py b/petab_select/model.py index a22d17f..e76793a 100644 --- a/petab_select/model.py +++ b/petab_select/model.py @@ -551,16 +551,21 @@ def to_petab( if set_estimated_parameters is None and self.estimated_parameters: set_estimated_parameters = True - if set_estimated_parameters and ( - missing_parameter_estimates := set(self.parameters).difference( + if set_estimated_parameters: + required_estimates = { + parameter_id + for parameter_id, value in self.parameters.items() + if value == ESTIMATE + } + missing_estimates = required_estimates.difference( self.estimated_parameters ) - ): - raise ValueError( - "Try again with `set_estimated_parameters=False`, because " - "some parameter estimates are missing. Missing estimates for: " - f"`{missing_parameter_estimates}`." - ) + if missing_estimates: + raise ValueError( + "Try again with `set_estimated_parameters=False`, because " + "some parameter estimates are missing. Missing estimates for: " + f"`{missing_estimates}`." + ) for parameter_id, parameter_value in self.parameters.items(): # If the parameter is to be estimated. diff --git a/test/cli/input/model.yaml b/test/cli/input/model.yaml index dcaaa5a..7cda4c4 100644 --- a/test/cli/input/model.yaml +++ b/test/cli/input/model.yaml @@ -1,10 +1,16 @@ -- criteria: {} +- model_subspace_id: M + model_subspace_indices: + - 0 + - 1 + - 1 + criteria: {} + model_hash: M-011 + model_subspace_petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml + estimated_parameters: + k2: 0.15 + k3: 0.0 model_id: model parameters: k1: 0.2 k2: estimate k3: estimate - estimated_parameters: - k2: 0.15 - k3: 0.0 - petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml diff --git a/test/cli/input/models.yaml b/test/cli/input/models.yaml index 06aa393..b6daa42 100644 --- a/test/cli/input/models.yaml +++ b/test/cli/input/models.yaml @@ -1,27 +1,29 @@ -- criteria: {} - model_id: model_1 - model_subspace_id: M +- model_subspace_id: M model_subspace_indices: - 0 - 1 - 1 + criteria: {} + model_hash: M-011 + model_subspace_petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml + estimated_parameters: + k2: 0.15 + k3: 0.0 + model_id: model_1 parameters: k1: 0.2 k2: estimate k3: estimate - estimated_parameters: - k2: 0.15 - k3: 0.0 - petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml -- criteria: {} - model_id: model_2 - model_subspace_id: M +- model_subspace_id: M model_subspace_indices: - 1 - 1 - 0 + criteria: {} + model_hash: M-110 + model_subspace_petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml + model_id: model_2 parameters: k1: estimate k2: estimate k3: 0 - petab_yaml: ../../../doc/examples/model_selection/petab_problem.yaml diff --git a/test/cli/test_cli.py b/test/cli/test_cli.py index 0a4dc34..ccf015e 100644 --- a/test/cli/test_cli.py +++ b/test/cli/test_cli.py @@ -55,7 +55,6 @@ def test_model_to_petab( ], ) - print(result.stdout) # The new PEtab problem YAML file is output to stdout correctly. assert ( result.stdout == f'{base_dir / "output" / "model" / "problem.yaml"}\n'