Implementation in WebPPL
WebPPL is a probabilistic programming language for the web developed by Noah Goodman et al. that I used to prototyping the implementation of the QT model as a stable version of TreePPL was not available in 2022. This prototype can be cloned from https://github.com/vsenderov/qtbirds.webppl.
Simulation
Its main usefulness is simulating under Algorithm 1 (qtbirds-sim.wppl
)—well tested—and Algorithm 2 (qtbirds-sim2.wppl
)—not so well tested. You can simulate directly from the command like (see the comments at the top of the file for details):
* webppl qtbirds-sim.wppl --require fasta2json
* --require .
* --require webppl-fs
* --require phyjs -- ...
Or, you can invoke it from Python.
Inference
WebPPL can also do sequential Monte-Carlo (SMC) and Markov Chain Monte-Carlo inference, but it is not very performant for our model. For this reason qtbirds-inf*
are deprecated as of 2024-09-26.
Version
You should use version sp13.1.0 of qtbirds.webppl (see GitHub tags), as version 14 contains a wrong inference schema. Either way, you should not use qtbirds.webppl for inference.