本系列推送旨在带领生信零基础的科研人一起掌握Bulk RNA-seq数据分析,同时为其他Bulk组学和单细胞(核)转录组测序的数据分析奠定基础。 往期回顾: 第3期. 基因ID转换,一键搞定 第4期. 差异分析三巨头,该了解一下了 今天我们来学习Bulk RNA-seq数据常用的一种数据可视化形式:热图Heatmap!主要分享以下3个方面: 一、热图的常见呈现形式? 虽然“热图”只有两个字,但是基于Bulk RNA-seq的热图的具体呈现形式是五花八门的,具体由哪些形式呢?为了回答这个问题,我在心血管领域顶级期刊Circulation上进行了检索: 然后手动参看上述199篇文章的内容,然后,汇总出下面一张图: 二、使用热图的常见目的? 有了上述的一张图,那其实就可以推测出热图常见的几个目的了: 1. 呈现组间差异基因的数量(上调和下调) 2. 呈现组间具体的差异基因 3. 呈现组间具体的差异基因,并同时呈现这些基因对应的fold change和adjusted p value 4. 呈现组间具体的差异基因,并同时呈现这些差异基因富集的通路 5. 呈现一个具体通路中的基因在组间各个样本的表达情况 6. 呈现样本间的相关性 三、如何基于R生成热图? 下面将以“呈现组间具体的差异基因”为目的,展示基于R的实战过程。(想获得练习数据,可在公众号输入:Bulk RNA-seq练习数据3) 1. 安装并加载R包(如果没有安装过相关R包,需要先安装,再加载) library(tidyverse) library(pheatmap) library(RColorBrewer)
2. 加载数据(2个数据,分别是样本-基因矩阵数据、差异分析结果) ##2.1 样本-基因矩阵 data <- read.csv("./1.数据/Bulk RNA-seq练习数据3_data_with_gene_symbol.csv",row.names = 1)
data(样本-基因矩阵) ##2.2 差异分析结果(我们上次的分享内容里有计算过程) DEGs <- read.csv("./1.数据/Bulk RNA-seq练习数据4_DEGs_with_DESeq2.csv")
DEGs(差异分析结果 [我们上次的分享内容里有计算过程]) 3. 明确data和meta ##3.1 data (在原来的 样本-基因矩阵的基础上,先进行log,再筛选出样本-差异基因矩阵) data_log <- log(data+1) DEGs_selected <- DEGs %>% filter(padj < 0.05, log2FoldChange>log2(3) | log2FoldChange<log2(1/3)) #可以人为设置阈值
data_log_selected <- data_log[DEGs_selected$gene,]
##3.2 meta(为后续可视化的图注为准备) meta <- data.frame(sample = colnames(data), group = sapply(str_split(colnames(data), "_"), function(x) x[1]))
meta_select_gene <- meta %>% tibble::remove_rownames() %>% column_to_rownames(., var = 'sample') %>% dplyr::mutate(group = fct_relevel(group, c('NF','ICM'))) %>% dplyr::arrange(group)
meta_select_gene anno_color <- list(group = c('NF' = '#66c2a5', 'ICM' = '#fc8d62'))
plot <- pheatmap(data_log_selected, cluster_cols = F, cluster_rows = T, show_colnames = T, show_rownames = T, scale = 'row', annotation_col = meta_select_gene, annotation_colors = anno_color, color = rev(colorRampPalette(brewer.pal(11,'RdBu'))(1000)), fontsize_row = 5)
想跟更多的生信人一起交流,请进入下方“R语言与组学交流群”。 期待已久~|医学基础科研互助交流群来啦! (欢迎大家入群交流~
|