How to encode observable which is a change from baseline? #600
-
|
Hi all, I have a lot of fold change data relative to baseline, i.e. time 0. I.e. I have a parameter p in the model and want an observable p_change = p/p[t=0]? These fold changes against baseline are very common in data. What is the best way to work with this in PeTab? Best Matthias |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
|
Hi Matthias, I think in PEtab v1 this will be a bit of a hack - in PEtab v2 this will be easier. What I could imagine could work: Adding some pre-equilibration indicator parameter Conditions table:
And then have an event in the model, that triggers if Best |
Beta Was this translation helpful? Give feedback.
-
|
Good point. So this should work with something along the lines of: experiments table:
conditions table:
I.e. I would run a pre-equilibration and then assign the steady state value to the constant parameter p0. I then add a pre-simulation so I can plot my fold change (as 1.0) and compare against values in the time [-10, 0). Then I apply the changes. |
Beta Was this translation helpful? Give feedback.
-
|
The general issue with fold change data is that even if the measurement noise distribution for p[t=0] and and p[t] is simple, the noise distribution for the ratio is rather complicated, see e.g. https://doi.org/10.1049/syb2.12055. I would suggest to consider the use of the alternative observables y[t=0] = sp[t=0] and y[t] = sp[t] with a scaling factor s which needs to be estimated. That circumvents issue with the noise model. The scaling factor s can for many noise distributions be calculated analytically (https://doi.org/10.1093/bioinformatics/bty514). A support for this is provided in pyPESTO and we are currently considering this also for NLME models. |
Beta Was this translation helpful? Give feedback.
Good point. So this should work with something along the lines of:
experiments table:
conditions table:
I.e. I would run a pre-equilibration and then assign the steady state value to the constant parameter p0. I then add a pre-simulation so I can plot my fold change (as 1.0) and compare against values in the time [-10, 0). Then I apply the changes.
I would then use the observable
p_change = p/p0.