awesome-single-cell
Community-curated list of software packages and data resources for single-cell, including RNA-seq, ATAC-seq, etc.
Last updated Jul 7, 2026
3.8k
Stars
1.1k
Forks
12
Issues
+12
Stars/day
Attention Score
83
Topics
#analysis-pipeline#atac-seq#awesome-list#bioinformatics#cell-clusters#cell-differentiation#cell-populations#clustering#data-integration#data-visualization#dimensionality-reduction#gene-expression#gene-expression-profiles#python#rna-seq-data#rna-seq-experiments#scrna-seq-data#single-cell#spatial-transcriptomics
Language breakdown
No language data available.
▸ Files
click to expand
README
awesome-single-cell
List of software packages (and the people developing these methods) for single-cell data analysis, including RNA-seq, ATAC-seq, etc. Contributions welcome...
Contributors
Made with contrib.rocks.
Citation
NotebookLM Notebook
Interact with the contents of this repository through chat, audio summary/podcast, informational video, and interactive mindmap.
- https://notebooklm.google.com/notebook/ab5c5e5c-6907-4883-8918-f4868f15ff88
Package popularity
Software packages sorted by Gitub Stars.
- https://fbnrst.github.io/awesome-single-cell-stars/
Contents
- RNA-seq - Quality control - Gene regulatory network identification - Immune receptor profiling - Marker and differential gene expression identification - Cell clustering - Dimension reduction - Archetypal analysis - Count modelling and normalization - Batch-effect removal - Cell projection and unimodal integration - Simulation - Pseudotime and trajectory inference - Cell type identification and classification - Malignant cell identification - Doublet Identification - Cell subsampling - Feature (Gene) imputation - Copy number analysis - Variant calling - Epigenomics - Multi-assay data integration - Rare cell detection - Cellular interactions/communication - Single cell large model - Other applications - Spatial transcriptomics - Web portals and databases - Interactive visualization and analysis - Paper collections - Big data approach overview - Experimental design - Methods comparisons - Female - MaleSoftware packages
RNA-seq
- alevin-fry - [Rust] - 🐟 Rapid, accurate and memory-frugal preprocessing of single-cell and single-nucleus RNA-seq data.
- anchor - [Python] - ⚓ Find bimodal, unimodal, and multimodal features in your data
- AnnSQL - [Python] - ⛃ The AnnSQL package enables SQL based queries on AnnData objects using the DuckDB in-process database engine.
- ascend - [R] - ascend is an R package comprised of fast, streamlined analysis functions optimized to address the statistical challenges of single cell RNA-seq. The package incorporates novel and established methods to provide a flexible framework to perform filtering, quality control, normalization, dimension reduction, clustering, differential expression and a wide-range of plotting.
- BayesPrism - [R] - Bayesian cell Proportion Reconstruction Inferred using Statistical Marginalization (BayesPrism): A Fully Bayesian Inference of Tumor Microenvironment composition and gene expression.
- bigSCale - [matlab] - An analytical framework for big-scale single cell data.
- bonvoyage - [Python] - 📐 Transform percentage-based units into a 2d space to evaluate changes in distribution with both magnitude and direction.
- bustools - [C++] - A suite of tools for manipulating BUS files for single cell RNA-Seq pre-processing. bustools can be used to error correct barcodes, collapse UMIs, produce gene count or transcript compatibility count matrices, and is useful for many other tasks.
- ccRemover - [R] - Removes the Cell-Cycle Effect from Single-Cell RNA-Sequencing Data. Identifying and removing the cell-cycle effect from single-cell RNA-Sequencing data.
- celda - [R] - A suite of Bayesian hierarchical models and supporting functions to perform clustering of cells and genes for count data generated by scRNA-seq. Celda: a Bayesian model to perform co-clustering of genes into modules and cells into subpopulations using single-cell RNA-seq data. The package also includes DecontX.
- Cell_BLAST - [Python] - A BLAST-like toolkit for scRNA-seq data querying and automated annotation.
- CellCNN - [Python] - Representation Learning for detection of phenotype-associated cell subsets
- CellRanger - [Linux Binary] - Cell Ranger is a set of analysis pipelines that process Chromium single-cell RNA-seq output to align reads, generate gene-cell matrices and perform clustering and gene expression analysis. Software requires registration with 10xgenomics._
- cellTree - [R] - Cell population analysis and visualization from single cell RNA-seq data using a Latent Dirichlet Allocation model.
- clusterExperiment - [R] - Functions for running and comparing many different clusterings of single-cell sequencing data. Meant to work with SCONE and slingshot.
- Clustergrammer - [Python, JavaScript] - Interative web-based heatmap for visualizing and analyzing high dimensional biological data, including single-cell RNA-seq. Clustergrammer can be used within a Jupyter notebook as an interative widget that can be shared using GitHub and NBviewer, see example notebook.
- Clustergrammer2 - [Python, JavaScript] - Interative WebGL web-based heatmap for visualizing and analyzing single-cell high-dimensional and location-based biological data. Clustergrammer can be used within a Jupyter notebook as an interative widget that can be shared using GitHub and NBviewer, see case studies.
- CountClust - [R] - Functions for fitting Grade-of-Membership models, also known as "Topic models", to RNA-seq counts. These models generalize clustering methods to allow that each cell may belong to more than one cluster/topic.
- countsimQC - [R] - Compare characteristics of one or more synthetic (e.g., RNA-seq) count matrices to a real count matrix, possibly the one based on which the synthetic data sets were generated.
- cyclum - [python] - Cyclum is a novel AutoEncoder approach that characterizes circular trajectories in the high-dimensional gene expression space. Applying Cyclum to removing cell-cycle effects leads to substantially improved delineations of cell subpopulations, which is useful for establishing various cell atlases and studying tumor heterogeneity. bioRxiv
- CytoGuide - [C++,D3] - CyteGuide: Visual Guidance for Hierarchical Single-Cell Analysis
- DecontX - [R] - DecontX is a Bayesian method to automatically estimate and remove read contamination in individual cells from scRNA-seq experiments even without learning any information from empty cell barcodes (identified by cell calling for droplet-based methods). Decontamination of ambient RNA in single-cell RNA-seq with DecontX. Included in package celda.
- DESCEND - [R] - DESCEND deconvolves the true gene expression distribution across cells for UMI scRNA-seq counts. It provides estimates of several distribution based statistics (five distribution measurements and the coefficients of covariates (such as batches or cell size)).
- DeLorean - [R] - Bayesian pseudotime estimation algorithm that uses Gaussian processes to model gene expression profiles and provides a full posterior for the pseudotimes.
- dittoSeq - [R] - Bioconductor package offering user friendly visualization tools for single-cell and Bulk RNA Sequencing. Color blindness friendly by default; novice coder friendly; highly customizable and powerful enough to build publication-ready figures; universal in that it works directly with Seurat, SingleCellExperiment, and SummarizedExperiment objects and has import capabilities for edgeR DGElists.
- dropkick - [Python] - Automated cell filtering for single-cell RNA sequencing data.
- dynamo - [Python] - Inclusive model of expression dynamics with scSLAM-seq and multiomics, vector field reconstruction and potential landscape mapping.
- embeddr - [R] - Embeddr creates a reduced dimensional representation of the gene space using a high-variance gene correlation graph and laplacian eigenmaps. It then fits a smooth pseudotime trajectory using principal curves.
- Falco - [AWS cloud] - Falco: A quick and flexible single-cell RNA-seq processing framework on the cloud.
- FastProject - [Python] - Signature analysis on low-dimensional projections of single-cell expression data.
- flotilla - [Python] - Reproducible machine learning analysis of gene expression and alternative splicing data
- GPfates - [Python] - Model transcriptional cell fates as mixtures of Gaussian Processes
- GSEApy - [Python] - GSEApy: Gene Set Enrichment Analysis in Python. GSEApy is a Python/Rust implementation for GSEA and wrapper for Enrichr. GSEApy can be used for RNA-seq, ChIP-seq, Microarray data. It can be used for convenient GO enrichment and to produce publication quality figures in python.
- HocusPocus - [R] - Basic PCA-based workflow for analysis and plotting of single cell RNA-seq data.
- HTSeq - [Python] - A Python library to facilitate programmatic analysis of data from high-throughput sequencing (HTS) experiments. A popular component of
HTSeqishtseq-count, a script to quantify gene expression in bulk and single-cell RNA-Seq and similar experiments. - IA-SVA - [R] - Iteratively Adjusted Surrogate Variable Analysis (IA-SVA) is a statistical framework to uncover hidden sources of variation even when these sources are correlated with the biological variable of interest. IA-SVA provides a flexible methodology to i) identify a hidden factor for unwanted heterogeneity while adjusting for all known factors; ii) test the significance of the putative hidden factor for explaining the variation in the data; and iii), if significant, use the estimated factor as an additional known factor in the next iteration to uncover further hidden factors.
- ICGS - [Python] - Iterative Clustering and Guide-gene Selection (Olsson et al. Nature 2016). Identify discrete, transitional and mixed-lineage states from diverse single-cell transcriptomics platforms. Integrated FASTQ pseudoalignment /quantification (Kallisto), differential expression, cell-type prediction and optional cell cycle exclusion analyses. Specialized methods for processing BAM and 10X Genomics spares matrix files. Associated single-cell splicing PSI methods (MultIPath-PSI). Apart of the AltAnalyze toolkit along with accompanying visualization methods (e.g., heatmap, t-SNE, SashimiPlots, network graphs). Easy-to-use graphical user and commandline interfaces.
- InMoose - [Python] - InMoose is the Integrated Multi Omic Open Source Environment. It is a collection of tools for the analysis of omic data. Allows for batch effect correction, cohort QC, Differential Expression Analysis and Consensus Clustering.
- ivis - [Python or R] - Structure-preserving dimensionality reduction in single-cell datasets.
- kallisto - [C++] - kallisto is a program for quantifying abundances of transcripts or genes from bulk or single-cell RNA-Seq data, or more generally of target sequences using high-throughput sequencing reads. It is based on pseudoalignment for rapidly determining the compatibility of reads with targets, without the need for alignment.
- kb-python - [Python] -
kb-pythonis a python package for processing single-cell RNA-sequencing. It wraps thekallisto|bustoolssingle-cell RNA-seq command line tools in order to unify multiple processing workflows. - knn-smoothing - [python or R or matlab] - The algorithm is based on the observation that across protocols, the technical noise exhibited by UMI-filtered scRNA-Seq data closely follows Poisson statistics. Smoothing is performed by first identifying the nearest neighbors of each cell in a step-wise fashion, based on variance-stabilized and partially smoothed expression profiles, and then aggregating their transcript counts.
- mfa - [R] - Probabilistic modeling of bifurcations in single-cell gene expression data using a Bayesian mixture of factor analyzers
- M3Drop - [R] - Michaelis-Menten Modelling of Dropouts for scRNASeq.
- memento-de - [Python] - Method-of-moments estimators for parameter estimation, with efficient resampling. Associated paper01144-9>).
- MetaCell - [R, C++] - Analysis of single cell RNA-seq data by computing partitions of a cell similarity graph into small homogeneous groups of cells called metacells.
- MIMOSCA - [python] - A repository for the design and analysis of pooled single cell RNA-seq perturbation experiments (Perturb-seq).
- Monocle - [R] - Differential expression and time-series analysis for single-cell RNA-Seq.
- Muscat - [R] - muscat (Multi-sample multi-group scRNA-seq analysis tools ) provides various methods for Differential State (DS) analyses in multi-sample, multi-group, multi-(cell-)subpopulation scRNA-seq data.
- netSmooth - [R] - netSmooth is a network-diffusion based method that uses priors for the covariance structure of gene expression profiles on scRNA-seq experiments in order to smooth expression values. We demonstrate that netSmooth improves clustering results of scRNA-seq experiments from distinct cell populations, time-course experiments, and cancer genomics.
- NetworkInference - [Julia] - Fast implementation of single-cell network inference algorithms: Gene Regulatory Network Inference from Single-Cell Data Using Multivariate Information Measures
- nimfa - [Python] - Nimfa is a Python scripting library which includes a number of published matrix factorization algorithms, initialization methods, quality and performance measures and facilitates the combination of these to produce new strategies. The library represents a unified and efficient interface to matrix factorization algorithms and methods.
- novoSpaRc - [Python] - Predict locations of single cells in space by solely using single-cell RNA sequencing data. An existing reference database of marker genes is not required, but significantly enhances performance if available. bioRxiv.
- OEFinder - [R] - Identify ordering effect genes in single cell RNA-seq data. OEFinder shiny impelemention depends on packages shiny, shinyFiles, gdata, and EBSeq.
- OncoNEM - [R] - OncoNEM is a probabilistic method for inferring intra-tumor evolutionarylineage trees from somatic single nucleotide variants of single cells. OncoNEM identifies homogeneous cellularsubpopulations and infers their genotypes as well as a tree describing their evolutionary relationships.
- outrigger - [Python] - Outrigger is a program to calculate alternative splicing scores of RNA-Seq data based on junction reads and a de novo_, custom annotation created with a graph database, especially made for single-cell analyses.
- [PyDeconv] (https://github.com/owkin/pydeconv) - [Python] - Python implementation of bulk RNAseq deconvolution algorithms.
- pcaReduce - [R] - hierarchical clustering of single cell transcriptional profiles.
- PyGMNormalize - [Python] - Python implementation of edgeR normalization method for count matrices.
- RAPIDS-singlecell - [Python] - A GPU-accelerated tool leveraging RAPIDS for scRNA analysis. Seamless scverse compatibility for efficient single-cell data processing and analysis. Replcates features from Scanpy, while also incorporating select functionalities from Squidpy and Decoupler.
- RNAnorm - [Python] - Python implementation of common RNA-seq normalization methods (CPM, FPKM, TPM, UQ, CUF, TMM, CTF).
- rMATS - [Python] - RNA-Seq Multavariate Analysis of Transcript Splicing.
- robustSingleCell - [R] - robustSingleCell is a pipeline designed to identify robust cell subpopulations using scRNAseq data and compare population compositions across tissues and experimental models via similarity analysis as described in Magen et al. (2019) bioRxiv.
- SAVER - [R] - SAVER (Single-cell Analysis Via Expression Recovery) implements a regularized regression prediction and empirical Bayes method to recover the true gene expression profile in noisy and sparse single-cell RNA-seq data.
- SAKE - [R] - Single-cell RNA-Seq Analysis and Clustering Evaluation.
- SCALE - [R] - SCALE is a statistical framework for Single Cell ALlelic Expression analysis. SCALE estimates kinetic parameters that characterize the transcriptional bursting process at the allelic level, while accounting for technical bias.
- scAnalyzer - [Python] - An end-to-end, modular, and lightweight toolkit for scRNA-seq analysis. It provides comprehensive functions for preprocessing, quality control, doublet detection, batch correction, cell cycle scoring, trajectory inference, dimensionality reduction, and interactive visualization.
- Scanpy - [Python] - Scanpy provides computationally efficient tools that scale up to very large data sets and enables simple integration of advanced machine learning algorithms.
- scbean - [Python] - Scbean integrates a range of models for single-cell data analysis, including dimensionality reduction, removing batch effects, and transferring well-annotated cell type labels from scRNA-seq to scATAC-seq and spatial resolved transcriptomics, and joint-analysis of paired multimodal single-cell data.
- SCCAF - [Python] Single Cell Clustering Assessment Framework (SCCAF) is a method for automated identification of putative cell types from single cell data by iteratively applying clustering and a machine learning approach. Putative cell type discovery from single-cell gene expression data
- SCell - [matlab] - SCell is an integrated software tool for quality filtering, normalization, feature selection, iterative dimensionality reduction, clustering and the estimation of gene-expression gradients from large ensembles of single-cell RNA-seq datasets. SCell is open source, and implemented with an intuitive graphical interface.
- scGEAToolbox - [matlab] - a Matlab toolbox for single-cell RNA-seq data analyses.
- schist - [Python] - schist is a scanpy-compatible python library which implements Nested Stochastic Block Models to identify cell groups in single cell experiments.
- Scillus - [R] - Scillus is an R wrapper package for enhanced processing and visualization of Seurat-based scRNA-seq data.
- SCINA - [R] - A semi-supervised category identification and assignment tool.
- SCP - [R] - SCP(Single Cell Pipeline) is an R package that provides a comprehensive set of tools for single cell data processing and downstream analysis.
- scVI - [python] - scVI is a ready-to-use scalable framework for the probabilistic representation and analysis of gene expression in single cells (batch correction, visualization, clustering, and differential expression). Deep generative modeling for single-cell transcriptomics
- scLM - [R] - Automatic detection of consensus gene clusters across multiple single-cell datasets
- scLVM - [R] - scLVM is a modelling framework for single-cell RNA-seq data that can be used to dissect the observed heterogeneity into different sources, thereby allowing for the correction of confounding sources of variation. scLVM was primarily designed to account for cell-cycle induced variations in single-cell RNA-seq data where cell cycle is the primary source of variability.
- scTDA - [Python] - scTDA is an object oriented python library for topological data analysis of high-throughput single-cell RNA-seq data. It includes tools for the preprocessing, analysis, and exploration of single-cell RNA-seq data based on topological representations.
- SCODE - [R/Julia]- an efficient regulatory network inference algorithm from single-cell RNA-Seq during differentiation
- SCORE - [R] - Enhancing single-cell cellular state inference by incorporating molecular network features.
- SCOUP - [C++] - Uses probabilistic model based on the Ornstein-Uhlenbeck process to analyze single-cell expression data during differentiation.
- scran - [R] - This package implements a variety of low-level analyses of single-cell RNA-seq data. Methods are provided for normalization of cell-specific biases, pool-based norms to estimate size factors, assignment of cell cycle phase, and detection of highly variable and significantly correlated genes.
- SCRL - [C++] - Network embedding-based representation learning for single cell RNA-seq data
- scruff - [R] - An R package for preprocessing single cell RNA-seq (scRNA-seq) FASTQ reads generated by CEL-Seq and CEL-Seq2 protocols. It demultiplexes reads according to a predetermined list of cell barcodes, maps reads to reference genome using Rsubread, and reports filtered UMI (Unique Molecular Identifier) count matrix ready for downstream analysis. scruff: an R/Bioconductor package for preprocessing single-cell RNA-sequencing data.
- scSemiProfiler - [Python] - Deep generative AI tool for cost-effective single-cell data generation. It has two main functions: 1. Single-cell-level bulk deconvolution – Generates single-cell gene expression profiles from bulk RNA-seq data using reference single-cell data from a similar tissue. 2. Semi-profiling – Use deep generative AI to generate single-cell data for a cohort with 1/10 to 1/3 of the original cost. This function takes as input cheaper bulk RNA-seq data from all cohort samples and single-cell RNA-seq data from a subset of representative samples selected by the active learning module.
- scSVA - [R] - An R package for interactive two- and three-dimensional visualization and exploration of massive single-cell omics data (2-10^9 cells). scSVA supports interactive analytics in a cloud with containerized tools. It contains optimized implementation of diffusion maps and multi-threaded 3D force-directed layout (ForceAtlas2).
- scTCRseq - [python] - Map T-cell receptor (TCR) repertoires from single cell RNAseq.
- Seurat - [R] - It contains easy-to-use implementations of commonly used analytical techniques, including the identification of highly variable genes, dimensionality reduction (PCA, ICA, t-SNE), standard unsupervised clustering algorithms (density clustering, hierarchical clustering, k-means), and the discovery of differentially expressed genes and markers.
- SIMLR - [R, matlab] - SIMLR (Single-cell Interpretation via Multi-kernel LeaRning) learns an appropriate distance metric from the data for dimension reduction, clustering and visualization. SIMLR is capable of separating known subpopulations more accurately in single-cell data sets than do existing dimension reduction methods.
- sincell - [R] - Existing computational approaches for the assessment of cell-state hierarchies from single-cell data might be formalized under a general workflow composed of i) a metric to assess cell-to-cell similarities (combined or not with a dimensionality reduction step), and ii) a graph-building algorithm (optionally making use of a cells-clustering step). Sincell R package implements a methodological toolbox allowing flexible workflows under such framework.
- sincera - [R] - R-based pipeline for single-cell analysis including clustering and visualization.
- SingleSplice - [R, perl, C++] - A tool for detecting biological variation in alternative splicing within a population of single cells. See Welch et al. 2016.
- singlet - [Python] - Single cell RNA-Seq analysis with phenotypes.
- soupX - [R] - An R package for the estimation and removal of cell free mRNA contamination in droplet based single cell RNA-seq data. The problem this package attempts to solve is that all droplet based single cell RNA-seq experiments also capture ambient mRNAs present in the input solution along with cell specific mRNAs of interest.
- SPRING - [matlab, javascript, python] - SPRING is a collection of pre-processing scripts and a web browser-based tool for visualizing and interacting with high dimensional data. SPRING was developed for single cell RNA-Seq data but can be applied more generally.
- scTOP - [Python] - Single-cell type order parameters. Physics-inspired method of processing single-cell RNA-seq and identifying cell fate, motivated by the epigenetic landscape.
- trendsceek - [R] - Identification of spatial expression trends in single-cell gene expression data
- VISION - [] - A tool for annotating the sources of variation in single cell RNA-seq data in an automated, unbiased and scalable manner. It produces an interactive, low latency and feature rich web-based report that can be easily shared amongst researchers.
- zUMIs - [R, perl, shell] - zUMIs: A fast and flexible pipeline to process RNA-seq data with UMIs.
- STAR - [C/C++] - Splice-aware aligner for RNA-seq data, capable of mapping reads to a reference genome with high accuracy and speed.
Quality control
- Cellity - [R] - Classification of low quality cells in scRNA-seq data using R
- genenetwork_evaluation - [Python] - A flexible framework to evaluate the plausibility of gene programs inferred from single-cell genomic data. The assessment is broken down into themes such as goodness of fit (ability to explain the data), co-regulation, mechanistic interactions etc. Under each theme, multiple evaluation tasks are conceptualised and implemented using appropriate statistical tests.
- scDiagnostics - [R] - Package specifically designed to evaluate the fidelity of annotation transfer in scRNA-seq data. scDiagnostics provides a comprehensive set of diagnostic tools that assess the compatibility between query and reference datasets, helping to identify and mitigate risks of erroneous annotations.
- SCONE - [R] - SCONE (Single-Cell Overview of Normalized Expression), a package for single-cell RNA-seq data quality control (QC) and normalization. This data-driven framework uses summaries of expression data to assess the efficacy of normalization workflows.
- SinQC - [R] - A Method and Tool to Control Single-cell RNA-seq Data Quality.
- scater - [R] - Scater places an emphasis on tools for quality control, visualisation and pre-processing of data before further downstream analysis, filling a useful niche between raw RNA-sequencing count or transcripts-per-million data and more focused downstream modelling tools such as monocle, scLVM, SCDE, edgeR, limma and so on.
Gene regulatory network identification
- scPRINT - [python] - scPRINT is pretrained on 50M cells to predict robust gene networks from single cell RNAseq data. scPRINT: pre-training on 50 million cells allows robust gene network predictions
- Dictys - [Python] - Dictys reconstructs and analyzes context specific and dynamic Gene Regulatory Networks from scRNA-seq and scATAC-seq datasets. Dictys: dynamic gene regulatory network dissects developmental continuum with single-cell multiomics
- Marlene - [Python] - Marlene infers dynamic gene regulatory networks from scRNA-seq data using an evolving self-attention mechanism and meta-learning for few-shot adaptation to rare cell types. Recovering time-varying networks from single-cell data
- Normalisr - [Python, Shell] - Normalisr infers Gene Regulatory Networks from Perturb-seq and other single-cell CRISPR screens. Its normalization and statistical association testing framework also unifies single-cell differential expression and co-expression. Single-cell normalization and association testing unifying CRISPR screen and gene co-expression analyses with Normalisr.
- SCENIC - [R] - SCENIC is an R package to infer Gene Regulatory Networks and cell types from single-cell RNA-seq data. SCENIC: single-cell regulatory network inference and clustering
- SCENIC+ - [python] - SCENIC+ is a python package to build gene regulatory networks using combined or separate scRNA-seq and scATAC-seq data. SCENIC+: single-cell multiomic inference of enhancers and gene regulatory networks
- SINCERITIES - [R/Matlab] - Inferring gene regulatory networks from time-stamped single cell transcriptional expression profiles
- Spectra - [python] - Spectra is factor analysis method that infers cell type specific and global gene programs in scRNA-seq data using gene sets for cellular processes from our scRNA-seq knowledge base Cytopus and cell type annotations. Spectra factors generalize across tens of studies, hundreds of patients and millions of cells.
Immune receptor profiling
- APackOfTheClones - [R] - APackOfTheClones: Visualization of clonal expansion with circle packing
- DALI - [R] - Diversity Analysis Interface (DALI) is a tool that enables TCR and BCR analysis in the Seurat ecosystem. The functionality of the tool is also exposed via an interactive Shiny application.
- Ibex - [R] - Ibex: Variational autoencoder for single-cell BCR sequencing
- Scirpy - [Python] - A Scanpy extension for analyzing single-cell T-cell receptor (TCR) sequencing data.
- scRepertoire - [R] - scRepertoire 2: Enhanced and efficient toolkit for single-cell immune profiling
- TraCeR - [python] - Reconstruction of T-Cell receptor sequences from single-cell RNA-seq data.
- TRAPeS - [python, C++] - TRAPeS (TCR Reconstruction Algorithm for Paired-End Single-cell), a software for reconstruction of T cell receptors (TCR) using short, paired-end single-cell RNA-sequencing.
- TRUST4 - [bash] - TRUST4: immune repertoire reconstruction from bulk and single-cell RNA-seq data
Marker and differential gene expression identification
- GPseudoClust - [Python] - Software that clusters genes for pseudotemporally ordered data and quantifies the uncertainty in cluster allocations arising from the uncertainty in the pseudotime ordering.
- GiniClust - [Python/R] - GiniClust is a clustering method implemented in Python and R for detecting rare cell-types from large-scale single-cell gene expression data. GiniClust can be applied to datasets originating from different platforms, such as multiplex qPCR data, traditional single-cell RNAseq or newly emerging UMI-based single-cell RNAseq, e.g. inDrops and Drop-seq.
- DECENT - [R] - The unique features of scRNA-seq data have led to the development of novel methods for differential expression (DE) analysis. However, few of the existing DE methods for scRNA-seq data estimate the number of molecules pre-dropout and therefore do not explicitly distinguish technical and biological zeroes. We develop DECENT, a DE method for scRNA-seq data that adjusts for the imperfect capture efficiency by estimating the number of molecules pre-dropout.
- MetaMarkers - [R] - MetaMarkers proposes a simple methodology to pool marker information across dataset while keeping dataset independents to identify robust marker signatures from single-cell data. How many markers are needed to robustly determine a cell's type?
- Phenotype Cover - [Python] - Provides two algorithms for marker selection (G-PC, CEM-PC) introduced in Multiset multicover methods for discriminative marker selection00229-6>). Most marker selection methods focus on differential expression (DE) analysis. Although such methods work well for data with a few non-overlapping marker sets, they are not appropriate for large atlas-size datasets where several cell types and tissues are considered. To address this, we define the phenotype cover (PC) problem for marker selection and present algorithms that can improve the discriminative power of marker sets.
- scDD - [R] - scDD (Single-Cell Differential Distributions) is a framework to identify genes with different expression patterns between biological groups of interest. In addition to traditional differential expression, it can detect differences that are more complex and subtle than a mean shift.
- SCDE - [R] - Differential expression using error models and overdispersion-based identification of important gene sets.
- SCMarker - [R] - SCMarker is a method performing ab initial marker gene set selection from scRNA-seq data to achieve improved clustering/cell-typing results. SCMarker: ab initio marker selection for single cell transcriptome profiling.
- SEPA - [R] - SEPA provides convenient functions for users to assign genes into different gene expression patterns such as constant, monotone increasing and increasing then decreasing. SEPA then performs GO enrichment analysis to analysis the functional roles of genes with same or similar patterns.
- switchde - [R] - Differential expression analysis across pseudotime. Identify genes that exhibit switch-like up or down regulation along single-cell trajectories along with where in the trajectory the regulation occurs.
Cell clustering
- BackSPIN - [Python] - Biclustering algorithm developed taking into account intrinsic features of single-cell RNA-seq experiments.
- dropClust - [R/Python] - Efficient clustering of ultra-large scRNA-seq data.
- SC3 - [R] - SC3 is a tool for the unsupervised clustering of cells from single cell RNA-Seq experiments.
- TooManyCells - [Haskell, CLI program] - Suite of graph-based tools for efficient, global, and unbiased identification and visualization of cell clades..
Dimension reduction
- torchdr - [python] - Dimensionality reduction toolbox using PyTorch, featuring various algorithms such as TSNE, UMAP, and more. Supports GPU acceleration to maximize computational efficiency.
- destiny - [R] - Diffusion maps are spectral method for non-linear dimension reduction introduced by Coifman et al.(2005). Diffusion maps are based on a distance metric (diffusion distance) which is conceptually relevant to how differentiating cells follow noisy diffusion-like dynamics, moving from a pluripotent state towards more differentiated states.
- PHATE - Potential of Heat-diffusion for Affinity-based Transition Embedding - [Python, R, matlab] - PHATE is a tool for visualizing high dimensional single-cell data with natural progressions or trajectories. PHATE uses a novel conceptual framework for learning and visualizing the manifold inherent to biological systems in which smooth transitions mark the progressions of cells from one state to another.
- [picasso] (https://github.com/pachterlab/picasso) - [python] - Map the points of an input matrix to user-defined, n-dimensional shape coordinates, while minimizing reconstruction error using an autoencoder neural network structure.
- scvis - [python] - Interpretable dimensionality reduction of single cell transcriptome data with deep generative models
- SWNE - [R] - Visualizing single-cell RNA-seq datasets with Similarity Weighted Nonnegative Embedding (SWNE)
- ZIFA - [Python] - Zero-inflated dimensionality reduction algorithm for single-cell data.
- scPRINT - [python] - scPRINT is pretrained on 50M cells and generates multiple cell embeddings from single cell RNAseq profiles. scPRINT: pre-training on 50 million cells allows robust gene network predictions
- scDEED - [R] optimizing hyperparameters of UMAP/t-SNE, assigning each embedding a “reliability score” by permutation , manuscript open access: Statistical method scDEED for detecting dubious 2D single-cell embeddings and optimizing t-SNE and UMAP hyperparameters
- p-SNE - [Python] - Poisson Stochastic Neighbor Embedding, a nonlinear dimensionality reduction method for sparse count data using Poisson KL divergence and Hellinger distance. Paper.
Archetypal analysis
- scAAnet - [Python] - scAAnet performs non-linear archetypal analysis through autoencoder networks to identify shared gene expression programs (GEPs) among heterogenous cell populations and infer relative activity of each GEP across cells.
Count modelling and normalization
- BASiCS - [R] - Bayesian Analysis of single-cell RNA-seq data. Estimates cell-specific normalization constants. Technical variability is quantified based on spike-in genes. The total variability of the expression counts is decomposed into technical and biological components. BASiCS can also identify genes with differential expression/over-dispersion between two or more groups of cells.
- BEARscc - [R] - BEARscc makes use of ERCC spike-in measurements to model technical variance as a function of gene expression and technical dropout effects on lowly expressed genes.
- BPSC - [R] - Beta-Poisson model for single-cell RNA-seq data analyses
- dsb - [R or Python] - a method for normalizing and denoising protein data from antibody derived tags (ADT). Compatible with CITE-seq, ASAP-seq, TEA-seq, ICICLE-seq, MissionBio etc. Removes ambient and cell to cell technical noise from ADTs see vignettes on CRAN. Manuscript open access: Normalizing and denoising protein expression data from droplet-sed single cell profiling. Nature Communications_ (2022)
- Dino - [R] - normalizes single-cell RNA-seq data by constructing a flexible negative-binomial mixture model of gene expression and sampling from the posterior distribution of expected expression conditional on observed sequencing depth. Normalization by distributional resampling of high throughput single-cell RNA-sequencing data. Bioinformatics (2021)
- MAST - [R] - Model-based Analysis of Single-cell Transcriptomics (MAST) fits a two-part, generalized linear models that are specially adapted for bimodal and/or zero-inflated single cell gene expression data.
- Sanity - [C] - (SAmpling-Noise-corrected Inference of Transcription ActivitY) is a Bayesian procedure that infers the log expression levels (log transcription quotients) of genes by filtering out Poisson noise from UMI count matrices. It estimates expression values and error bars directly without tunable parameters. Bayesian inference of gene expression states from single-cell RNA-seq data. Nature Biotechnology (2021
- SCnorm - [R] - A quantile regression based approach for robust normalization of single cell RNA-seq data.
- zinbwaveZinger - [R] - We introduce a weighting strategy, based on a zero-inflated negative binomial model, that identifies excess zero counts and generates gene- and cell-specific weights to unlock bulk RNA-seq DE pipelines for zero-inflated data, boosting performance for scRNA-seq. https://doi.org/10.1186/s13059-018-1406-4
Batch-effect removal
- BatchEffectRemoval - [Python] - Removal of Batch Effects using Distribution-Matching Residual Networks
- ResPAN - [Python] - ResPAN is a light structured Residual autoencoder and mutual nearest neighbor Paring guided Adversarial Network for scRNA-seq batch correction.
- scPLS - [C++, R] - A normalization method to remove unwanted variation using both control and target genes. It takes advantage of the fact that genes in a scRNAseq study often can be naturally classified into two sets: a control set of genes that are free of effects of the predictor variables and a target set of genes that are of primary interest. By modeling the two sets of genes jointly using the partial least squares regression, scPLS is capable of making full use of the data to improve the inference of confounding effects. https://www.nature.com/articles/s41598-017-13665-w
- TASC - [C++, python] - To account for cell-to-cell technical differences, we propose a statistical framework, TASC (Toolkit for Analysis of Single Cell RNA-seq), an empirical Bayes approach to reliably model the cell-specific dropout rates and amplification bias by use of external RNA spike-ins. TASC incorporates the technical parameters, which reflect cell-to-cell batch effects, into a hierarchical mixture model to estimate the biological variance of a gene and detect differentially expressed genes. More importantly, TASC is able to adjust for covariates to further eliminate confounding that may originate from cell size and cell cycle differences.
- UNCURL - [Python] - Unsupervised and semi-supervised sampling effect removal for single-cell RNA-seq data.
Cell projection and unimodal integration
- scmap - [R] - scmap is a method for projecting cells from a scRNA-seq experiment on to the cell-types identified in a different experiment.
- Monet - [python] - A package for analyzing and integrating scRNA-Seq data using PCA-based latent spaces.
Simulation
- dropsim - [R] - Simulating droplet based scRNA-seq data.
- powsimR - [R] - Power analysis is essential to optimize the design of RNA-seq experiments and to assess and compare the power to detect differentially expressed genes. PowsimR is a flexible tool to simulate and evaluate differential expression from bulk and especially single-cell RNA-seq data making it suitable for a priori and posterior power analyses.
- splatter - [R] - Splatter is a package for the simulation of single-cell RNA sequencing count data. It provides a simple interface for creating complex simulations that are reproducible and well-documented.
- symsim - [R] - SymSim (Synthetic model of multiple variability factors for Simulation) is an R package for simulation of single cell RNA-Seq data.
Pseudotime and trajectory inference
- CALISTA - [R] - CALISTA provides a user-friendly toolbox for the analysis of single cell expression data. CALISTA accomplishes three major tasks: 1) Identification of cell clusters in a cell population based on single-cell gene expression data, 2) Reconstruction of lineage progression and produce transition genes, and 3) Pseudotemporal ordering of cells along any given developmental paths in the lineage progression.
- CellRank - [python] - CellRank 2 uses multiple modalities—such as gene expression similarity, pseudotime, developmental potential, RNA velocity, experimental time points, and metabolic labeling—to define cell–cell transitions.
- CoSpar - [python] - CoSpar is a toolkit for dynamic inference by integrating state and lineage information. It gains superior robustness and accuracy by exploiting both the local coherence and sparsity of differentiation transitions, i.e., neighboring initial states share similar yet sparse fate outcomes. When only state information is available, CoSpar also improves upon existing dynamic inference methods by imposing sparsity and coherence.
- DensityPath - [.] - DensityPath: a level-set algorithm to visualize and reconstruct cell developmental trajectories for large-scale single-cell RNAseq data
- dynverse - [R] - A comparison of single-cell trajectory inference methods: towards more accurate and robust tools
- ECLAIR - [python] - ECLAIR stands for Ensemble Clustering for Lineage Analysis, Inference and Robustness. Robust and scalable inference of cell lineages from gene expression data.
- K-Branches - [R] - The main idea behind the K-Branches method is to identify regions of interest (branching regions and tips) in differentiation trajectories of single cells. So far, K-Branches is intended to be used on the diffusion map representation of the data, so the user should either provide the data in diffusion map space or use the destiny package perform diffusion map dimensionality reduction.
- MERLoT - [R/python] - Reconstructing complex lineage trees from scRNA-seq data using MERLoT.
- ouija - [R] - A descriptive marker gene approach to single-cell pseudotime inference
- ouijaflow - [python] - A descriptive marker gene approach to single-cell pseudotime inference
- Palantir - [Python] - Characterization of cell fate probabilities in single-cell data with Palantir
- PhenoPath - [R] - Single-cell pseudotime with heterogeneous genetic and environmental backgrounds, including Bayesian significance testing of iteractions.
- pseudodynamics - [MATLAB] - Inferring population dynamics from single-cell RNA-sequencing time series data
- psupertime - [R] - psupertime is an R package which uses single cell RNAseq data, where the cells have labels following a known sequence (e.g. a time series), to identify a small number of genes which place cells in that known order. It can be used for discovery of relevant genes, for exploration of unlabelled data, and assessment of one dataset with respect to the labels known for another dataset. - preprint
- SCDIFF - [Python, JavaScript] - SCDIFF is a single-cell trajectory inference method with interactive visualizations powered by D3.js. SCDIFF utilized the TF regulatory information to mitigate the impact of enormous single-cell RNA-seq noise (such as drop-out). With the TF regulatory information, SCDIFF is also able to predict the TFs (and their activation time), which drive the cells to different cell fates. Such predictive power has been experimentally validated.
- SCIMITAR - [Python] - Single Cell Inference of Morphing Trajectories and their Associated Regulation module (SCIMITAR) is a method for inferring biological properties from a pseudotemporal ordering. It can also be used to obtain progression-associated genes that vary along the trajectory, and genes that change their correlation structure over the trajectory; progression co-associated genes.
- SCORPIUS - [R] - An accurate and easy tool for performing linear trajectory inference on single cells using single-cell RNA sequencing data. In addition, SCORPIUS provides functions for discovering the most important genes with respect to the reconstructed trajectory, as well as nice visualisation tools. Cannoodt et al. (2016) doi:10.1101/079509.
- SCUBA - [matlab/R] - SCUBA stands for "Single-cell Clustering Using Bifurcation Analysis." SCUBA is a novel computational method for extracting lineage relationships from single-cell gene expression data, and modeling the dynamic changes associated with cell differentiation.
- scVelo - [Python] - scVelo is a scalable toolkit for RNA velocity analysis in single cells. It generalizes the concept of RNA velocity by relaxing previously made assumptions with a dynamical model. It allows to identify putative driver genes, infer a latent time, estimate reaction rates of transcription, splicing and degradation, and detect competing kinetics.
- SLICER - [R] - Selective Locally linear Inference of Cellular Expression Relationships (SLICER) algorithm for inferring cell trajectories.
- slingshot - [R] - Functions for identifying and characterizing continuous developmental trajectories in single-cell sequencing data.
- SPADE - [R] - Visualization and cellular hierarchy inference of single-cell data using SPADE.
- TASIC - [matlab] - TASIC is a new method for determining temporal trajectories, branching and cell assignments in single cell time series experiments. Unlike prior approaches TASIC uses on a probabilistic graphical model to integrate expression and time information making it more robust to noise and stochastic variations.
- TopSLAM - [python] - Extracting and using probabilistic Waddington's landscape recreation from single cell gene expression measurements
- Truffle - [Python] - Truffle utilizes multicommodity flow algorithms for trajectory inference in time series clinical transcriptomics data. Integrating patients in time series clinical transcriptomics data
- TSCAN - [R] - Pseudo-time reconstruction and evaluation in single-cell RNA-seq analysis.
- VELOCYTO - [Python, R] - Estimating RNA velocity in single cell RNA sequencing datasets.
Cell type identification and classification
- scExtract - [Python] - scExtract is a tool for automating annotation and integration of published single-cell RNA-seq datas. This tool uses LLMs agents to extract relevant info
README truncated. View on GitHub
🔗 More in this category