mrc-ide / PhyDyn

PhyDyn: Epidemiological modelling in BEAST
GNU General Public License v3.0
23 stars 7 forks source link

BEAUti support for v2.7 #12

Open rbouckaert opened 11 months ago

rbouckaert commented 11 months ago

Hi Igor,

Just wondering what the state of PhyDyn in BEAUti is at the moment. It looks like selecting the PhyDyn tree prior results in a few error messages suggesting something is missing. Is this something to be expected and should it still be working? If not, perhaps it should not be exposed to users just yet? Happy to assist if you think it would help.

Cheers Remco

emvolz commented 8 months ago

Hi @rbouckaert & @igococha , Is there a guide for updating packages to work with 2.7.X? We don't have any dedicated maintainers for this project right now. I can work on it, but not sure where to start. Lately we have had to advise people to use older versions of BEAST2.

igococha commented 8 months ago

Hi @emvolz and @rbouckaert , Sorry for the late reply. I can take care of this, I can stash the templates until I make them work again - they were never documented, they were used for our covid project so no harm for the time being. I will train someone at UTEC to take care of BEATS but may take some time so I will answer requests for the time being. Best, -- Igor

rbouckaert commented 8 months ago

There are some hints and tips here on how to migrate that could be helpful: https://github.com/CompEvol/beast2/blob/master/scripts/migrate.md Let me know if that is not sufficient or anything is unclear.

emvolz commented 7 months ago

To clarify, the issue with 2.7 is deeper than beauti integration, and in any case we think beauti is not a good way to configure PhyDyn analyses except for a few special cases. I was recently able to get PhyDyn to work with version 2.7, however not including a trajectory logger, which causes an error:

Failed to set the string value to 'PhyDynPopModel' for beastobject id=trajectoryLogger
java.lang.RuntimeException: Failed to set the string value to 'PhyDynPopModel' for beastobject id=trajectoryLogger
    at beast.base.core.Input.setValue(Unknown Source)
    at beast.base.core.BEASTInterface.setInputValue(Unknown Source)
    at beast.base.parser.XMLParser.setInput(Unknown Source)
    at beast.base.parser.XMLParser.createBeastObject(Unknown Source)
    at beast.base.parser.XMLParser.createObject(Unknown Source)
    at beast.base.parser.XMLParser.parseInputs(Unknown Source)
    at beast.base.parser.XMLParser.createObject(Unknown Source)
    at beast.base.parser.XMLParser.parseInputs(Unknown Source)
    at beast.base.parser.XMLParser.createObject(Unknown Source)
    at beast.base.parser.XMLParser.parseRunElement(Unknown Source)
    at beast.base.parser.XMLParser.parse(Unknown Source)
    at beast.base.parser.XMLParser.parseFile(Unknown Source)
    at beastfx.app.beast.BeastMCMC.parseArgs(Unknown Source)
    at beastfx.app.beast.BeastMain.main(Unknown Source)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.base/java.lang.reflect.Method.invoke(Unknown Source)
    at beast.pkgmgmt.launcher.BeastLauncher.run(Unknown Source)
    at beast.pkgmgmt.launcher.BeastLauncher.main(Unknown Source)

Error 124 parsing the xml input file

Failed to set the string value to 'PhyDynPopModel' for beastobject id=trajectoryLogger

Error detected about here:
  <beast>
      <run id='mcmc' spec='MCMC'>
          <logger id='popTrajLog' spec='Logger'>
              <log id='trajectoryLogger' spec='phydyn.loggers.TrajectoryLogger'>

Here is the xml: https://gist.github.com/emvolz/8bf01e675f8554033d67d231989b7c7d

rbouckaert commented 7 months ago

Changing popModel="PhyDynPopModel" to popModel="@PhyDynPopModel" on line 405 should fix that.