Hi all,
In the serial birth-death-skyline model (run in v 2.0.2), the initial condition for the "origin" parameter behaves in a manner I find unexpected. I hesitate to call it a bug in case there is a reason for the behavior I don't understand.
For example, I have a 100 sequences and a user-specified starting tree with a root at 15 years. So, I expect that I can initialize the origin date at some number greater than 15 years in the past, such as 30. Using Beauti to set up the job, and running, I get the following error:
java.lang.RuntimeException: Error: origin (30.0) must be larger than tree height (99.0).
at beast.evolution.speciation.BirthDeathSkylineModel.initAndValidate(Unknown Source)
at beast.util.XMLParser.initPlugins(Unknown Source)
at beast.util.XMLParser.parse(Unknown Source)
at beast.util.XMLParser.parseFile(Unknown Source)
at beast.app.BeastMCMC.parseArgs(Unknown Source)
at beast.app.beastapp.BeastMain.main(Unknown Source)
Error 110 parsing the xml input file
validate and intialize error: Error: origin (30.0) must be larger than tree height (99.0).
Error detected about here:
<run id='mcmc' spec='MCMC'>
<distribution id='posterior' spec='util.CompoundDistribution'>
<distribution id='prior' spec='util.CompoundDistribution'>
<distribution id='BirthDeathSkySerial.t:random100' spec='beast.evolution.speciation.BirthDeathSkylineModel'>
I've played with it, and the tree height (99.0) is the number of nodes in the tree, and has nothing to do with the actual tree height.
The consequence of this is the following. I have to set the origin at at least 100, but the rest of the model correctly interprets the origin as a date (as far as I can tell). Because the origin date has to be started far from where it will converge to, the burn-in period takes a lot longer than it needs to. During the burn-in, the tree height gets pulled toward the initial origin, far from where it will converge (and where my priors should put it), and it takes a long time for the tree height and clock model to walk back to where it belongs. This problem gets worse quickly as the number of sequences goes up since tree heights don't scale especially fast, if at all, with the number of sequences.
If this isn't a bug, could someone explain to me why this behaves as it does?
Thanks,
--Mike