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

学术   2025-01-06 09:00   黑龙江  

偷偷问一下,关注了吗

内容获取


1、购买打包合集(《KS科研分享与服务》付费内容打包集合),价格感人,可以加入微信VIP群(答疑交流群,甚至有小伙伴觉得群比代码更好),可以获取建号以来所有内容,群成员专享视频教程,提前更新,其他更多福利!


2、《KS科研分享与服务》公众号有QQ群,进入门槛是20元(完全是为了防止白嫖党,请理解),请考虑清楚。群里有免费推文的注释代码和示例数据(终身拥有),没有付费内容,群成员福利是购买单个付费内容半价!


需要者详情请联系作者(非需要者勿扰,处理太费时间):


单细胞降维图celltype框选一直是可视化中很多人喜爱的,之前我们也介绍过一些(单细胞marker基因表达密度图-(还有一个包装函数)玩转单细胞(5):单细胞UMAP图只标记特定细胞群、圈定细胞群及坐标轴修改)。都或多或少有些不理想,不如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$celltypemaskTable <- 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()

#只框选某种cellpeggplot(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)) }
#returnp

觉得我们分享有些用的,点个赞再走呗!
关注我们获取精彩内容:


关注不迷路:扫描下面二维码关注公众号!
B站视频号链接https://space.bilibili.com/471040659?spm_id_from=333.1007.0.0




关注 KS科研分享与服务,

认清正版优质内容和服务!

优质内容持续输出,物超所值!

合作联系:ks_account@163.com

新的板块-重要通知-双向选择


KS科研分享与服务
科研学习交流于分享,生信学习笔记,科研经历和生活!
 最新文章