Skip to content

Commit

Permalink
thorney beast uses bft-intervals nows
Browse files Browse the repository at this point in the history
  • Loading branch information
jtmccr1 committed Jul 12, 2024
1 parent b952961 commit 3661e10
Showing 1 changed file with 65 additions and 12 deletions.
77 changes: 65 additions & 12 deletions src/dr/app/beauti/generator/TreePriorGenerator.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,13 @@
import dr.app.beauti.util.XMLWriter;
import dr.evolution.util.Taxa;
import dr.evolution.util.Units;
import dr.evomodel.bigfasttree.BigFastTreeIntervals;
import dr.evomodel.bigfasttree.thorney.ConstrainedTreeModel;
import dr.evomodel.coalescent.GMRFSkyrideGradient;
import dr.evomodel.tree.DefaultTreeModel;
import dr.evomodel.tree.TreeModel;
import dr.evomodelxml.CSVExporterParser;
import dr.evomodelxml.bigfasttree.BigFastTreeIntervalsParser;
import dr.evomodelxml.coalescent.*;
import dr.evomodelxml.coalescent.demographicmodel.ConstantPopulationModelParser;
import dr.evomodelxml.coalescent.demographicmodel.ExpansionModelParser;
Expand Down Expand Up @@ -577,9 +580,19 @@ void writePriorLikelihood(PartitionTreeModel model, XMLWriter writer) {
writeParameter(prior.getParameter("skyride.precision"), 1, writer);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.PRECISION_PARAMETER);

writer.writeOpenTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
writer.writeIDref(DefaultTreeModel.TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);

if(model.isUsingThorneyBEAST()){
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.INTERVALS);
writer.writeOpenTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeIDref(ConstrainedTreeModel.CONSTRAINED_TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.INTERVALS);
}else{
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
writer.writeIDref(DefaultTreeModel.TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
}


writer.writeCloseTag(GMRFSkyrideLikelihoodParser.SKYLINE_LIKELIHOOD);

Expand All @@ -599,9 +612,17 @@ void writePriorLikelihood(PartitionTreeModel model, XMLWriter writer) {
writer.writeOpenTag(CoalescentLikelihoodParser.MODEL);
writeNodeHeightPriorModelRef(prior, writer);
writer.writeCloseTag(CoalescentLikelihoodParser.MODEL);
writer.writeOpenTag(CoalescentLikelihoodParser.POPULATION_TREE);
writer.writeIDref(DefaultTreeModel.TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(CoalescentLikelihoodParser.POPULATION_TREE);
if(model.isUsingThorneyBEAST()){
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.INTERVALS);
writer.writeOpenTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeIDref(ConstrainedTreeModel.CONSTRAINED_TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.INTERVALS);
}else{
writer.writeOpenTag(CoalescentLikelihoodParser.POPULATION_TREE);
writer.writeIDref(DefaultTreeModel.TREE_MODEL, prefix + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(CoalescentLikelihoodParser.POPULATION_TREE);
}
writer.writeCloseTag(CoalescentLikelihoodParser.COALESCENT_LIKELIHOOD);
}
}
Expand Down Expand Up @@ -692,17 +713,49 @@ void writeMultiLociTreePriors(PartitionTreePrior prior, XMLWriter writer) {
cutOff.setInitial(skyGridInterval);
writeParameter(cutOff, 1, writer);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.CUT_OFF);

writer.writeOpenTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);

// TODO Add all linked trees
if (options.isShareSameTreePrior()) {
for (PartitionTreeModel thisModel : options.getPartitionTreeModels()) {
writer.writeIDref(DefaultTreeModel.TREE_MODEL, thisModel.getPrefix() + DefaultTreeModel.TREE_MODEL);
Boolean usingTB=true;
for(PartitionTreeModel treeModel: options.getPartitionTreeModels()){
if(!treeModel.isUsingThorneyBEAST()){
usingTB=false;
break;
}
}
if(usingTB){
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.INTERVALS);
for (PartitionTreeModel thisModel : options.getPartitionTreeModels()) {
writer.writeOpenTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeIDref(ConstrainedTreeModel.CONSTRAINED_TREE_MODEL, thisModel.getPrefix() + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
}
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.INTERVALS);
}else{
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
for (PartitionTreeModel thisModel : options.getPartitionTreeModels()) {
writer.writeIDref(DefaultTreeModel.TREE_MODEL, thisModel.getPrefix() + DefaultTreeModel.TREE_MODEL);
}
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
}
} else {
writer.writeIDref(DefaultTreeModel.TREE_MODEL, options.getPartitionTreeModels(prior).get(0).getPrefix() + DefaultTreeModel.TREE_MODEL);

Boolean usingTB= options.getPartitionTreeModels(prior).get(0).isUsingThorneyBEAST();
if(usingTB){
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.INTERVALS);
writer.writeOpenTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeIDref(ConstrainedTreeModel.CONSTRAINED_TREE_MODEL, options.getPartitionTreeModels(prior).get(0).getPrefix() + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(BigFastTreeIntervalsParser.TREE_INTERVALS);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.INTERVALS);

}else{
writer.writeOpenTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
writer.writeIDref(DefaultTreeModel.TREE_MODEL, options.getPartitionTreeModels(prior).get(0).getPrefix() + DefaultTreeModel.TREE_MODEL);
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);
}
}
writer.writeCloseTag(GMRFSkyrideLikelihoodParser.POPULATION_TREE);



writer.writeCloseTag(GMRFSkyrideLikelihoodParser.SKYGRID_LIKELIHOOD);

Expand Down

0 comments on commit 3661e10

Please sign in to comment.