单细胞基因热图多重注释函数-可标记基因及添加富集分析结果

在写NMF帖子的时候,需要plot基因热图,参考:(高分SCI单细胞图表:多层注释热图函数)。然后对其功能进行了增强,当然了,还是那句话,框架我们提供了,你需要做其他任何个性化或者增添功能,直接修改即可,一个函数也不可能完成所有事。更新的内容主要在于,可以标记需要的基因,避免了基因过多的问题。第二个是可以添加文字注释,及每种celltype添加富集注释结果。使用解说参考: https://www.bilibili.com/video/BV1wuwbe7EfX/?spm_id_from=333.1387.homepage.video_card.click

函数参数如下:增加的参数首先第一个rownames_anno,传入一个向量,是需要标记的基因,如果基因过多的时候,不适宜全部展示,show_row_names选择F。第二个就是anno_enrich,默认F,如果需要添加富集结果的注释,选择T,需要注意,函数并未提供富集,富集结果需要手动展示。对应的注释传入enrich_terms,是一个list,此外,添加富集注释,一定要设置cluster_order,而且cluster_gene_length要与cluster_order一致。

image.png

具体看看效果:

library(Seurat)
library(ComplexHeatmap)
library(dplyr)
library(circlize)
library(rlang)
library(grDevices)
source('./ks_single_gene_heatmap.R')
Epi_cells$cluster <- as.character(Epi_cells$cluster)

#heatmap
pdf('./nmf_heat1.pdf', height = 8,width = 8)
ks_single_gene_heatmap(object=Epi_cells,assay = 'RNA',
                         genes = cluster_gene$gene, 
                         bar = c("cluster"),
                         show_rownames = F,
                         heat_cols = colorRampPalette(c('#FFF7F3', '#FDE0DD', '#FCC5C0', '#FA9FB5', '#F768A1',
                                                        '#DD3497', '#AE017E', '#7A0177', '#49006A'))(100),
                         rownames_anno = c("NME2","GLIS3","DNAI1","PTPRC",
                                           "GABARAP","PARD3","CDHR3","SRGN",
                                           "PRDX2","MECOM","CFAP299","FYN",
                                           "HINT1","CFAP157","CCL5"))
dev.off()

image.png
#标注富集结果
text2 = list("1"=c("labyrinthine layer morphogenesis",
                   "neural tube closure",
                   "epithelial tube morphogenesis"),
             "2" =c("positive regulation of cell adhesion",
                    "Cell adhesion molecules",
                    "Inflammatory response pathway"),
             "3"=c("Signaling by MET",
                   "PI3K-Akt signaling pathway"),
             "4"=c("cellular response to abiotic stimulus",
                   "cellular response to environmental stimulus"))

pdf('./nmf_heat2.pdf', height = 8,width = 12)
ks_single_gene_heatmap(object=Epi_cells,assay = 'RNA',
                         genes = cluster_gene$gene, bar = c("cluster"),
                         show_rownames = F,
                         rownames_anno = c("NME2","GLIS3","DNAI1","PTPRC",
                                           "GABARAP","PARD3","CDHR3","SRGN",
                                           "PRDX2","MECOM","CFAP299","FYN",
                                           "HINT1","CFAP157","CCL5"),
                         heat_cols = colorRampPalette(c('#FFF7F3', '#FDE0DD', '#FCC5C0', '#FA9FB5', '#F768A1',
                                                        '#DD3497', '#AE017E', '#7A0177', '#49006A'))(100),
                         anno_enrich=T,cluster_gene_length=c(50,50,50,50),
                         enrich_terms = text2,cluster_order = c("1","2","3","4"))

dev.off()
image.png

效果不错

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容