Dear beast-users,
I am trying to set up a discrete phylogeographic analysis in beast2 (2.1.2) in which A) migration is asymmetric, and B) some of the potential directions of migration are just turned off. I'm not sure how to implement these two aspects.
A. I have four different locations, so with asymmetric migration there should be 12 potential rates. However, I tried just setting the dimensions of the rateIndicators (booleans which indicate that this migration rate is non-zero) and relativeGeoRates (the magnitude of the non-zero rates) to 12 instead of 6:
<stateNode dimension="12" id="rateIndicator.s:type" spec="parameter.BooleanParameter">true true true false false false false false false false false false</stateNode>
<parameter dimension="12" id="relativeGeoRates.s:type" name="stateNode">1.0</parameter>
And I get this error:
validate and intialize error: Dimension of input 'rates' is 12 but a rate matrix of dimension 4x3/2=6 was expected
Do I need to set a flag somewhere to show that this is asymmetric?
B. The second part is, I just want to set these rate indicators at the beginning rather than infer them, so the best way seems to be to comment out the operators that change them. However, it looks like there are actually two operators which do the same thing:
<operator id="indicatorFlip.s:type" parameter="@rateIndicator.s:type" spec="BitFlipOperator" weight="30.0"/>
<operator id="BSSVSoperator.c:type" indicator="@rateIndicator.s:type" mu="@traitClockRate.c:type" spec="BitFlipBSSVSOperator" weight="30.0"/>
Are these operators actually the same, and should I therefore comment them both out if I want my rate indicators to stay as I initialised them?
Thank you,
George