本系列推送旨在带领生信零基础的科研人一起掌握Bulk RNA-seq数据分析,同时为其他Bulk组学和单细胞(核)转录组测序的数据分析奠定基础。
往期回顾:
今天我们来学习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语言与组学交流群”。
期待已久~|医学基础科研互助交流群来啦!
(欢迎大家入群交流~
联系客服