White-noise clock model for topology estimation #1058
Unanswered
davidcerny
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Lepage et al. (2007) described the white-noise clock model, in which each branch of the tree draws its rate multiplier from a gamma distribution with a mean of 1 and a variance that is inversely proportional to that branch's temporal duration. As a result, rates of temporally long branches tend to stick close to the global mean rate, while the rates of temporally short branches can oscillate around that mean rate wildly.
For many years, this model was available in MrBayes under the name "IGR" ("independent gamma rates"), before the developers concluded that this was somewhat misleading, as it implies a model where individual branch rates are independent draws from a single gamma distribution (referred to as "UGam" by Lepage et al. 2007), similar to the well-known uncorrelated lognormal model (UCLN). Accordingly, in the current development version of MrBayes ("v3.2.8"), IGR refers to the i.i.d. model (UGam), while WN refers to what IGR used to mean in the previous versions.
I came up with a RevBayes implementation of the white-noise model based on the UGam code shown in the "Dating with relative constraints" tutorial. You can see it in the
mvFossilTimeSlideUniform_multiple_runs.Revtest script, which is in turn based on a script I used in Pol et al. (2024):However, after I gave this code another look in light of #958 and #963, it occurred to me that this, too, was likely an unsuccessful attempt to convert code intended to be run on a fixed-topology to something that can be used for topology estimation. Since
fbd_treeis a stochastic variable when the tree is estimated, we should be using the deterministic assignment operator:=rather than=when extracting its branch lengths. In contrast to the tricky case seen in #958, this doesn't introduce a cycle into the model graph, nor does it require us to index by deterministic nodes (which is currently impossible).So my question is – is this change (i.e.,
times[i] := fbd_tree.branchLength(i)) enough to turn the code above into a valid implementation of the white-noise model in RevBayes, or are there other problems with it that I'm overlooking?All reactions