*BEAST 2.0 problem with novel clock operators

332 views
Skip to first unread message

Renee Catullo

unread,
Aug 28, 2014, 2:38:02 AM8/28/14
to beast...@googlegroups.com
Hi All,

I've been trying to run a species tree where I need to partition within genes to have different substitution models, something I've done easily in 1.7. I imported each partition for a gene as an independent alignment then linked the trees and clock models.

When I run the analysis I get an error: 


Error 110 parsing the xml input file

validate and intialize error: Operator updown.cdc6_alignment2 has a statenode clockRate.c:cdc6_alignment2 in its inputs that is missing from the state.

Error detected about here:
  <beast>
      <run id='mcmc' spec='MCMC'>

java.lang.Exception: Operator updown.cdc6_alignment2 has a statenode clockRate.c:cdc6_alignment2 in its inputs that is missing from the state.
at beast.core.MCMC.initAndValidate(Unknown Source)
at beast.util.XMLParser.initPlugins(Unknown Source)
at beast.util.XMLParser.parse(Unknown Source)
at beast.util.XMLParser.parseFile(Unknown Source)
at beast.app.BeastMCMC.parseArgs(Unknown Source)
at beast.app.beastapp.BeastMain.main(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at apple.launcher.LaunchRunner.run(LaunchRunner.java:116)
at apple.launcher.LaunchRunner.callMain(LaunchRunner.java:51)
at apple.launcher.JavaApplicationLauncher.launch(JavaApplicationLauncher.java:52)



This is particularly odd because I shouldn't have a clock rate associated with the second codon position of the cdc6 alignment as on the priors the linked clock rates for this gene are called something different. Any ideas? If I import the full gene, then use the split function, link clock and trees, I get a similar error. However, this methodology works fine in *BEAST 1.7 on this exact data set.

Cheers,

Renee

Renee Catullo

unread,
Aug 28, 2014, 3:09:46 AM8/28/14
to beast...@googlegroups.com
Ok, a bit more exploration shows that the xml file contains operators for the partitions that were linked in Beauti. In the xml the updown operators are defined like this:

    <operator id="updown.all.Species" scaleFactor="0.75" spec="UpDownOperator" weight="33.17814205134082">
        <parameter idref="birthRate.t:Species" name="up"/>
        <parameter idref="clockRate.c:amy_alignment12" name="up"/>
        <parameter idref="clockRate.c:ptc_alignment1" name="up"/>
        <parameter idref="clockRate.c:hb_alignment12" name="up"/>
        <parameter idref="clockRate.c:ddc_alignment12" name="up"/>
        <parameter idref="clockRate.c:amr_alignment1" name="up"/>
        <parameter idref="clockRate.c:cdc6_alignment13" name="up"/>
        <parameter idref="clockRate.c:COII_alignment1" name="up"/>
        <parameter idref="clockRate.c:esc_alignment12" name="up"/>
        <parameter idref="clockRate.c:ND1_alignment1" name="up"/>
        <parameter idref="popMean" name="down"/>
        <parameter idref="popSize" name="down"/>
        <tree idref="Tree.t:Species" name="down"/>
        <tree idref="Tree.t:amy_alignment12" name="down"/>
        <tree idref="Tree.t:ptc_alignment1" name="down"/>
        <tree idref="Tree.t:hb_alignment12" name="down"/>
        <tree idref="Tree.t:ddc_alignment12" name="down"/>
        <tree idref="Tree.t:amr_alignment1" name="down"/>
        <tree idref="Tree.t:cdc6_alignment13" name="down"/>
        <tree idref="Tree.t:COII_alignment1" name="down"/>
        <tree idref="Tree.t:esc_alignment12" name="down"/>
        <tree idref="Tree.t:ND1_alignment1" name="down"/>
        <tree idref="Tree.t:28S_alignment" name="down"/>
        <parameter idref="popSizeTop" name="down"/>
    </operator>

These are the names of the linked genes as in BEAUTI, which should related to all codons within the gene. However, further down we see stuff like this: 

    <operator id="updown.cdc6_alignment2" scaleFactor="0.75" spec="UpDownOperator" weight="3.0">
        <parameter id="clockRate.c:cdc6_alignment2" name="up">1.0</parameter>
    </operator>

    <operator id="strictClockUpDownOperator.c:cdc6_alignment13" scaleFactor="0.75" spec="UpDownOperator" weight="3.0">
        <parameter idref="clockRate.c:cdc6_alignment13" name="up"/>
        <tree idref="Tree.t:cdc6_alignment13" name="down"/>
    </operator>


It seems to me that something has gone wrong in defining the first operator as all data on the 2nd codon should be within the information in the linked clock operators defined in the second operator.

There is one operator in the xml for each of the codons in BEAUTI to another partition. If I delete all these extra operators, BEAST runs. 

The big question is - is deleting them a problem? Is this a me or a Beauti error? 

Cheers,

Renee

François

unread,
Nov 4, 2014, 12:45:30 PM11/4/14
to beast...@googlegroups.com

Hello,

  I am encountering the same issue with BEAST 2.1.3 and was wondering if you (or someone) had found a solution to this error message?

  Thanks!
  -- François

Dan Proud

unread,
Mar 9, 2016, 11:13:29 PM3/9/16
to beast-users
Hello,

I just wanted to add to this discussion as I was experiencing the same problem and I believe that I discovered the cause. After using BEAUti to create the XML file, I received the same error upon trying to run it in BEAST. When I inspected the XML file I found some problems in the operators. Several operators contained references to partitions that do not exist in the dataset. For example, in my file it showed:

    <operator id="relaxedUpDownOperator.c:COI_1" spec="UpDownOperator" scaleFactor="0.75" weight="3.0">
        <up idref="ucldMean.c:COI_1"/>
        <down idref="Tree.t:mytree"/>
    </operator>

    <operator id="relaxedUpDownOperator.c:COI_3" spec="UpDownOperator" scaleFactor="0.75" weight="3.0">
        <up idref="ucldMean.c:28S"/>
        <up idref="ucldMean.c:COI_1"/>
        <up idref="ucldMean.c:28S"/>
        <up idref="ucldMean.c:COI_2"/>
        <down idref="Tree.t:mytree"/>
        <down idref="Tree.t:mytree"/>
        <down idref="Tree.t:mytree"/>
        <down idref="Tree.t:mytree"/>
    </operator>

    <operator id="relaxedUpDownOperator.c:COI_31" spec="UpDownOperator" scaleFactor="0.75" weight="3.0">
        <up idref="ucldMean.c:COI_1"/>
        <up idref="ucldMean.c:28S"/>
        <down idref="Tree.t:mytree"/>
        <down idref="Tree.t:mytree"/>
    </operator>

The first operator is normal. The other two contain references to incorrect IDs. In fact, in the third example, it shows COI_31 which does not exist in my dataset (it added a 1 after COI_3). It also references 28S under an operator that is related to COI.

The cause of the problem seems to be a bug in BEAUti (v2.3.2). This error occurs only when I used the CLONE function for setting up the site and clock models. In other words, after I created a site model for 18S, I highlighted 28S, COIc1, COIc2, and COIc3 and cloned the information so that all the models were the same (and then I made minor adjustments accordingly).

This error did not occur when I set up each of the site/clock models individually, without using clone. So, my advice is to avoid using clone in this version of BEAUti.

Hopefully this information will help users to avoid the problem until developers can come up with a fix.

Cheers,
Dan
Reply all
Reply to author
Forward
0 new messages