package beast.evolution.speciation; import beast.core.BEASTObject; import beast.core.Description; import beast.core.Input; import beast.evolution.alignment.TaxonSet; import beast.math.distributions.ParametricDistribution; /** * @author Joseph Heled */ @Description("Specification of a single calibration point of the calibrated Yule.") public class CalibrationPoint extends BEASTObject { final public Input<TaxonSet> taxonsetInput = new Input<>("taxonset", "Set of taxa. The prior distribution is applied to their TMRCA.", Input.Validate.REQUIRED); final public Input<ParametricDistribution> distInput = new Input<>("distr", "Prior distribution applied to time of clade MRCA", Input.Validate.REQUIRED); // public Input<Boolean> m_bIsMonophyleticInput = new Input<>("monophyletic", // "whether the taxon set is monophyletic (forms a clade without other taxa) or nor. Default is false.", false); final public Input<Boolean> forParentInput = new Input<>("parentOf", "Use time of clade parent. Default is false.", false); private TaxonSet t; private boolean forPar; private ParametricDistribution pd; public CalibrationPoint() {} @Override public void initAndValidate() { t = taxonsetInput.get(); forPar = forParentInput.get(); pd = distInput.get(); } public TaxonSet taxa() { return t; } public boolean forParent() { return forPar; } public ParametricDistribution dist() { return pd; } public double logPdf(final double x) { return pd.logDensity(x); } }