amkozlov / raxml-ng

RAxML Next Generation: faster, easier-to-use and more flexible
GNU Affero General Public License v3.0
398 stars 64 forks source link
bioinformatics maximum-likelihood mpi phylogenetics pthreads

RAxML Next Generation

Build Status DOI License

Introduction

RAxML-NG is a phylogenetic tree inference tool which uses maximum-likelihood (ML) optimality criterion. Its search heuristic is based on iteratively performing a series of Subtree Pruning and Regrafting (SPR) moves, which allows to quickly navigate to the best-known ML tree. RAxML-NG is a successor of RAxML (Stamatakis 2014) and leverages the highly optimized likelihood computation implemented in libpll (Flouri et al. 2014).

RAxML-NG offers improvements in speed, flexibility and user-friendliness over the previous RAxML versions. It also implements some of the features previously available in ExaML (Kozlov et al. 2015), including checkpointing and efficient load balancing for partitioned alignments (Kobert et al. 2014).

RAxML-NG is currently under active development, and the mid-term goal is to have most functionality of RAxML 8.x covered. You can see some of the planned features here.

Documentation: github wiki

Installation instructions

1. Install the dependecies. On Ubuntu (and other Debian-based systems), you can simply run:

sudo apt-get install flex bison libgmp3-dev

For other systems, please make sure you have following packages/libraries installed:

If you do not want to use git submodules (e.g., for packaging), you also need to install:

2. Build RAxML-NG.

PTHREADS version:

git clone --recursive https://github.com/amkozlov/raxml-ng
cd raxml-ng
mkdir build && cd build
cmake ..
make

MPI version:

git clone --recursive https://github.com/amkozlov/raxml-ng
cd raxml-ng
mkdir build && cd build
cmake -DUSE_MPI=ON ..
make

Portable PTHREADS version (static linkage, compatible with old non-AVX CPUs):

git clone --recursive https://github.com/amkozlov/raxml-ng
cd raxml-ng
mkdir build && cd build
cmake -DSTATIC_BUILD=ON -DENABLE_RAXML_SIMD=OFF -DENABLE_PLLMOD_SIMD=OFF ..
make

Documentation and Support

Documentation can be found in the github wiki. For a quick start, please check out the hands-on tutorial.

Also please check the online help with raxml-ng -h.

If still in doubt, please feel free to post to the RAxML google group.

Usage examples

  1. Perform single quick&dirty tree inference on DNA alignment (one parsimony starting tree, general time-reversible model, ML estimate of substitution rates and nucleotide frequencies, discrete GAMMA model of rate heterogeneity with 4 categories):

    ./raxml-ng --search1 --msa testDNA.fa --model GTR+G

  2. Perform an all-in-one analysis (ML tree search + non-parametric bootstrap) (10 randomized parsimony starting trees, fixed empirical substitution matrix (LG), empirical aminoacid frequencies from alignment, 8 discrete GAMMA categories, 200 bootstrap replicates):

    ./raxml-ng --all --msa testAA.fa --model LG+G8+F --tree pars{10} --bs-trees 200

  3. Optimize branch lengths and free model parameters on a fixed topology (using multiple partitions with proportional branch lengths)

    ./raxml-ng --evaluate --msa testAA.fa --model partitions.txt --tree test.tree --brlen scaled

  4. Map support values from existing set of replicate trees:

    ./raxml-ng --support --tree bestML.tree --bs-trees bootstraps.tree

License and citation

The code is currently licensed under the GNU Affero General Public License version 3.

When using RAxML-NG, please cite this paper:

Alexey M. Kozlov, Diego Darriba, Tomáš Flouri, Benoit Morel, and Alexandros Stamatakis (2019) RAxML-NG: A fast, scalable, and user-friendly tool for maximum likelihood phylogenetic inference. Bioinformatics, 35 (21), 4453-4455 doi:10.1093/bioinformatics/btz305

The team

References