Search in sources :

Example 1 with PopulationSizeModel

use of dr.evomodel.coalescent.PopulationSizeModel in project beast-mcmc by beast-dev.

the class PiecewisePopulationSizeModelParser method parseXMLObject.

public Object parseXMLObject(XMLObject xo) throws XMLParseException {
    Units.Type units = XMLUnits.Utils.getUnitsAttr(xo);
    Parameter epochDurations = (Parameter) xo.getElementFirstChild(EPOCH_DURATIONS);
    Parameter populationSize = (Parameter) xo.getElementFirstChild(LOG_POPULATION_SIZE);
    XMLObject cxo = xo.getChild(EPOCHS);
    List<PopulationSizeModel> epochs = cxo.getAllChildren(PopulationSizeModel.class);
    if (epochDurations.getDimension() != epochs.size() - 1) {
        throw new XMLParseException("The dimension of the epoch duration parameter should be one fewer than the number of epochs.");
    }
    return new PiecewisePopulationSizeModel(PIECEWISE_POPULATION_SIZE, populationSize, epochs, epochDurations, units);
}
Also used : PiecewisePopulationSizeModel(dr.evomodel.coalescent.PiecewisePopulationSizeModel) Parameter(dr.inference.model.Parameter) PiecewisePopulationSizeModel(dr.evomodel.coalescent.PiecewisePopulationSizeModel) PopulationSizeModel(dr.evomodel.coalescent.PopulationSizeModel) Units(dr.evolution.util.Units) XMLUnits(dr.evoxml.util.XMLUnits)

Aggregations

Units (dr.evolution.util.Units)1 PiecewisePopulationSizeModel (dr.evomodel.coalescent.PiecewisePopulationSizeModel)1 PopulationSizeModel (dr.evomodel.coalescent.PopulationSizeModel)1 XMLUnits (dr.evoxml.util.XMLUnits)1 Parameter (dr.inference.model.Parameter)1