jjmccollum / teiphy

A Python package for converting TEI XML collations to NEXUS, BEAST 2.7 XML, and other formats
MIT License
11 stars 3 forks source link

Change AncestralStateLogger to AncestralSequenceLogger in BEAST output #82

Closed jjmccollum closed 7 months ago

jjmccollum commented 7 months ago

When BEAST migrated from version 2.6 to 2.7, the structure of its code base (and accordingly, its XML element specs) changed slightly. In particular, the AncestralSequenceLogger class that used to be in the beast/evolution/likelihood directory is no longer included in the core code base at all. It is now part of the BEAST-classic package.

When I wrote teiphy's BEAST XML output template, I was not aware of this, and I mistakenly had the template use AncestralStateLogger elements from the BEASTLabs package. The template should be corrected to use elements with spec="beastclassic.evolution.likelihood.AncestralSequenceLogger" instead of ones with spec="beastlabs.evolution.likelihood.AncestralStateLogger". More broadly, the ancestral sequence loggers should follow the template below:

<log spec="beastclassic.evolution.likelihood.AncestralSequenceLogger" id="morphTreeLikelihood.character.1.anclogger" tag="morphTreeLikelihood.character.1" data="@filter.1" siteModel="@morphSiteModel.1" branchRateModel="@clock" tree="@tree" useAmbiguities="true" useTipLikelihoods="true"/>