use of dr.evomodel.tree.MicrosatelliteSamplerTreeModel in project beast-mcmc by beast-dev.
the class MicrosatelliteSamplerTreeModelParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
TreeModel tree = (TreeModel) xo.getElementFirstChild(TREE);
Parameter internalVal = (Parameter) xo.getElementFirstChild(INTERNAL_VALUES);
Patterns microsatellitePattern = (Patterns) xo.getElementFirstChild(EXTERNAL_VALUES);
int[] externalValues = microsatellitePattern.getPattern(0);
HashMap<String, Integer> taxaMap = new HashMap<String, Integer>(externalValues.length);
boolean internalValuesProvided = false;
if (xo.hasAttribute(USE_PROVIDED_INTERNAL_VALUES)) {
internalValuesProvided = xo.getBooleanAttribute(USE_PROVIDED_INTERNAL_VALUES);
}
for (int i = 0; i < externalValues.length; i++) {
taxaMap.put(microsatellitePattern.getTaxonId(i), i);
}
String modelId = xo.getAttribute("id", "treeMicrosatelliteSamplerModel");
return new MicrosatelliteSamplerTreeModel(modelId, tree, internalVal, microsatellitePattern, externalValues, taxaMap, internalValuesProvided);
}
use of dr.evomodel.tree.MicrosatelliteSamplerTreeModel in project beast-mcmc by beast-dev.
the class RandomWalkIntegerSetSizeWeightedOperatorParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
double d = xo.getDoubleAttribute(WINDOW_SIZE);
if (d != Math.floor(d)) {
throw new XMLParseException("The window size of a " + RANDOM_WALK_INT_SET_SIZE_WGT_OP + " should be an integer");
}
double baseSetSize = xo.getDoubleAttribute(BASE_SET_SIZE);
int windowSize = (int) d;
Parameter parameter = (Parameter) xo.getChild(Parameter.class);
MicrosatelliteSamplerTreeModel msatSampleTreeModel = (MicrosatelliteSamplerTreeModel) xo.getChild(MicrosatelliteSamplerTreeModel.class);
return new RandomWalkIntegerSetSizeWeightedOperator(parameter, windowSize, weight, msatSampleTreeModel, baseSetSize);
}
use of dr.evomodel.tree.MicrosatelliteSamplerTreeModel in project beast-mcmc by beast-dev.
the class MicrosatelliteFullAncestryImportanceSamplingOperatorParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
final double weight = xo.getDoubleAttribute(MCMCOperator.WEIGHT);
final Parameter parameter = (Parameter) xo.getChild(Parameter.class);
final MicrosatelliteSamplerTreeModel msatSamplerTreeModel = (MicrosatelliteSamplerTreeModel) xo.getChild(MicrosatelliteSamplerTreeModel.class);
final MicrosatelliteModel msatModel = (MicrosatelliteModel) xo.getChild(MicrosatelliteModel.class);
final BranchRateModel branchRateModel = (BranchRateModel) xo.getChild(BranchRateModel.class);
return new MicrosatelliteFullAncestryImportanceSamplingOperator(parameter, msatSamplerTreeModel, msatModel, branchRateModel, weight);
}
use of dr.evomodel.tree.MicrosatelliteSamplerTreeModel in project beast-mcmc by beast-dev.
the class MsatSamplingTreeLikelihoodTest method setUp.
public void setUp() throws Exception {
super.setUp();
//taxa
ArrayList<Taxon> taxonList3 = new ArrayList<Taxon>();
Collections.addAll(taxonList3, new Taxon("Taxon1"), new Taxon("Taxon2"), new Taxon("Taxon3"), new Taxon("Taxon4"), new Taxon("Taxon5"), new Taxon("Taxon6"), new Taxon("Taxon7"));
Taxa taxa3 = new Taxa(taxonList3);
//msat datatype
Microsatellite msat = new Microsatellite(1, 6);
Patterns msatPatterns = new Patterns(msat, taxa3);
//pattern in the correct code form.
msatPatterns.addPattern(new int[] { 0, 1, 3, 2, 4, 5, 1 });
//create tree
NewickImporter importer = new NewickImporter("(((Taxon1:0.3,Taxon2:0.3):0.6,Taxon3:0.9):0.9,((Taxon4:0.5,Taxon5:0.5):0.3,(Taxon6:0.7,Taxon7:0.7):0.1):1.0);");
Tree tree = importer.importTree(null);
//treeModel
TreeModel treeModel = new TreeModel(tree);
//msatsubstModel
AsymmetricQuadraticModel eu1 = new AsymmetricQuadraticModel(msat, null);
//create msatSamplerTreeModel
Parameter internalVal = new Parameter.Default(new double[] { 2, 3, 4, 2, 1, 5 });
int[] externalValues = msatPatterns.getPattern(0);
HashMap<String, Integer> taxaMap = new HashMap<String, Integer>(externalValues.length);
boolean internalValuesProvided = true;
for (int i = 0; i < externalValues.length; i++) {
taxaMap.put(msatPatterns.getTaxonId(i), i);
}
MicrosatelliteSamplerTreeModel msatTreeModel = new MicrosatelliteSamplerTreeModel("JUnitTestEx", treeModel, internalVal, msatPatterns, externalValues, taxaMap, internalValuesProvided);
//create msatSamplerTreeLikelihood
BranchRateModel branchRateModel = new StrictClockBranchRates(new Parameter.Default(1.0));
eu1Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, eu1, branchRateModel);
//eu2
TwoPhaseModel eu2 = new TwoPhaseModel(msat, null, eu1, new Parameter.Default(0.0), new Parameter.Default(0.4), null, false);
eu2Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, eu2, branchRateModel);
//ec1
LinearBiasModel ec1 = new LinearBiasModel(msat, null, eu1, new Parameter.Default(0.48), new Parameter.Default(0.0), false, false, false);
ec1Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, ec1, branchRateModel);
//ec2
TwoPhaseModel ec2 = new TwoPhaseModel(msat, null, ec1, new Parameter.Default(0.0), new Parameter.Default(0.4), null, false);
ec2Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, ec2, branchRateModel);
//el1
LinearBiasModel el1 = new LinearBiasModel(msat, null, eu1, new Parameter.Default(0.2), new Parameter.Default(-0.018), true, false, false);
el1Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, el1, branchRateModel);
AsymmetricQuadraticModel pu1 = new AsymmetricQuadraticModel(msat, null, new Parameter.Default(1.0), new Parameter.Default(0.015), new Parameter.Default(0.0), new Parameter.Default(1.0), new Parameter.Default(0.015), new Parameter.Default(0.0), false);
pu1Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, pu1, branchRateModel);
//ec2
TwoPhaseModel pu2 = new TwoPhaseModel(msat, null, pu1, new Parameter.Default(0.0), new Parameter.Default(0.4), null, false);
pu2Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, pu2, branchRateModel);
//ec1
LinearBiasModel pc1 = new LinearBiasModel(msat, null, pu1, new Parameter.Default(0.48), new Parameter.Default(0.0), false, false, false);
pc1Likelihood = new MicrosatelliteSamplerTreeLikelihood(msatTreeModel, pc1, branchRateModel);
}
use of dr.evomodel.tree.MicrosatelliteSamplerTreeModel in project beast-mcmc by beast-dev.
the class MicrosatelliteSamplerTreeLikelihoodParser method parseXMLObject.
public Object parseXMLObject(XMLObject xo) throws XMLParseException {
MicrosatelliteSamplerTreeModel mstModel = (MicrosatelliteSamplerTreeModel) xo.getChild(MicrosatelliteSamplerTreeModel.class);
MicrosatelliteModel microsatelliteModel = (MicrosatelliteModel) xo.getChild(MicrosatelliteModel.class);
BranchRateModel branchRateModel;
Object cxo = xo.getChild(BranchRateModel.class);
if (xo.getChild(BranchRateModel.class) != null) {
branchRateModel = (BranchRateModel) cxo;
System.out.println("BranchRateModel provided to MicrosatelliteSamplerTreeLikelihood");
} else if (xo.hasChildNamed(MUTATION_RATE)) {
Parameter muRate = (Parameter) xo.getElementFirstChild(MUTATION_RATE);
branchRateModel = new StrictClockBranchRates(muRate);
System.out.println("mutation rate provided to MicrosatelliteSamplerTreeLikelihood");
} else {
branchRateModel = new StrictClockBranchRates(new Parameter.Default(1.0));
}
return new MicrosatelliteSamplerTreeLikelihood(mstModel, microsatelliteModel, branchRateModel);
}
Aggregations