mascarade包推荐学习-单细胞降维图修饰之框选celltype

单细胞降维图celltype框选一直是可视化中很多人喜爱的,之前我们也介绍过一些。都或多或少有些不理想,不如AI来的直接,不过最近看到一个优秀的包---mascarade,圈选的效果挺好。所以学习以下,很简单,但是使用挺灵活,支持UMAP和TSNE:

github:https://github.com/alserglab/mascarade/blob/main/README.md

官方教程链接:https://rpubs.com/asergushichev/mascarade-tutorial

首先安装包,并熟悉流程:


#安装包
remotes::install_github("alserglab/mascarade")
library(mascarade)
library(ggplot2)
library(data.table)
library(Seurat)
#load data
#我们首先熟悉以下流程
uterus <- readRDS("D:/KS项目/公众号文章/RNA速率分析/uterus.rds")
#mascarade包做celltype框线,首先需要计算generateMask。
#得到的是一个dataframe,其实就是框选轮廓位置
#其他参数先默认,需要两个关键数据,一个是UMAP坐标dataframe,一个是celltype注释
dims <- Embeddings(uterus, reduction = 'tsne')
cluster <- uterus$celltype
maskTable <- generateMask(dims=dims,clusters=cluster)


#然后ggplot作图,geom_path添加轮廓,其他就是ggplot主题修饰了
data <- data.table(dims, cluster= cluster)

ggplot(data, aes(x=tSNE_1, y=tSNE_2)) + 
  geom_point(aes(color=cluster)) + 
  geom_path(data=maskTable, aes(group=group)) +
  coord_fixed() + 
  theme_classic()

UMAP测试:提取坐标、计算generateMask,参数需要按照自己实际数据调整。

emb <- Embeddings(obj,reduction = 'umap') %>% #提取坐标数据  
  as.data.frame() %>%   
  mutate(celltype=obj@meta.data$celltype)
maskTable <- generateMask(dims=emb[,1:2],
                          clusters=emb$celltype,
                          smoothSigma = 0.015,
                          minDensity = 0.1,
                          gridSize = 200,
                          type = 'partition')
#plot-虚线
ggplot(emb, aes(x=UMAP_1, y=UMAP_2)) + 
  geom_point(aes(color=celltype)) + 
  geom_path(data=maskTable, aes(group=group), 
            linetype=6,size=1) + #调整框选线类型及粗细
  coord_fixed() + 
  theme_classic()

#实线
ggplot(emb, aes(x=UMAP_1, y=UMAP_2)) + 
  geom_point(aes(color=celltype)) + 
  geom_path(data=maskTable, aes(group=group), 
            linetype=1,size=1) + #调整框选线类型及粗细
  coord_fixed() + 
  theme_classic()

#只框选某种cellpe
ggplot(emb, aes(x=UMAP_1, y=UMAP_2)) + 
  geom_point(aes(color=celltype)) + 
  geom_path(data=maskTable[cluster=='Fibroblasts'], aes(group=group), 
            linetype=1,size=1) + #调整框选线类型及粗细
  coord_fixed() + 
  theme_classic()

计算了框选位置,直接在Dimplot后作图也可以:


#其实Dimplot+geom_path就可以实现,没必要非按照ggplot提取坐标作图
DimPlot(obj, label = F, pt.size = 1)&
  geom_path(data=maskTable, aes(x=UMAP_1, y=UMAP_2,group=group), 
            linetype=1,size=1)&
  scale_color_manual(values = alpha(c("#edc951","#eb6841","#4f372d","#00a0b0",
                                               "#7A989A", "#849271", "#CF9546", "#C67052", "#C1AE8D"),0.5))


FeaturePlot做基因表达量,框选需要的celltype!效果不错。


#plot表达某个基因的celltpe

p = FeaturePlot(obj, features = c("KRT5",'THY1',"CD3D",
                                  "MITF","VWF","FLT4",
                                  "TPM1","KIT","CD14"), ncol = 3)


celltypes <- c("Keratinocytes","Fibroblasts","T cells",
               "Melanocytes", "Endothlial","Lymphatic",
               "Muscle","Mast cells",'Myeloid')
for (i in seq_along(p)) {
  
  p[[i]] <- p[[i]]&geom_path(data=maskTable[cluster==celltypes[i]],
                             aes(x=UMAP_1, y=UMAP_2,group=group), 
                    linetype=1,size=1)&
    theme(legend.key.width=unit(0.2,"cm"))&
    scale_color_gradientn(colours = c('#FFF7F3', '#FDE0DD', '#FCC5C0', '#FA9FB5', '#F768A1',
                                               '#DD3497', '#AE017E', '#7A0177', '#49006A'), 
                                               guide = guide_colorbar(frame.colour = "black", 
                                                                      ticks.colour = NA))
  
}

#return
p

image.png

觉得我们分享有些用的,点个赞再走呗!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容