Single cells, many algorithms. The goal of this page is to catalog the many algorithms that estimate pseudotimes for cells based on their gene expression levels. This problem is also referred to as single-cell trajectory inference or ordering. Ultimately, it will contain method names, software links, manuscript links, and brief comments on the particular strengths of each method. Initially, it seeks simply to list as many methods as possible. Some related methods not specifically designed for RNA-seq (e.g. mass cytometry) are included as well. The list also includes methods that are specifically designed to take pseudotemporal data as input.
The initial list was created by Anthony Gitter, but pull requests are very welcome.
Informally, the pseudotime estimation problem can be stated as:
- Given: single-cell gene expression measurements for a heterogeneous collection of cells that is transitioning from biological state A to state B
- Return: a quantitative value for each cell that represents its progress in the A to B transition
There are many ways to approach this problem, and major algorithmic steps that are common to most (but not all) methods are:
- Reduce the dimension of the dataset
- Find a smooth progression through the low dimensional data, assuming that cells that are nearby one another in the low dimensional space have similar expression levels because they are at similar points in to A to B process
Dimension reduction sometimes relies on knowledge of important marker genes and sometimes uses the full gene expression matrix. The trajectory through the low dimensional space can be identified using graph algorithms (e.g., minimum spanning tree or shortest path), principal curves, or probabilistic models (e.g., Gaussian process).
Bacher and Kendziorski 2016, Trapnell 2015, Tanay and Regev 2017 and Moon et al. 2017 provide a more comprehensive overview of single-cell RNA-seq and the pseudotime estimation problem. Cannoodt et al. 2016 reviews pseudotime inference algorithms. Pablo Cordero's blog post discusses why it is hard to recover the correct dynamics of a system from single-cell data. OMICtools has compiled a more general list of methods for single-cell RNA-seq https://omictools.com/single-cell-rna-seq-category. The Hemberg lab single-cell RNA-seq course has an overview of five pseudotime algorithms with usage examples.
Some of the distinguishing factors among algorithms include:
- Use of prior knowledge such as capture times (DeLorean) or switch-like marker genes (Ouija)
- Modeling specific types of biological processes such as branching processes in differentiation (multiple methods) or cyclic processes (Oscope)
- Return a single pseudotime or a posterior distribution over pseudotimes for each cell
- Perform additional analyses after inferring pseudotimes such as regulatory network inference or identifying differentially expressed genes over pseudotime
Saelens et al. 2018 performed a comprehensive evaluation of 29 different single-cell trajectory inference methods and discuss the different types of algorithms in more detail. They benchmark both quantitative performance and assess software quality. See their GitHub repository as well.
Software: https://bioconductor.org/packages/release/bioc/html/monocle.html
Monocle manuscript: http://www.nature.com/nbt/journal/v32/n4/full/nbt.2859.html
Census manuscript: http://doi.org/10.1038/nmeth.4150
Monocle 2 manuscript: https://doi.org/10.1101/110668
Wanderlust software: http://www.c2b2.columbia.edu/danapeerlab/html/wanderlust.html
Wanderlust manuscript: http://www.cell.com/cell/abstract/S0092-8674(14)00471-1
Cycler software: http://www.cellcycler.org/
Cycler manuscript: http://www.nature.com/nmeth/journal/v12/n10/full/nmeth.3545.html
Wishbone software: http://www.c2b2.columbia.edu/danapeerlab/html/wishbone.html
Wishbone manuscript: http://www.nature.com/nbt/journal/v34/n6/full/nbt.3569.html
Software: https://github.com/gcyuan/SCUBA
Manuscript: http://www.pnas.org/content/111/52/E5643.abstract
Software: https://www.biostat.wisc.edu/~kendzior/OSCOPE/
Manuscript: http://www.nature.com/nmeth/journal/v12/n10/full/nmeth.3549.html
Diffusion maps software: https://www.helmholtz-muenchen.de/icb/research/groups/machine-learning/projects/single-cell-diffusion-map/index.html
Diffusion maps manuscripts: http://www.nature.com/nbt/journal/v33/n3/full/nbt.3154.html and http://bioinformatics.oxfordjournals.org/content/31/18/2989.abstract
destiny software: http://www.helmholtz-muenchen.de/icb/research/groups/quantitative-single-cell-dynamics/software/destiny/index.html
destiny manuscript: http://bioinformatics.oxfordjournals.org/content/32/8/1241.full
Software: https://github.com/JohnReid/DeLorean
Manuscript: http://bioinformatics.oxfordjournals.org/content/early/2016/06/16/bioinformatics.btw372.abstract
Manuscript: http://www.cell.com/cell-stem-cell/abstract/S1934-5909(15)00312-4
Software: https://github.com/kieranrcampbell/embeddr
Manuscript: http://biorxiv.org/content/early/2015/09/18/027219
GP-LVM software: https://github.com/kieranrcampbell/gpseudotime
GP-LVM manuscript: http://biorxiv.org/content/early/2015/09/15/026872
pseudogp software: https://github.com/kieranrcampbell/pseudogp
pseudogp manuscript: http://journals.plos.org/ploscompbiol/article?id=10.1371/journal.pcbi.1005212
Analysis code: https://github.com/Teichlab/spectrum-of-differentiation-supplements
Manuscript: http://www.cell.com/cell-reports/abstract/S2211-1247(15)01538-7
Software: https://github.com/jw156605/SLICER
Manuscript: http://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-0975-3
Software: https://github.com/zji90/TSCAN
Manuscript: http://nar.oxfordjournals.org/content/early/2016/05/13/nar.gkw430.abstract
Software: https://github.com/hmatsu1226/SCOUP
Manuscript: https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-016-1109-3
Software: https://github.com/mzwiessele/topslam
Manuscript: http://biorxiv.org/content/early/2016/06/08/057778
Software: https://github.com/kieranrcampbell/ouija
Manuscript: http://biorxiv.org/content/early/2016/06/23/060442
Software: https://github.com/kstreet13/slingshot
Extended vignette: https://github.com/drisso/bioc2016singlecell/tree/master/vignettes
Manuscript: http://biorxiv.org/content/early/2017/04/19/128843
Workflow manuscript: http://dx.doi.org/10.12688/f1000research.12122.1
Software: https://github.com/Teichlab/GPfates
Manuscript: http://biorxiv.org/content/early/2016/09/13/074971
Software: https://github.com/dimenwarper/scimitar
Manuscript: http://biorxiv.org/content/early/2016/08/18/070151
Software: https://github.com/lengning/WaveCrest
Manuscript: http://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-1033-x
Software: https://cran.r-project.org/web/packages/LEAP/index.html
Software: http://bioconductor.org/packages/release/bioc/html/cellTree.html
Manuscript: http://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-016-1175-6
Software: http://www.github.com/kieranrcampbell/mfa
Manuscript: http://doi.org/10.12688/wellcomeopenres.11087.1
Preprint: http://biorxiv.org/content/early/2016/09/21/076547
Software: https://github.com/JinmiaoChenLab/Mpath
Manuscript: http://www.nature.com/ncomms/2016/160630/ncomms11988/full/ncomms11988.html
Software: https://github.com/rcannood/SCORPIUS
Manuscript: http://biorxiv.org/content/early/2016/10/06/079509
Software: https://github.com/hmatsu1226/SCODE
Manuscript: http://biorxiv.org/content/early/2016/11/22/088856
Software: https://bioconductor.org/packages/release/bioc/html/switchde.html
Manuscript: https://doi.org/10.1093/bioinformatics/btw798
Software: https://github.com/pkathail/magic/
Manuscript: https://doi.org/10.1101/111591
Software: https://github.com/SmitaKrishnaswamy/PHATE
Manuscript: https://doi.org/10.1101/120378
Manuscript: https://doi.org/10.1101/124693
Software: https://www.andrew.cmu.edu/user/sabrinar/TASIC
Manuscript: https://doi.org/10.1093/bioinformatics/btx173
Software: https://github.com/macsharma/FORKS
Manuscript: https://doi.org/10.1101/132811
Software: https://github.com/mukhes3/UNCURL_release
Manuscript: https://doi.org/10.1101/142398
Software: https://github.com/tinglab/reCAT
Manuscript: https://doi.org/10.1038/s41467-017-00039-z
Software: https://github.com/kieranrcampbell/phenopath
Manuscript: https://doi.org/10.1101/159913
Software: https://github.com/ManchesterBioinference/BranchedGP
Manuscript: https://doi.org/10.1101/166868
Software: https://github.com/cap76/BranchingGPs (not yet available as of latest commit)
Manuscript: https://doi.org/10.1101/167684
Software: https://github.com/jw156605/MATCHER and https://pypi.python.org/pypi/pymatcher
Manuscript: https://doi.org/10.1186/s13059-017-1269-0
Software: https://github.com/WangShuxiong/SoptSC
Manuscript: Assessment of clonal kinetics reveals multiple trajectories of dendritic cell development
Software: https://github.com/AllonKleinLab/PBA
Manuscript: Fundamental limits on dynamic inference from single cell snapshots
Software: https://github.com/theislab/scanpy and https://pypi.python.org/pypi/scanpy
Manuscript: Scanpy for analysis of large-scale single-cell gene expression data
Software: https://github.com/roshan9128/tides
Manuscript: https://doi.org/10.1101/155028
Manuscript: https://doi.org/10.1101/191056
Software: https://github.com/theislab/pseudodynamics
Manuscript: Beyond pseudotime: Following T-cell maturation in single-cell RNAseq time series
Software: https://github.com/theislab/graph_abstraction
Manuscript: GPseudoRank: MCMC for sampling from posterior distributions of pseudo-orderings using Gaussian processes
Software: https://github.com/dgrun/FateID
Manuscript: FateID infers cell fate bias in multipotent progenitors from single-cell RNA-seq data
Software: https://github.com/ManchesterBioinference/GrandPrix
Manuscript: GrandPrix: Scaling up the Bayesian GPLVM for single-cell data
Manuscript: Modeling acute myeloid leukemia in a continuum of differentiation states
Software: https://github.com/phoenixding/scdiff and https://pypi.python.org/pypi/scdiff/
Manuscript: Reconstructing differentiation networks and their regulation from time series single cell expression data
Manuscript: Topographer Reveals Stochastic Dynamics of Cell Fate Decisions from Single-Cell RNA-Seq Data
Manuscript: Quantifying Waddington's epigenetic landscape: a comparison of single-cell potency measures
Software: https://github.com/ucasdp/DensityPath
Manuscript: https://doi.org/10.1101/155473
Manuscript: Comparison of computational methods for imputing single-cell RNA-sequencing data
Software: https://github.com/soedinglab/prosstt
Manuscript: PROSSTT: probabilistic simulation of single-cell RNA-seq data for complex differentiation processes
Software: https://github.com/shenorrLab/cellAlign
Manuscript: Alignment of single-cell trajectories to compare cellular expression dynamics