发布日期:2024-10-14 15:41 点击次数:190
图片
引言Featureplot是一个在单细胞转录组相关的文章中出场频率很高的一个图,比如下面的这个图1。但是在多基因共表达的方面,FeaturePlot只能支持两个基因,因此,我们想整理一篇多元化Featureplot推文,使用FeaturePlot,ggplot,scCustomize等方法,来满足单基因或多基因共表达的需求,可以看看哦。
图片
图1;来源:Single-cell transcriptional profling reveals aberrant gene expression patterns and cell states in autoimmune diseases多种需求实现1、画单个基因FeaturePlot(sce,'MS4A1')
图片
2、画多个基因(分面在一张图)genes_to_check = c("CD3D","CD3E" )FeaturePlot(sce,features = genes_to_check)
图片
3、画更多的基因(分面在一张图)pl=lapply(genes_to_check, function(cg){FeaturePlot(sce, cg) + NoLegend() + NoAxes()})ps <- cowplot::plot_grid(plotlist = pl)ps
图片
4、画多个基因【共表达在一张图(FeaturePlot实现)】genes_to_check = c("CD3D","CD3E" )mat = sce@assays$RNA$counts[ genes_to_check ,]table( mat[1,]>0 ,mat[2,]>0 )sce$ok = mat[1,]>0 | mat[2,]>0 table(sce$ok)FeaturePlot(sce,'ok')
图片
5、画多个基因【共表达在一张图,仅限于两个基因(FeaturePlot实现)】FeaturePlot提供了blend参数,用于看两个基因的共表达情况,但是不支持两个基因以上的共表达。
genes_to_check = c("CD3D","CD3E" )FeaturePlot(sce,genes_to_check,blend = T)
图片
6、画多个基因【共表达在一张图(ggplot实现)】# 提取UMAP坐标umap_df <- as.data.frame(pbmc@reductions$umap@cell.embeddings)umap_df$cluster <- as.factor(pbmc@meta.data$seurat_clusters)head(umap_df)# 然后提取基因表达数据并与UMAP坐标合并gene_df <- as.data.frame(GetAssayData(object = pbmc)[c("CD3D", "CD19", "CD4"), ])merged_df <- merge(t(gene_df), umap_df, by = 0, all = TRUE)head(merged_df)
用ggplot进行可视化:
library(ggnewscale)#绘图 三个基因ggplot(merged_df, vars = c("umap_1", "umap_2", "CD3D", "CD19", "CD4"), aes(x = umap_1, y = umap_2, colour = CD3D)) + geom_point(size=0.3, alpha=1) + scale_colour_gradientn(colours = c("lightgrey", "green"), limits = c(0, 0.3), oob = scales::squish) + new_scale_color() + geom_point(aes(colour = CD19), size=0.3, alpha=0.7) + scale_colour_gradientn(colours = c("lightgrey", "blue"), limits = c(0.1, 0.2), oob = scales::squish) + new_scale_color() + geom_point(aes(colour = CD4), size=0.3, alpha=0.1) + scale_colour_gradientn(colours = c("lightgrey", "red"), limits = c(0, 0.3), oob = scales::squish) + theme_bw() + DimPlot(pbmc,label = TRUE)
图片
基因如果出现多个细胞亚群颜色,可能会出现相互覆盖的现象,下面的代码会产生混合的颜色来展示:
# rgb()函数是用于创建RGB颜色。# 前 3 个参数分别表示红、绿和蓝三个颜色通道的值,取值范围一般是 0-255。library(scales) merged_df2 <- cbind( merged_df, color=rgb( rescale(merged_df$CD4), rescale(merged_df$CD3D), rescale(merged_df$CD19) ))# 然后绘制图片ggplot(merged_df2, aes(umap_1, umap_2, colour = color)) + geom_point() + scale_colour_identity() + new_scale_colour() + # shape = NA, 隐形的图层 geom_point(aes(colour = CD4 ),shape = NA, size=0.1) + scale_colour_gradient(low = "grey", high = "red") + new_scale_colour() + geom_point(aes(colour = CD3D),shape = NA, size=0.1) + scale_colour_gradient(low = "grey", high = "green") + new_scale_colour() + geom_point(aes(colour = CD19),shape = NA, size=0.1) + scale_colour_gradient(low = "grey", high = "blue") + theme_bw()+ DimPlot(pbmc,label = TRUE)
图片
7、画多个基因【共表达在一张图(scCustomize 实现)】scCustomize是一个单细胞转录组数据可视化的R包,里面集合了一些常用的数据可视化方法,可以与Seurat包进行联用。我们用Plot_Density_Joint_Only函数进行多基因联合密度图的绘制。
#install.packages("scCustomize")#install.packages("Nebulosa")library(Nebulosa)library(scCustomize)pbmc <- pbmc3k.finalp_density <- Plot_Density_Joint_Only(seurat_object = pbmc, features = c("CD3D", "CD19", "CD4"), custom_palette = BlueAndRed())p_density + DimPlot(pbmc,label = TRUE)
图片
结语希望以上的尝试和总结能够帮助你画出合适的基因标注的降维聚类图。如果需要对FeaturePlot进行更进一步的美化,可以参考我们之前的推文哦:【Featureplot美化】
图片
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。