Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Noise Model to Bioscrape Inference #62

Open
WilliamIX opened this issue Sep 16, 2020 · 1 comment
Open

Add Noise Model to Bioscrape Inference #62

WilliamIX opened this issue Sep 16, 2020 · 1 comment
Assignees
Labels
enhancement New feature or request Inference Issues Pertaining to Bioscrape Inference, Parameter Identificaiton, and System Identification

Comments

@WilliamIX
Copy link
Collaborator

The following is a very simple and easy way to add a noise model to Bioscrape inference so cost functions are actually probabilities.

Allow two noise models, normal and log-normal (distribution types we should already have built in cython) to be applied at every experimental point. The probability of a data point d_t being produced by a trajectory point x_t given parameters k is: NoiseDist(d_t mean = x_t, variance = v). Use a constant variance for all points.

The likelihood function of parameters k is then L(k) = sum_t -log NoiseDist(d_t, mean = x_t, variance = v).

@sclamons can you confirm I am doing this correctly?

@WilliamIX WilliamIX added the Inference Issues Pertaining to Bioscrape Inference, Parameter Identificaiton, and System Identification label Sep 16, 2020
@sclamons
Copy link
Collaborator

This is correct.

An aside, for future thought:

An implicit assumption here is that the real trajectory of the measured system is exactly the one given by your ODE (or whatever other simulation you use), and that the only source of error is a measurement error around that. That's good enough if you want a point-estimate of your data, but can be hard to fit.

Another kind of cost function uses a hierarchical model, where the parameters of your system are allowed to vary, and you estimate (for simple priors) a) the point estimate of your parameters, b) the variance of each of your parameters, and c) the variance added by measurement error. This has natural physical interpretations -- e.g., temperatures could be slightly different, growth media could be slightly different, internal state of the first cell could be slightly different, and all of these things can change the values of parameters like "rate of transcription". Hierarchical modeling is probably closer to what actually produces data, and it will fit most data better, but it's more expensive to compute and more complex to reason about.

All this is to say that it would be really nice to add hierarchical modeling options, but that can come further down the road.

@ayush9pandey ayush9pandey added the enhancement New feature or request label Sep 17, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Inference Issues Pertaining to Bioscrape Inference, Parameter Identificaiton, and System Identification
Projects
None yet
Development

No branches or pull requests

3 participants