Hi dear team,
I am experiencing an issue with a branch-site codon model I've written in Bio++.
The model consists of 2 mixture model, where each of these consists of 3 sub-models of type YN98 each.
Each mixture model consists of 3 omega categories, such that: omega_0 <= omega_1 <= 1 <= omega_2
each of these omegas is mapped to an omega_ parameter of a sub-model of type YN98.
The omegas in the mixture models are parameterized by the following parameters:
p in (0,1)
omega1 in (0,1)
omega2 in (1,999)
k in (0,50)
such that:
omega_0 = (omega1 * p) ^ k
omega_1 = omega1 ^ k
omega_2 = omega_2 ^ k
The issue:
Each omega_ parameter in the corresponding YN98 model is bound within [0.001,999]. This means that:
(lower_bound(p) * lower_bound(omega1) ) ^ upper_bound(k) must be greater of equal to 0.001
upper_bound(omega2) ^ upper_bound(k) must be less or equal to 999.
These two restrictions are limiting the bounds I can set for p, k and omega2 more than I would like. Since that function that allows to set the constraint on the YN98 model parameters is protected, I am unable to customize the constraint on the omega_ parameters from the constructor of my model. Thus, I was wondering if there is any way I could add a public function to YN98.cpp that would allow it?
If yes, are there any additional parameters mapped to YN98's omega I should set the constraints on as well?
If not, how would you recommend to tackle this issue?
Many thanks in advance!
Keren