genesorteR is an R package for single cell data analysis. It calculates a specificity score to rank all genes in each cell cluster. It can then use this ranking to find sets of marker genes or to find highly variable or differentially expressed genes. genesorteR is applicable to scRNA-Seq data as well as other sparse single cell data like scATAC-Seq
genesorteR is relatively quick, just seconds for 100k cells, few minutes for millions of cells. Read more in genesorteR's pre-print.
If you have questions or need help running genesorteR please email us at this email, we will be happy to help you. For bugs or feature requests, please post here.
genesorteR was developed at the RWTH Aachen University Hospital.
- Rank genes (scRNA-Seq) or open chromatin regions (snATAC-Seq) by "specificity" in cell clusters
- Find small sets of marker genes and differentially expressed / highly variable genes or accessible regions
- Cluster genes/open chromatin regions and make heatmap summaries of single cell data
- Cook & Vanderhyden, bioRxiv 2021
- Kuppe, Ibrahim et al., Nature 2021
- Vargo & Gilbert, BMC Bioinformatics 2020
- De Boeck, Ahn et al., Nature Communications 2020
- Lu, Shiau, Yi et al., Dev. Cell 2020
- Berg et al. bioRxiv 2020
#install devtools package from CRAN
install.packages("devtools")
#install genesorteR from the Github repository
devtools::install_github("mahmoudibrahim/genesorteR")
Here is the PDF manual for genesorteR.
You can of course also access the documentation of each function like so ?sortGenes
.
-
Comparing genesorteR Specificity Scores to TF-IDF on the Cell Cluster Level in Single Cell Data (19 Apr. 2020)
-
Finding Genre-specific Actors and Clustering Film Genres (21 Jan. 2020)
-
Pathway and gene set enrichment analysis in large single cell RNA-Seq data (02 Jan. 2020)
-
CorrNet: Plot beautiful networks from single cell data clustering results using genesorteR & ggraph (18 Oct. 2019)
more Wiki pages coming soon...
library(genesorteR)
data(kidneyTabulaMuris) #three cell types from kidney (Tabula Muris data)
#get specificity scores for each cell type
sg = sortGenes(kidneyTabulaMuris$exp, kidneyTabulaMuris$cellType)
head(sg$specScore) #specificity scores for each gene in each cluster
#define a small set of markers
mm = getMarkers(sg, quant = 0.99)
#cluster genes and make a heatmap
pp = plotMarkerHeat(sg$inputMat, sg$inputClass, mm$markers, clusterGenes=TRUE, outs = TRUE)
pp$gene_class_info #gene clusters
Check this post for more info. Also check out the examples in each function's documentation. Vignettes coming soon.
Note that genesorteR does not currently accept expression matrices with negative entries.
Yes it does!
#if "seuratObject" is the Seurat object that contains your data, I think this should work:
gs = sortGenes(seuratObject@assays$RNA@data, Idents(seuratObject))
Hint: some real sorting here (click the picture!)...