View source: R/marker-overlap.R
marker_overlap | R Documentation |
Calculates the per-cell overlap of previously calculated marker genes.
marker_overlap(
markers1,
markers2,
clustering1,
clustering2,
n = 25,
overlap_type = "jsi",
rank_by = "-p_val",
use_sign = TRUE
)
markers1 |
The first data frame of marker genes, must contain columns called 'gene' and 'cluster'. |
markers2 |
The second data frame of marker genes, must contain columns called 'gene' and 'cluster'. |
clustering1 |
The first vector of cluster assignments. |
clustering2 |
The second vector of cluster assignments. |
n |
The number of top n markers (ranked by rank_by) to use when calculating the overlap. |
overlap_type |
The type of overlap to calculated: must be one of 'jsi' for Jaccard similarity index and 'intersect' for intersect size. |
rank_by |
A character string giving the name of the column to rank marker genes by. Note the sign here: to rank by lowest p-value, preface the column name with a minus sign; to rank by highest value, where higher value indicates more discriminative genes (for example power in the ROC test), no sign is needed. |
use_sign |
A logical: should the sign of markers match for overlap calculations? So a gene must be a positive or a negative marker in both clusters being compared. If TRUE, markers1 and markers2 must have a 'avg_logFC' or 'avg_log2FC' column, from which the sign of the DE will be extracted. |
A vector of the marker gene overlap per cell.
suppressWarnings({
set.seed(1234)
library(Seurat)
data("pbmc_small")
# cluster with Louvain algorithm
pbmc_small <- FindClusters(pbmc_small, resolution = 0.8, verbose = FALSE)
# cluster with k-means
pbmc.pca <- Embeddings(pbmc_small, "pca")
pbmc_small@meta.data$kmeans_clusters <- kmeans(pbmc.pca, centers = 3)$cluster
# compare the markers
Idents(pbmc_small) <- pbmc_small@meta.data$seurat_clusters
louvain.markers <- FindAllMarkers(pbmc_small,
logfc.threshold = 1,
test.use = "t",
verbose = FALSE
)
Idents(pbmc_small) <- pbmc_small@meta.data$kmeans_clusters
kmeans.markers <- FindAllMarkers(pbmc_small,
logfc.threshold = 1,
test.use = "t",
verbose = FALSE
)
pbmc_small@meta.data$jsi <- marker_overlap(
louvain.markers, kmeans.markers,
pbmc_small@meta.data$seurat_clusters, pbmc_small@meta.data$kmeans_clusters
)
# which cells have the same markers, regardless of clustering?
FeaturePlot(pbmc_small, "jsi")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.