Fork of

Alexey Kozlov a96be2fae3 fix printf format specifier for size_t (#145) 1 year ago
examples c6a65929c8 pllmod_treeinfo: fix a couple of small memory leaks 4 years ago
libs a96be2fae3 fix printf format specifier for size_t (#145) 1 year ago
m4 0b8d95d9f3 Updated README files 7 years ago
src a96be2fae3 fix printf format specifier for size_t (#145) 1 year ago
test 8295985412 pllmod_tree: do not duplicate bootstrap support at the root node 4 years ago
.gitignore beb55ef169 adapt parallel model optimization to Kassian's load balancing 6 years ago
.gitmodules d6cc565b67 Set libpll-2 submodule to master branch 6 years ago
CMakeLists.txt 277acc767b Fix libpll include path when libpll is not in libs/libpll 5 years ago f3c446ee44 Added autotools 7 years ago
LICENSE.txt f3c446ee44 Added autotools 7 years ago 350b35e0e4 Add install-with-libpll script to distribution target 5 years ago ee8181ebcf Add a variable to specify the modules to build and update the wiki 5 years ago f3c446ee44 Added autotools 7 years ago d16c56a6c9 1. Allow to switch between multiple Newton-Raphson variants for branch length optimization in runtime. 5 years ago
doxy.cfg 25a566f171 Doxygen configuration file and initial setup 7 years ago 8a9b384b91 allow to disable SSE/AVX vectorization 6 years ago


High Level modules for the Low Level Phylogenetic Likelihood Library


Clone & compile

PLL-Modules depends on the PLL library submodule (libs/libpll), so you have to clone the repository as follows:

git clone --recursive


git clone
git submodule update --init --recursive

To compile and install module with the bundled version libpll, run:


Alternatively, if you want to use a different version of libpll, you can run:

./configure CPPFLAGS="-Ipath/to/libpll" LDFLAGS="-Lpath/to/libpll"
make install    # as root, otherwise run: sudo make install

PLL-Modules can now also be built using cmake:

mkdir build
cd build
cmake ..

On can also build specific modules only using (remove the modules you do not need):

cmake -DPLLMODULES_COMPONENTS="optimize;algorithm;binary;msa;tree;util" ..

The library will be installed on the operating system's standard paths. For some GNU/Linux distributions it might be necessary to add that standard path (typically /usr/local/lib) to /etc/ and run ldconfig.

Microsoft Windows compatibility was tested with a cross-compiler and seems to work out-of-the-box using MingW.


PLL-Modules is documented with Doxygen. Run the following command to generate the API description in HTML and LaTeX formats:

doxygen doxy.cfg

Afterwards, the html API documentation is available at doc/html/index.html. Additionally, you can generate pdf documentation by compiling the LaTeX output:

cd doc/latex

Usage examples

Please refer to the wiki page and/or the examples directory.


Please refer to the wiki page.

Available functionality

Below is a list of available modules in the current version. Check each individual file in the correspondent subdirectory for more information.

Module Prefix Description
binary pllmodbin Binary I/O
msa pllmodmsa MSA management
optimize pllmodopt Optimization algorithms
tree pllmodtree Tree management
util pllmodutil Convenience functions
algorithm pllmodalgo High level algorithms