Learn R Programming

ScisTreeR

Fast maximum-likelihood phylogeny inference from noisy single-cell data using the 'ScisTree' algorithm (Wu, Bioinformatics 2019). 'scistreer' provides an 'R' interface and improves speed via 'Rcpp' and 'RcppParallel', making the method applicable to massive single-cell datasets (>10,000 cells).

Installation

To install the stable CRAN version,

install.packages('scistreer', dependencies = TRUE)

To get the most recent updates, you can install the github version via devtools:

devtools::install_github('https://github.com/kharchenkolab/scistreer')

Usage

Within R, you only need to supply a genotype probability matrix (cell x mutation), where each entry is the probability that the cell harbors the mutation. For example,

treeML = run_scistree(P_example, ncores = 8, init = 'UPGMA', verbose = FALSE)

The output maximum likelihood tree is an ape::phylo object. You can visualize the output and the probability matrix as follows:

plot_phylo_heatmap(treeML, P_example)

Benchmark

scistreer is about 10x faster than the original implementation on a single thread. The runtime of scistreer can be further reduced by shared-memory multi-threading via RcppParallel.

Citations

For the original publication, please refer to:

Yufeng Wu, Accurate and efficient cell lineage tree inference from noisy single cell data: the maximum likelihood perfect phylogeny approach, Bioinformatics, Volume 36, Issue 3, 1 February 2020, Pages 742–750, https://doi.org/10.1093/bioinformatics/btz676

If you would like to cite this package, please use:

Teng Gao, Evan Biederstedt, Peter Kharchenko, Yufeng Wu (2022).

ScisTreeR: Speeding up the ScisTree Algorithm via RcppParallel. R package version 1.0.0. https://github.com/kharchenkolab/scistreer

Copy Link

Version

Install

install.packages('scistreer')

Monthly Downloads

384

Version

1.2.1

License

GPL-3

Issues

Pull Requests

Stars

Forks

Maintainer

Teng Gao

Last Published

February 5th, 2026

Functions in scistreer (1.2.1)

ladderize

From ape; will remove once new ape version is released https://github.com/emmanuelparadis/ape/issues/54
mut_nodes_small

Mutation placements calculated from tree_small and P_small
mut_to_tree

Transfer mutation assignment onto a single-cell phylogeny
get_mut_graph

Convert a single-cell phylogeny with mutation placements into a mutation graph
annotate_tree

Find maximum lilkelihood assignment of mutations on a tree
perform_nni

Maximum likelihood tree search via NNI
score_tree

Score a tree based on maximum likelihood
to_phylo

Convert the phylogeny from tidygraph to phylo object modified from R package alakazam, converts a tbl_graph to a phylo object
run_scistree

Run the scistree workflow
plot_phylo_heatmap

Plot phylogeny and mutation heatmap
label_edges

Annotate the direct upstream or downstream mutations on the edges
P_example

Example genotype probability matrix
P_small

Smaller example genotype probability matrix
tree_upgma

Example tree built using UPGMA from P_small
transfer_links

Annotate the direct upstream or downstream node on the edges
gtree_small

Smaller example annotated tree built from P_small
tree_small

Smaller example tree built from P_small