Unable to turn off topology search in BEAST 2.7.7?

140 views
Skip to first unread message

Lily Hughes

unread,
Feb 7, 2025, 3:22:17 PM2/7/25
to beast-users
I am trying to estimate divergence times under the ORC in BEAST 2.7.7 using a fixed topology. I have done this in previous versions of BEAST, and definitely turned off all of the operators related to the tree search, and gave it the starting tree. 

But the tree search is not off - it is still changing the topology. Help!

Lily Hughes

unread,
Feb 19, 2025, 2:50:10 PM2/19/25
to beast-users
Below are my operators. But all the ones I know affect tree topology are set to 0, and yet the topology is still changing on me. 


        <operator id="GTRRateDeltaExchanger.s:first" spec="operator.DeltaExchangeOperator" delta="0.1" weight="0.1">
            <parameter idref="GTRrates.s:first"/>
            <weightvector id="IntegerParameter.0" spec="parameter.IntegerParameter" dimension="6" estimate="false">1 1 1 1 1 1</weightvector>
        </operator>
        <operator id="GTRFrequenciesExchanger.s:first" spec="operator.DeltaExchangeOperator" delta="0.01" weight="0.1">
            <parameter idref="GTRfreqParameter.s:first"/>
        </operator>
        <operator id="FixMeanMutationRatesOperator" spec="operator.kernel.BactrianDeltaExchangeOperator" delta="0.75" weight="2.0">
            <parameter idref="mutationRate.s:first"/>
            <parameter idref="mutationRate.s:second"/>
            <parameter idref="mutationRate.s:third"/>
            <weightvector id="weightparameter" spec="parameter.IntegerParameter" dimension="3" estimate="false" lower="0" upper="0">4445 4445 4445</weightvector>
        </operator>
        <operator id="proportionInvariantScaler.s:first" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="proportionInvariant.s:first"/>
            <operator id="AVMNOperator.first" spec="kernel.AdaptableVarianceMultivariateNormalOperator" allowNonsense="true" beta="0.05" burnin="400" initial="800" weight="0.1">
                <transformations id="AVMNSumTransform.first" spec="operator.kernel.Transform$LogConstrainedSumTransform"/>
                <transformations id="AVMNLogTransform.first" spec="operator.kernel.Transform$LogTransform">
                    <f idref="proportionInvariant.s:first"/>
                    <f idref="gammaShape.s:first"/>
                </transformations>
                <transformations id="AVMNNoTransform.first" spec="operator.kernel.Transform$NoTransform">
                    <f idref="Tree.t:trm"/>
                </transformations>
            </operator>
            <operator id="proportionInvariantScalerX.s:first" spec="kernel.BactrianScaleOperator" parameter="@proportionInvariant.s:first" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="gammaShapeScaler.s:first" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="gammaShape.s:first"/>
            <operator idref="AVMNOperator.first"/>
            <operator id="gammaShapeScalerX.s:first" spec="kernel.BactrianScaleOperator" parameter="@gammaShape.s:first" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="proportionInvariantScaler.s:second" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="proportionInvariant.s:second"/>
            <operator id="AVMNOperator.second" spec="kernel.AdaptableVarianceMultivariateNormalOperator" allowNonsense="true" beta="0.05" burnin="400" initial="800" weight="0.1">
                <transformations id="AVMNSumTransform.second" spec="operator.kernel.Transform$LogConstrainedSumTransform"/>
                <transformations id="AVMNLogTransform.second" spec="operator.kernel.Transform$LogTransform">
                    <f idref="proportionInvariant.s:second"/>
                    <f idref="gammaShape.s:second"/>
                </transformations>
                <transformations id="AVMNNoTransform.second" spec="operator.kernel.Transform$NoTransform">
                    <f idref="Tree.t:trm"/>
                </transformations>
            </operator>
            <operator id="proportionInvariantScalerX.s:second" spec="kernel.BactrianScaleOperator" parameter="@proportionInvariant.s:second" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="gammaShapeScaler.s:second" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="gammaShape.s:second"/>
            <operator idref="AVMNOperator.second"/>
            <operator id="gammaShapeScalerX.s:second" spec="kernel.BactrianScaleOperator" parameter="@gammaShape.s:second" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="TVMRateDeltaExchanger.s:second" spec="operator.DeltaExchangeOperator" delta="0.1" weight="0.1">
            <parameter idref="TVMrates.s:second"/>
            <weightvector id="IntegerParameter.1" spec="parameter.IntegerParameter" dimension="5" estimate="false">1 2 1 1 1</weightvector>
        </operator>
        <operator id="TVMFrequenciesExchanger.s:second" spec="operator.DeltaExchangeOperator" delta="0.01" weight="0.1">
            <parameter idref="TVMfreqParameter.s:second"/>
        </operator>
        <operator id="proportionInvariantScaler.s:third" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="proportionInvariant.s:third"/>
            <operator id="AVMNOperator.third" spec="kernel.AdaptableVarianceMultivariateNormalOperator" allowNonsense="true" beta="0.05" burnin="400" initial="800" weight="0.1">
                <transformations id="AVMNSumTransform.third" spec="operator.kernel.Transform$LogConstrainedSumTransform"/>
                <transformations id="AVMNLogTransform.third" spec="operator.kernel.Transform$LogTransform">
                    <f idref="proportionInvariant.s:third"/>
                    <f idref="gammaShape.s:third"/>
                </transformations>
                <transformations id="AVMNNoTransform.third" spec="operator.kernel.Transform$NoTransform">
                    <f idref="Tree.t:trm"/>
                </transformations>
            </operator>
            <operator id="proportionInvariantScalerX.s:third" spec="kernel.BactrianScaleOperator" parameter="@proportionInvariant.s:third" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="gammaShapeScaler.s:third" spec="AdaptableOperatorSampler" weight="0.05">
            <parameter idref="gammaShape.s:third"/>
            <operator idref="AVMNOperator.third"/>
            <operator id="gammaShapeScalerX.s:third" spec="kernel.BactrianScaleOperator" parameter="@gammaShape.s:third" scaleFactor="0.5" upper="10.0" weight="0.1"/>
        </operator>
        <operator id="GTRRateDeltaExchanger.s:third" spec="operator.DeltaExchangeOperator" delta="0.1" weight="0.1">
            <parameter idref="GTRrates.s:third"/>
            <weightvector id="IntegerParameter.2" spec="parameter.IntegerParameter" dimension="6" estimate="false">1 1 1 1 1 1</weightvector>
        </operator>
        <operator id="GTRFrequenciesExchanger.s:third" spec="operator.DeltaExchangeOperator" delta="0.01" weight="0.1">
            <parameter idref="GTRfreqParameter.s:third"/>
        </operator>
        <operator id="ORCAdaptableOperatorSampler_sigma.c:clm" spec="AdaptableOperatorSampler" weight="3.0">
            <parameter idref="ORCsigma.c:clm"/>
            <operator id="ORCucldStdevScaler.c:clm" spec="orc.consoperators.UcldScalerOperator" distr="@ORCLogNormalDistributionModel.c:clm" rates="@ORCRates.c:clm" scaleFactor="0.5" stdev="@ORCsigma.c:clm" weight="1.0">
                <kernel id="KernelDistribution$Bactrian.41" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCUcldStdevRandomWalk.c:clm" spec="operator.kernel.BactrianRandomWalkOperator" parameter="@ORCsigma.c:clm" scaleFactor="0.1" weight="1.0">
                <kernelDistribution id="KernelDistribution$Bactrian.42" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCUcldStdevScale.c:clm" spec="kernel.BactrianScaleOperator" parameter="@ORCsigma.c:clm" scaleFactor="0.5" upper="10.0" weight="1.0">
                <kernelDistribution id="KernelDistribution$Bactrian.43" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCSampleFromPriorOperator_sigma.c:clm" spec="orc.operators.SampleFromPriorOperator" parameter="@ORCsigma.c:clm" prior2="@ORCsigmaPrior.c:clm" weight="1.0"/>
        </operator>
        <operator id="ORCAdaptableOperatorSampler_rates_root.c:clm" spec="AdaptableOperatorSampler" weight="1.0">
            <parameter idref="ORCRates.c:clm"/>
            <tree idref="Tree.t:trm"/>
            <operator id="ORCRootOperator1.c:clm" spec="orc.consoperators.SimpleDistance" clockModel="@OptimisedRelaxedClock.c:clm" rates="@ORCRates.c:clm" tree="@Tree.t:trm" twindowSize="0.005" weight="1.0">
                <kernel id="KernelDistribution$Bactrian.44" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCRootOperator2.c:clm" spec="orc.consoperators.SmallPulley" clockModel="@OptimisedRelaxedClock.c:clm" dwindowSize="0.005" rates="@ORCRates.c:clm" tree="@Tree.t:trm" weight="1.0">
                <kernel id="KernelDistribution$Bactrian.45" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
        </operator>
        <operator id="ORCAdaptableOperatorSampler_rates_internal.c:clm" spec="AdaptableOperatorSampler" weight="20.0">
            <parameter idref="ORCRates.c:clm"/>
            <tree idref="Tree.t:trm"/>
            <operator id="ORCInternalnodesOperator.c:clm" spec="orc.consoperators.InConstantDistanceOperator" clockModel="@OptimisedRelaxedClock.c:clm" rates="@ORCRates.c:clm" tree="@Tree.t:trm" twindowSize="0.005" weight="0">
                <kernel id="KernelDistribution$Bactrian.46" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCRatesRandomWalk.c:clm" spec="operator.kernel.BactrianRandomWalkOperator" parameter="@ORCRates.c:clm" scaleFactor="0.1" weight="1.0">
                <kernelDistribution id="KernelDistribution$Bactrian.47" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCRatesScale.c:clm" spec="kernel.BactrianScaleOperator" parameter="@ORCRates.c:clm" scaleFactor="0.5" upper="10.0" weight="1.0">
                <kernelDistribution id="KernelDistribution$Bactrian.48" spec="operator.kernel.KernelDistribution$Bactrian"/>
            </operator>
            <operator id="ORCSampleFromPriorOperator.rates.c:clm" spec="orc.operators.SampleFromPriorOperator" parameter="@ORCRates.c:clm" prior2="@ORCRatePriorDistribution.c:clm" weight="1.0"/>
        </operator>
        <operator id="ORCAdaptableOperatorSampler_NER.c:clm" spec="AdaptableOperatorSampler" weight="10.0">
            <tree idref="Tree.t:trm"/>
            <operator id="ORCNER_null.c:clm" spec="Exchange" tree="@Tree.t:trm" weight="1.0"/>
            <operator id="ORCNER_dAE_dBE_dCE.c:clm" spec="orc.ner.NEROperator_dAE_dBE_dCE" rates="@ORCRates.c:clm" tree="@Tree.t:trm" weight="1.0"/>
            <metric id="RNNIMetric.0" spec="beastlabs.evolution.tree.RNNIMetric" taxonset="@TaxonSet.first"/>
        </operator>
        <operator id="BirthDeathBICEPSEpochTop.t:trm" spec="EpochFlexOperator" scaleFactor="0.1" tree="@Tree.t:trm" weight="2.0"/>
        <operator id="BirthDeathBICEPSEpochAll.t:trm" spec="EpochFlexOperator" fromOldestTipOnly="false" scaleFactor="0.1" tree="@Tree.t:trm" weight="2.0"/>
        <operator id="BirthDeathBICEPSTreeFlex.t:trm" spec="TreeStretchOperator" scaleFactor="0.01" tree="@Tree.t:trm" weight="2.0"/>
        <operator id="BirthDeathTreeRootScaler.t:trm" spec="kernel.BactrianScaleOperator" rootOnly="true" scaleFactor="0.1" tree="@Tree.t:trm" upper="10.0" weight="3.0"/>
        <operator id="BirthDeathUniformOperator.t:trm" spec="kernel.BactrianNodeOperator" tree="@Tree.t:trm" weight="30.0"/>
        <operator id="BirthDeathSubtreeSlide.t:trm" spec="kernel.BactrianSubtreeSlide" tree="@Tree.t:trm" weight="0.0"/>
        <operator id="BirthDeathNarrow.t:trm" spec="Exchange" tree="@Tree.t:trm" weight="0.0"/>
        <operator id="BirthDeathWide.t:trm" spec="Exchange" isNarrow="false" tree="@Tree.t:trm" weight="0.0"/>
        <operator id="BirthDeathWilsonBalding.t:trm" spec="WilsonBalding" tree="@Tree.t:trm" weight="0.0"/>
        <operator id="BirthRateScaler.t:trm" spec="kernel.BactrianScaleOperator" parameter="@BDBirthRate.t:trm" upper="10.0" weight="3.0"/>
        <operator id="DeathRateScaler.t:trm" spec="kernel.BactrianScaleOperator" parameter="@BDDeathRate.t:trm" upper="10.0" weight="3.0"/>
        <operator id="ORCucldMeanScaler.c:clm" spec="ScaleOperator" parameter="@ORCucldMean.c:clm" scaleFactor="0.5" weight="3.0"/>
        <operator id="ORC.UpDown.c:clm" spec="operator.kernel.BactrianUpDownOperator" scaleFactor="0.75" weight="3.0">
            <up idref="ORCucldMean.c:clm"/>
            <down idref="Tree.t:trm"/>
        </operator>

Lily Hughes

unread,
Feb 19, 2025, 2:50:20 PM2/19/25
to beast-users
Below is my operator scheme. I have turned off every operator that I am familiar with, and the topology continues to change.       

Kieran Althaus

unread,
Mar 4, 2025, 5:24:09 PM3/4/25
to beast-users
Hi Lily. I am experiencing a similar problem. Have you found a solution yet?

Lily Hughes

unread,
Mar 5, 2025, 1:34:09 PM3/5/25
to beast-users
Yes! It took me a while, but I figured it out. I think some of the documentation has lagged behind the addition of the ORC. 

I removed the section below from the xml file. I don't see a way to do it in beauti directly, but it is no longer changing the toplogy:

        </operator>
        <operator id="ORCAdaptableOperatorSampler_NER.c:clm" spec="AdaptableOperatorSampler" weight="10.0">
            <tree idref="Tree.t:trm"/>
            <operator id="ORCNER_null.c:clm" spec="Exchange" tree="@Tree.t:trm" weight="1.0"/>
            <operator id="ORCNER_dAE_dBE_dCE.c:clm" spec="orc.ner.NEROperator_dAE_dBE_dCE" rates="@ORCRates.c:clm" tree="@Tree.t:trm" weight="1.0"/>
            <metric id="RNNIMetric.0" spec="beastlabs.evolution.tree.RNNIMetric" taxonset="@TaxonSet.first"/>
        </operator>

michaelm

unread,
Jan 17, 2026, 2:15:48 PM (2 days ago) Jan 17
to beast-users
Lily, thanks for posting this! Looks like I came across the same issue...
Reply all
Reply to author
Forward
0 new messages