SciML / Catalyst.jl

Chemical reaction network and systems biology interface for scientific machine learning (SciML). High performance, GPU-parallelized, and O(1) solvers in open source software.
https://docs.sciml.ai/Catalyst/stable/
Other
454 stars 74 forks source link

Separate inverse problem documentation section, and expanded documentation for these #672

Closed TorkelE closed 9 months ago

TorkelE commented 12 months ago

I have been disucssing with Sebastian at https://github.com/sebapersson/PEtab.jl/issues/61 regarding direct integration between Catalyst and PEtab.jl for parameter calibration. I think we quite soon should be able to provide a relatively straightforward interface to the user, and I want to write a tutorial of this.

If so, I was thinking it would make sense to split of the inverse problem stuff into its own section (We currently have a single page on this, under "Catalyst application"). With time, we could provide guidelines for how to combine with DiffEqParamEstim, SciML/Optimization, PEtab.jl, and Turing.

TorkelE commented 12 months ago

The https://github.com/SciML/Catalyst.jl/pull/674 PR splits of an "Inverse Problem" documentation section.

Currently, this is my plan for documentation to add to it:

Maybe also something more general about parameter fitting for Jump or SDE systems? We should also incorporate https://github.com/SciML/Catalyst.jl/pull/655/files somewhere. I am also thinking of moving https://docs.sciml.ai/Catalyst/stable/catalyst_applications/parameter_estimation/ to "Example Networks" (or Exampel applications), and then simply linking that tutorial in one of the above mentioned ones).

isaacsas commented 12 months ago

My main comment would be to first show how to do this within SciML tooling before adding tutorials that use non-SciML packages (i.e. just in the order of presentation of the options). We could also use sensitivity analysis examples somewhere.

You could make the current parameter estimation tutorial the first inverse problem example.

TorkelE commented 12 months ago

I've added sensitivity analysis.

Depending on how PEtab.jl turns out, I'm thinking of making it the go-to recommendation for doing parameter calibration/fitting (since it has an easier to use and has a more complete interface than SciML/Optimization), with SciML/Optimization's advantage being some additional flexibility for advanced users (hence the order). PEtab.jl is also mainly an extension of SciML stuff already. Happy to change the order though.

For each of these cases I would simply just go through all the functionality/options. Then, additional examples of how they are actually being used moved to "Example Networks" (possibly renamed to "Examples" or something, but that is a later point).

TorkelE commented 11 months ago

Also, out of curiosity, is there a dogma for what to call the parameter fitting/calibration/estimation process? I have seen al thrown around, and am not sure if some is more correct than others.

ChrisRackauckas commented 11 months ago

No, those are used interchangeably.

TorkelE commented 9 months ago

The split has been made and tutorials are underway for various features. Further tutorials (e.g. UDEs for CRNs) will be created once they are ready.