lmaurits / BEASTling

A linguistics-focussed command line tool for generating BEAST XML files.
BSD 2-Clause "Simplified" License
20 stars 6 forks source link

UpDownOperator cannot operate on trees. #17

Closed Anaphory closed 8 years ago

Anaphory commented 8 years ago

Generating a beast xml file using beastling, I get

Error 130 parsing the xml input file

nullThis BEASTInterface (UpDown) has no input with name tree. Choose one of these inputs: scaleFactor,up,down,optimise,elementWise,upper,lower,weight

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

caused by the following lines of code:

    <operator id="UpDown" scaleFactor="1.0" spec="UpDownOperator" weight="30.0">
      <tree idref="Tree.t:beastlingTree" />
      <parameter idref="birthRate.t:beastlingTree" />
    </operator>

These are generated by beastxml.py:201ff.

        # Up/down
        updown = ET.SubElement(self.run, "operator", {"id":"UpDown","spec":"UpDownOperator","scaleFactor":"1.0", "weight":"30.0"})
        ET.SubElement(updown, "tree", {"idref":"Tree.t:beastlingTree"})
        ET.SubElement(updown, "parameter", {"idref":"birthRate.t:beastlingTree"})
        if self.config.calibrations:
            for model in self.config.models:
                ET.SubElement(updown, "parameter", {"idref":"clockRate.c:%s" % model.name})

Checking the beast2 git, UpDownOperator never dealt with trees, what operator did you mean?

lmaurits commented 8 years ago

Closing due to inability to duplicate.