Title: | Maximum-Likelihood Perfect Phylogeny Inference at Scale |
URL: | https://github.com/kharchenkolab/scistreer, https://kharchenkolab.github.io/scistreer/ |
Version: | 1.2.0 |
Description: | Fast maximum-likelihood phylogeny inference from noisy single-cell data using the 'ScisTree' algorithm by Yufeng Wu (2019) <doi:10.1093/bioinformatics/btz676>. 'scistreer' provides an 'R' interface and improves speed via 'Rcpp' and 'RcppParallel', making the method applicable to massive single-cell datasets (>10,000 cells). |
License: | GPL-3 |
Encoding: | UTF-8 |
LazyData: | true |
Depends: | R (≥ 4.1.0) |
Imports: | ape, dplyr, ggplot2, ggtree, igraph, parallelDist, patchwork, phangorn, Rcpp, reshape2, RcppParallel, RhpcBLASctl, stringr, tidygraph |
Suggests: | testthat (≥ 3.0.0) |
Config/testthat/edition: | 3 |
LinkingTo: | Rcpp, RcppArmadillo, RcppParallel |
NeedsCompilation: | yes |
SystemRequirements: | GNU make |
Author: | Teng Gao [cre, aut], Evan Biederstedt [aut], Peter Kharchenko [aut], Yufeng Wu [aut] |
Maintainer: | Teng Gao <tgaoteng@gmail.com> |
RoxygenNote: | 7.2.2 |
Packaged: | 2023-06-15 19:49:42 UTC; teng |
Repository: | CRAN |
Date/Publication: | 2023-06-15 20:20:02 UTC |
Example genotype probability matrix
Description
Example genotype probability matrix
Usage
P_example
Format
An object of class matrix
(inherits from array
) with 1000 rows and 25 columns.
Smaller example genotype probability matrix
Description
Smaller example genotype probability matrix
Usage
P_small
Format
An object of class matrix
(inherits from array
) with 100 rows and 25 columns.
Find maximum lilkelihood assignment of mutations on a tree
Description
Find maximum lilkelihood assignment of mutations on a tree
Usage
annotate_tree(tree, P)
Arguments
tree |
phylo Single-cell phylogenetic tree |
P |
matrix Genotype probability matrix |
Value
tbl_graph A single-cell phylogeny with mutation placements
Examples
gtree_small = annotate_tree(tree_small, P_small)
Convert a single-cell phylogeny with mutation placements into a mutation graph
Description
Convert a single-cell phylogeny with mutation placements into a mutation graph
Usage
get_mut_graph(gtree)
Arguments
gtree |
tbl_graph The single-cell phylogeny |
Value
igraph Mutation graph
Examples
mut_graph = get_mut_graph(gtree_small)
Smaller example annotated tree built from P_small
Description
Smaller example annotated tree built from P_small
Usage
gtree_small
Format
An object of class tbl_graph
(inherits from igraph
) of length 199.
Annotate the direct upstream or downstream mutations on the edges
Description
Annotate the direct upstream or downstream mutations on the edges
Usage
label_edges(G)
Arguments
G |
igraph Mutation graph |
Value
igraph Mutation graph
From ape; will remove once new ape version is released https://github.com/emmanuelparadis/ape/issues/54
Description
From ape; will remove once new ape version is released https://github.com/emmanuelparadis/ape/issues/54
Usage
ladderize(phy, right = TRUE)
Arguments
phy |
phylo The phylogeny |
right |
logical Whether ladderize to the right |
Examples
tree_small = ladderize(tree_small)
Mutation placements calculated from tree_small and P_small
Description
Mutation placements calculated from tree_small and P_small
Usage
mut_nodes_small
Format
An object of class data.frame
with 9 rows and 2 columns.
Transfer mutation assignment onto a single-cell phylogeny
Description
Transfer mutation assignment onto a single-cell phylogeny
Usage
mut_to_tree(gtree, mut_nodes)
Arguments
gtree |
tbl_graph The single-cell phylogeny |
mut_nodes |
dataframe Mutation placements |
Value
tbl_graph A single-cell phylogeny with mutation placements
Examples
gtree_small = mut_to_tree(gtree_small, mut_nodes_small)
Maximum likelihood tree search via NNI
Description
Maximum likelihood tree search via NNI
Usage
perform_nni(
tree_init,
P,
max_iter = 100,
eps = 0.01,
ncores = 1,
verbose = TRUE
)
Arguments
tree_init |
phylo Intial tree |
P |
matrix Genotype probability matrix |
max_iter |
integer Maximum number of iterations |
eps |
numeric Tolerance threshold in likelihood difference for stopping |
ncores |
integer Number of cores to use |
verbose |
logical Verbosity |
Value
multiPhylo List of trees corresponding to the rearrangement steps
Examples
tree_list = perform_nni(tree_upgma, P_small)
Plot phylogeny and mutation heatmap
Description
Plot phylogeny and mutation heatmap
Usage
plot_phylo_heatmap(tree, P, branch_width = 0.5, root_edge = TRUE)
Arguments
tree |
phylo or tbl_graph Phylogeny |
P |
matrix Genotype probability matrix |
branch_width |
numeric Branch width |
root_edge |
logical Whether to plot root edge |
Value
ggplot Plot visualizing the single-cell phylogeny and mutation probability heatmap
Examples
p = plot_phylo_heatmap(tree_small, P_small)
Run the scistree workflow
Description
Run the scistree workflow
Usage
run_scistree(
P,
init = "UPGMA",
ncores = 1,
max_iter = 100,
eps = 0.01,
verbose = TRUE
)
Arguments
P |
matrix Genotype probability matrix (cell x mutation). Each entry is a probability (0-1) that the cell harbors the mutation |
init |
character Initialization strategy; UPGMA or NJ |
ncores |
integer Number of cores to use |
max_iter |
integer Maximum number of iterations |
eps |
numeric Tolerance threshold in likelihood difference for stopping |
verbose |
logical Verbosity |
Value
phylo A maximum-likelihood phylogeny
Examples
tree_small = run_scistree(P_small)
Score a tree based on maximum likelihood
Description
Score a tree based on maximum likelihood
Usage
score_tree(tree, P, get_l_matrix = FALSE)
Arguments
tree |
phylo object |
P |
genotype probability matrix |
get_l_matrix |
whether to compute the whole likelihood matrix |
Value
list Likelihood scores of a tree
Examples
tree_likelihood = score_tree(tree_upgma, P_small)$l_tree
Convert the phylogeny from tidygraph to phylo object modified from R package alakazam, converts a tbl_graph to a phylo object
Description
Convert the phylogeny from tidygraph to phylo object modified from R package alakazam, converts a tbl_graph to a phylo object
Usage
to_phylo(graph)
Arguments
graph |
tbl_graph The single-cell phylogeny |
Value
phylo The single-cell phylogeny
Examples
tree_small = to_phylo(annotate_tree(tree_small, P_small))
Annotate the direct upstream or downstream node on the edges
Description
Annotate the direct upstream or downstream node on the edges
Usage
transfer_links(G)
Arguments
G |
igraph Mutation graph |
Value
igraph Mutation graph
Smaller example tree built from P_small
Description
Smaller example tree built from P_small
Usage
tree_small
Format
An object of class phylo
of length 5.
Example tree built using UPGMA from P_small
Description
Example tree built using UPGMA from P_small
Usage
tree_upgma
Format
An object of class phylo
of length 4.