Open FelixTheStudent opened 2 years ago
Here's code to generate a dot plot of marker genes, given an identity_dataframe. Perhaps add this function to cellpypes package?
Usage example:
Tsubsets_seurat = data.frame( Th = malt$seurat_clusters %in% c(2, 5, 7), Ttox=malt$seurat_clusters == 3 ) # The difference in purity is invisible in dot plots: genes = c("CD4", "CD8B", "CD8A") dot_plot(FetchData(malt, genes, slot="counts"), malt$nCount_RNA, Tsubsets_seurat)
Function code:
# stuff to develop the function: # obj = malt %>% pype_from_seurat() # identity_dataframe = data.frame(Bcell=malt$seurat_clusters==0, # Tcell=malt$seurat_clusters==7) # counts = FetchData(malt, c("CD3E", "CD79B"), slot = "counts") # totalUMI = malt$nCount_RNA dot_plot <- function(counts, totalUMI, identity_dataframe, return_data=FALSE){ res =data.frame( celltype = NULL, gene = NULL, percent_expressing = NULL, average_expression = NULL ) for(celltype in colnames(identity_dataframe)) { for(i in 1:ncol(counts)) { umi = counts[, i] relevant <-identity_dataframe[,celltype] res = rbind(res, data.frame( celltype = celltype, gene = colnames(counts)[i], percent_expressing = 100 * mean(umi[relevant] > 0), average_expression = 1e4*mean(umi[relevant]/totalUMI[relevant]) )) } } plot <- res %>% ggplot(aes(celltype, gene, size=percent_expressing, col=average_expression)) + geom_point() + scale_size_continuous(name = "Percent Expressed") + viridis::scale_color_viridis(name="Average Expression") + cowplot::theme_cowplot() if(return_data) return(res) return(plot) }`
Here's code to generate a dot plot of marker genes, given an identity_dataframe. Perhaps add this function to cellpypes package?
Usage example:
Function code: