use of dr.evomodel.speciation.BirthDeathSerialSkylineModel in project beast-mcmc by beast-dev.
the class BirthDeathSerialSkylineModelParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
final String modelName = xo.getId();
final Units.Type units = XMLUnits.Utils.getUnitsAttr(xo);
final Parameter times = (Parameter) xo.getElementFirstChild(TIMES);
final Parameter lambda = (Parameter) xo.getElementFirstChild(LAMBDA);
boolean relativeDeath = xo.hasChildNamed(RELATIVE_MU);
Parameter mu;
if (relativeDeath) {
mu = (Parameter) xo.getElementFirstChild(RELATIVE_MU);
} else {
mu = (Parameter) xo.getElementFirstChild(MU);
}
final Parameter psi = (Parameter) xo.getElementFirstChild(PSI);
final Parameter p = (Parameter) xo.getElementFirstChild(SAMPLE_PROBABILITY);
final boolean timesStartFromOrigin = xo.getAttribute(TIMES_START_FROM_ORIGIN, false);
Parameter origin = null;
if (xo.hasChildNamed(ORIGIN)) {
origin = (Parameter) xo.getElementFirstChild(ORIGIN);
}
final Parameter r = xo.hasChildNamed(SAMPLE_BECOMES_NON_INFECTIOUS) ? (Parameter) xo.getElementFirstChild(SAMPLE_BECOMES_NON_INFECTIOUS) : new Parameter.Default(0.0);
// r.setParameterValueQuietly(0, 1 - r.getParameterValue(0)); // donot use it, otherwise log is changed improperly
Logger.getLogger("dr.evomodel").info(xo.hasChildNamed(SAMPLE_BECOMES_NON_INFECTIOUS) ? getCitationRT() : getCitationPsiOrg());
return new BirthDeathSerialSkylineModel(modelName, times, lambda, mu, psi, p, origin, relativeDeath, false, timesStartFromOrigin, units);
}
Aggregations