Search in sources :

Example 1 with LogNormalDistributionModel

use of dr.inference.distribution.LogNormalDistributionModel in project beast-mcmc by beast-dev.

the class PartitionData method createClockRateModel.

public BranchRateModel createClockRateModel() {
    BranchRateModel branchRateModel = null;
    if (this.clockModelIndex == 0) {
        // Strict Clock
        Parameter rateParameter = new Parameter.Default(1, clockParameterValues[0]);
        branchRateModel = new StrictClockBranchRates(rateParameter);
    } else if (this.clockModelIndex == LRC_INDEX) {
        // Lognormal relaxed clock
        double numberOfBranches = 2 * (createTreeModel().getTaxonCount() - 1);
        Parameter rateCategoryParameter = new Parameter.Default(numberOfBranches);
        Parameter mean = new Parameter.Default(LogNormalDistributionModelParser.MEAN, 1, clockParameterValues[1]);
        Parameter stdev = new Parameter.Default(LogNormalDistributionModelParser.STDEV, 1, clockParameterValues[2]);
        //TODO: choose between log scale / real scale
        ParametricDistributionModel distributionModel = new LogNormalDistributionModel(mean, stdev, clockParameterValues[3], lrcParametersInRealSpace, lrcParametersInRealSpace);
        branchRateModel = new //
        DiscretizedBranchRates(//
        createTreeModel(), //
        rateCategoryParameter, //
        distributionModel, // 
        1, // 
        false, //
        Double.NaN, //randomizeRates
        true, // keepRates
        false, // cacheRates
        false);
    } else if (this.clockModelIndex == 2) {
        // Exponential relaxed clock
        double numberOfBranches = 2 * (createTreeModel().getTaxonCount() - 1);
        Parameter rateCategoryParameter = new Parameter.Default(numberOfBranches);
        Parameter mean = new Parameter.Default(DistributionModelParser.MEAN, 1, clockParameterValues[4]);
        ParametricDistributionModel distributionModel = new ExponentialDistributionModel(mean, clockParameterValues[5]);
        //	        branchRateModel = new DiscretizedBranchRates(createTreeModel(), rateCategoryParameter, 
        //	                distributionModel, 1, false, Double.NaN);
        branchRateModel = new //
        DiscretizedBranchRates(//
        createTreeModel(), //
        rateCategoryParameter, //
        distributionModel, // 
        1, // 
        false, //
        Double.NaN, //randomizeRates
        true, // keepRates
        false, // cacheRates
        false);
    } else if (this.clockModelIndex == 3) {
        // Inverse Gaussian
        double numberOfBranches = 2 * (createTreeModel().getTaxonCount() - 1);
        Parameter rateCategoryParameter = new Parameter.Default(numberOfBranches);
        Parameter mean = new Parameter.Default(InverseGaussianDistributionModelParser.MEAN, 1, clockParameterValues[6]);
        Parameter stdev = new Parameter.Default(InverseGaussianDistributionModelParser.STDEV, 1, clockParameterValues[7]);
        ParametricDistributionModel distributionModel = new InverseGaussianDistributionModel(mean, stdev, clockParameterValues[8], false);
        branchRateModel = new //
        DiscretizedBranchRates(//
        createTreeModel(), //
        rateCategoryParameter, //
        distributionModel, // 
        1, // 
        false, //
        Double.NaN, //randomizeRates
        true, // keepRates
        false, // cacheRates
        false);
    } else {
        System.out.println("Not yet implemented");
    }
    return branchRateModel;
}
Also used : DiscretizedBranchRates(dr.evomodel.branchratemodel.DiscretizedBranchRates) InverseGaussianDistributionModel(dr.inference.distribution.InverseGaussianDistributionModel) BranchRateModel(dr.evomodel.branchratemodel.BranchRateModel) LogNormalDistributionModel(dr.inference.distribution.LogNormalDistributionModel) ParametricDistributionModel(dr.inference.distribution.ParametricDistributionModel) ExponentialDistributionModel(dr.inference.distribution.ExponentialDistributionModel) Parameter(dr.inference.model.Parameter) StrictClockBranchRates(dr.evomodel.branchratemodel.StrictClockBranchRates)

Example 2 with LogNormalDistributionModel

use of dr.inference.distribution.LogNormalDistributionModel in project beast-mcmc by beast-dev.

the class LogNormalDistributionModelParser method parseXMLObject.

public Object parseXMLObject(XMLObject xo) throws XMLParseException {
    Parameter meanParam;
    final double offset = xo.getAttribute(OFFSET, 0.0);
    final boolean meanInRealSpace = xo.getAttribute(MEAN_IN_REAL_SPACE, false);
    final boolean stdevInRealSpace = xo.getAttribute(STDEV_IN_REAL_SPACE, false);
    if (!meanInRealSpace && stdevInRealSpace) {
        throw new RuntimeException("Cannot parameterise Lognormal model with M and Stdev");
    }
    {
        final XMLObject cxo = xo.getChild(MEAN);
        if (cxo.getChild(0) instanceof Parameter) {
            meanParam = (Parameter) cxo.getChild(Parameter.class);
        } else {
            meanParam = new Parameter.Default(cxo.getDoubleChild(0));
        }
    }
    {
        final XMLObject cxo = xo.getChild(PRECISION);
        if (cxo != null) {
            Parameter precParam;
            if (cxo.getChild(0) instanceof Parameter) {
                precParam = (Parameter) cxo.getChild(Parameter.class);
            } else {
                precParam = new Parameter.Default(cxo.getDoubleChild(0));
            }
            return new LogNormalDistributionModel(meanParam, precParam, offset, meanInRealSpace, stdevInRealSpace, false);
        }
    }
    {
        final XMLObject cxo = xo.getChild(STDEV);
        Parameter stdevParam;
        if (cxo.getChild(0) instanceof Parameter) {
            stdevParam = (Parameter) cxo.getChild(Parameter.class);
        } else {
            stdevParam = new Parameter.Default(cxo.getDoubleChild(0));
        }
        return new LogNormalDistributionModel(meanParam, stdevParam, offset, meanInRealSpace, stdevInRealSpace);
    }
}
Also used : LogNormalDistributionModel(dr.inference.distribution.LogNormalDistributionModel) Parameter(dr.inference.model.Parameter)

Aggregations

LogNormalDistributionModel (dr.inference.distribution.LogNormalDistributionModel)2 Parameter (dr.inference.model.Parameter)2 BranchRateModel (dr.evomodel.branchratemodel.BranchRateModel)1 DiscretizedBranchRates (dr.evomodel.branchratemodel.DiscretizedBranchRates)1 StrictClockBranchRates (dr.evomodel.branchratemodel.StrictClockBranchRates)1 ExponentialDistributionModel (dr.inference.distribution.ExponentialDistributionModel)1 InverseGaussianDistributionModel (dr.inference.distribution.InverseGaussianDistributionModel)1 ParametricDistributionModel (dr.inference.distribution.ParametricDistributionModel)1