use of dr.evomodel.alloppnet.speciation.AlloppSpeciesNetworkModel in project beast-mcmc by beast-dev.
the class AlloppNumHybsStatisticParser method parseXMLObject.
@Override
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
final XMLObject asnmxo = xo.getChild(APSPNETWORK);
AlloppSpeciesNetworkModel aspnet = (AlloppSpeciesNetworkModel) asnmxo.getChild(AlloppSpeciesNetworkModel.class);
return new AlloppNumHybsStatistic(aspnet);
}
use of dr.evomodel.alloppnet.speciation.AlloppSpeciesNetworkModel in project beast-mcmc by beast-dev.
the class AlloppChangeNumHybridizationsParser method parseXMLObject.
@Override
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
AlloppSpeciesBindings apsp = (AlloppSpeciesBindings) xo.getChild(AlloppSpeciesBindings.class);
AlloppSpeciesNetworkModel apspnet = (AlloppSpeciesNetworkModel) xo.getChild(AlloppSpeciesNetworkModel.class);
if (apspnet.getOneHybridization()) {
throw new XMLParseException("oneHybridization is set to true but there is a changeNumHybridizations operator");
}
final double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
return new AlloppChangeNumHybridizations(apspnet, apsp, weight);
}
use of dr.evomodel.alloppnet.speciation.AlloppSpeciesNetworkModel in project beast-mcmc by beast-dev.
the class AlloppHybPopSizesScaleParser method parseXMLObject.
@Override
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
AlloppSpeciesBindings apsp = (AlloppSpeciesBindings) xo.getChild(AlloppSpeciesBindings.class);
AlloppSpeciesNetworkModel apspnet = (AlloppSpeciesNetworkModel) xo.getChild(AlloppSpeciesNetworkModel.class);
final double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
final double scalingfactor = xo.getDoubleAttribute(ScaleOperatorParser.SCALE_FACTOR);
return new AlloppHybPopSizesScale(apspnet, apsp, scalingfactor, weight);
}
use of dr.evomodel.alloppnet.speciation.AlloppSpeciesNetworkModel in project beast-mcmc by beast-dev.
the class AlloppMSCoalescentParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
final AlloppSpeciesBindings apsp = (AlloppSpeciesBindings) xo.getChild(AlloppSpeciesBindings.class);
final AlloppSpeciesNetworkModel apspnetwork = (AlloppSpeciesNetworkModel) xo.getChild(AlloppSpeciesNetworkModel.class);
return new AlloppMSCoalescent(apsp, apspnetwork);
}
use of dr.evomodel.alloppnet.speciation.AlloppSpeciesNetworkModel in project beast-mcmc by beast-dev.
the class AlloppSpeciesNetworkModelParser method parseXMLObject.
@Override
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
AlloppSpeciesBindings apspb = (AlloppSpeciesBindings) xo.getChild(AlloppSpeciesBindings.class);
boolean onehyb = xo.getBooleanAttribute(ONEHYBRIDIZATION);
boolean diprootisroot = xo.getBooleanAttribute(DIPLOIDROOT_ISROOT);
final XMLObject tippopxo = xo.getChild(TIP_POPULATIONS);
final double tippopvalue = tippopxo.getAttribute(Attributable.VALUE, 1.0);
final XMLObject rootpopxo = xo.getChild(ROOT_POPULATIONS);
final double rootpopvalue = rootpopxo.getAttribute(Attributable.VALUE, 1.0);
final XMLObject hybpopxo = xo.getChild(HYBRID_POPULATIONS);
final double hybpopvalue = hybpopxo.getAttribute(Attributable.VALUE, 1.0);
AlloppSpeciesNetworkModel asnm = new AlloppSpeciesNetworkModel(apspb, tippopvalue, rootpopvalue, hybpopvalue, onehyb, diprootisroot);
// don't know dimensionality until network created, so replace parameters
ParameterParser.replaceParameter(tippopxo, asnm.tippopvalues);
final Parameter.DefaultBounds tippopbounds = new Parameter.DefaultBounds(Double.MAX_VALUE, 0, asnm.tippopvalues.getDimension());
asnm.tippopvalues.addBounds(tippopbounds);
ParameterParser.replaceParameter(rootpopxo, asnm.rootpopvalues);
final Parameter.DefaultBounds rootpopbounds = new Parameter.DefaultBounds(Double.MAX_VALUE, 0, asnm.rootpopvalues.getDimension());
asnm.rootpopvalues.addBounds(rootpopbounds);
ParameterParser.replaceParameter(hybpopxo, asnm.logginghybpopvalues);
final Parameter.DefaultBounds hybpopbounds = new Parameter.DefaultBounds(Double.MAX_VALUE, 0, asnm.logginghybpopvalues.getDimension());
asnm.logginghybpopvalues.addBounds(hybpopbounds);
// note hybpopvalues are different and only work for logging.
return asnm;
}
Aggregations