SPLITT is a one-header C++ library that makes it easy to program pre-order and post-order traversal algorithms over tree-like data. The library is written in C++11. If OpenMP is enabled during compilation, SPLITT can take advantage of a multi-core CPU and/or vectorized instructions to execute the tree traversal in parallel.
The SPLITT library represents a C++ header file called “SPLITT.h”. Downloading the latest version of the file from github and including it in one or more of your C++ files is all you need to start using it. However, before you can do anything useful with SPLITT you will need to get familiar with some of its classes, i.e. its programming interface.
The R-package called with the same name (SPLITT) bundles the SPLITT.h header together with this documentation as well as some helper functions for creating R-packages using SPLITT. You will find it useful to install this package if you wish to create R-pacages that call SPLITT via Rcpp modules. This is explained in the Calling SPLITT from an R-package guide.
The research article “Parallel Likelihood Calculation for Phylogenetic Comparative Models: the SPLITT C++ Library” introduces the library and reports a large-scale performance benchmark. The example application to the PMM model depicted on Fig. 1 in this article is used as a coding example in the SPLITT online documentation. The article is currently in peer review for a publication and is available as a preprint from BioRxiv.
git clone https://github.com/venelin/SPLITT
will not download these data-files. Instead, the cloned repository will contain small text files of the same names, pointing to the real files in the LFS system. If you need to download the data-files, e.g. to reproduce the test-results, you need to install git LFS on your system. You can read how to do this in the documentation accessible from the git-lfs project page.To give credit to the SPLITT library in a publication, please cite the following article:
Mitov, V., & Stadler, T. (2018). Parallel Likelihood Calculation for Phylogenetic Comparative Models: the SPLITT C++ Library. bioRxiv, 235739. http://doi.org/10.1101/235739
The SPLITT R-package uses the following 3rd party R-packages:
Copyright 2017-2019 Venelin Mitov
Source code to SPLITT is made available under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at the user’s option) any later version. SPLITT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
Csardi, Gabor, Gregory Jefferis, Jennifer Bryan, Jeroen Ooms, Jim Hester, Karthik Ram, and Stefan Widgren. 2018. Git2r: Provides Access to Git Repositories. https://CRAN.R-project.org/package=git2r.
Eddelbuettel, Dirk, Romain Francois, JJ Allaire, Kevin Ushey, Qiang Kou, Nathan Russell, Douglas Bates, and John Chambers. 2018. Rcpp: Seamless R and C++ Integration. https://CRAN.R-project.org/package=Rcpp.
Mitov, Venelin, and Tanja Stadler. 2018. “Parallel likelihood calculation for phylogenetic comparative models: The SPLITT C++ library.” Methods in Ecology and Evolution, December, 2041–210X.13136.
Paradis, Emmanuel, Simon Blomberg, Ben Bolker, Joseph Brown, Julien Claude, Hoa Sien Cuong, Richard Desper, et al. 2018. Ape: Analyses of Phylogenetics and Evolution. https://CRAN.R-project.org/package=ape.
Wickham, Hadley, Peter Danenberg, and Manuel Eugster. 2018. Roxygen2: In-Line Documentation for R. https://CRAN.R-project.org/package=roxygen2.
Wickham, Hadley, and Jay Hesselberth. 2018. Pkgdown: Make Static Html Documentation for a Package.