Skip to content

Epic 4: Develop fitting spec & implement it using FC+PINTS #60

@jonc125

Description

@jonc125

(Updated) to-do list

  1. 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 vs V
  • 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 or LogPDF in PINTS
  • Run an optimisation or inference problem and store the results
    • Create a Controller, passing in the required method
    • Tweak the method, if required! E.g. controller.sampler().set_special_setting(123)
    • Run an somehow get results that WL can interpret again
  1. Create something to run the fits
  1. Update WL front-end for fitting

Things that need to be captured by a fitting spec are:

  1. 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"
  2. Mapping from prediction output to dataset column - possibly automatic if prediction outputs are annotated? (i.e. add oxmeta annotations for protocol output specifications)
  3. 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
  4. Optional RNG seed?

See also #74.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions