Open arrjon opened 1 month ago
maybe @dweindl can help here?
maybe @dweindl can help here?
I am not too familiar with either AggregatedObjective
or pypesto.visualize.model_fit
, but I agree that it should either work, or raise an informative error.
the amici model is not available by objective.amici_model
That makes sense, because often AggregatedObjective
won't have only a single model (https://github.com/ICB-DCM/pyPESTO/issues/439).
(I already fixed that issue in the branch
visualize_aggregated
by adding a new property to theAggregatedObjective
)
I would rather handle AggregatedObjective
separately in the visualization code instead of adding amici_model
to AggregatedObjective
, since there will probably be multiple models.
I would rather handle
AggregatedObjective
separately in the visualization code instead of addingamici_model
toAggregatedObjective
, since there will probably be multiple models.
Okay, I thought that AggregatedObjective
is usually an AmiciObjective
and NegLogPriors
and not multiple models. This makes it rather complicated to write a general visualization function.
I don't know how it's currently used, but one of the goals would be using it with PEtab problems comprising multiple models (https://github.com/ICB-DCM/pyPESTO/issues/439) and I wouldn't add anything that will complicate this.
I think it's nevertheless possible to provide some meaningful visualizations. Just iterate over the objectives and visualize what's possible and give a warning if any of those cannot be handled.
Bug description The functions available in
pypesto.visualize.model_fit
cannot work with anAggregatedObjective
and hence fail. There are two reasons:visualize_aggregated
by adding a new property to theAggregatedObjective
)pypesto_problem.objective(x, return_dict=True)
does return emptyrdatas
. (this I could not fix right away)Expected behavior The visuslization routines should still work properly. Also I would expect
pypesto_problem.objective(x, return_dict=True)
to return non emptyrdatas
. Callingpypesto_problem.objective._objectives[0](x, return_dict=True)
instead works and does return non emptyrdatas
.To reproduce I attached a minimal example using the Blasi model and PeTab. minimal example.zip
Environment
pypesto
version: branchvisualize_aggregated