-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
(Updated) to-do list
- Fitting spec design #74 Design a Python/PINTS based "fitting spec" that will work for a sine wave fit, i.e. some kind of interface through which a python script can:
- Specify required protocol outputs
- could be ontology term + units,
- but what about post-processed "columns", e.g.
tau
vsV
- Epic 7: metadata annotation tools #63 obtain data (CSV columns) loaded by FC for the specified outputs
- obtain a runnable "protocol" object, that provides the specified outputs
- specify required model parameters / adjustables
- Create boundaries or priors
- on the parameters
- on other model variables (e.g. rates)
- Tweak simulation properties
- solver tolerance
- random seed?
- define an
ErrorMeasure
orLogPDF
in PINTS - Run an optimisation or inference problem and store the results
- Create a
Controller
, passing in the requiredmethod
- Tweak the method, if required! E.g.
controller.sampler().set_special_setting(123)
- Run an somehow get results that WL can interpret again
- Create a
- Create something to run the fits
- ??? See below
- Update WL front-end for fitting
- Place to specify fits
- Place to run fits and see results
- Initially don't give anyone permission to run them, eventually add sandboxing to whatever it is that runs the fits (Work out sandboxing for fitting (and python script post-processing) weblab-fc#185)
Things that need to be captured by a fitting spec are:
- Fitting method, priors, noise model
- Give (distribution+) bounds on e.g. "a rate parameter" "for" "Ikr", "b rate parameter" "for" "Ikr"
- The "for" "Ikr" bit will be done by filtering using the dependency tree, rather than annotating all parameters by which current they're for. So you annotate all "a rate parameter" variables, etc., and the Ikr variable, then use the extended dependencies for Ikr to filter all "a" variables to just the ones of interest.
- Need to check which bqbiol predicate to use for “a rate parameter”: is? isVersionOf? hasProperty? isProperty? Something else?
- Probably safer to have 4 terms: "forward rate a parameter", "forward rate b parameter", "backward rate a parameter", "backward rate b parameter"
- Mapping from prediction output to dataset column - possibly automatic if prediction outputs are annotated? (i.e. add oxmeta annotations for protocol output specifications)
- Boundaries / constraints
- E.g. say all "forward rate" "for" "Ikr" should be in [k_min, k_max]
- So need “forward rate” and “backward rate” terms
- E.g. say all "forward rate" "for" "Ikr" should be in [k_min, k_max]
- Optional RNG seed?
See also #74.