加载所需数据
gene_exp <- read.table("D:/bioinfotools/R/R/R-4.3.1/R-4.3.1/wkdir/rna-seq/genes.TMM.EXPR.matrix",
header = T, row.names = 1)
#加载表达矩阵
sample_info <- read.delim("D:/share/R_data/data/rnaseq-apple/sample_info.txt", header = T,
row.names=1)
#加载样本信息表
library(readr)
library(tidyverse)
gene_info <- read_delim("D:/share/R_data/data/rnaseq-apple/query_seqs.fa.emapper.annotations",
delim = "\t", escape_double = FALSE,
col_names = FALSE, comment = "#", trim_ws = TRUE) %>%
select(Gene_Id = X1,
Gene_Symbol = X6,
GO = X7,
Ko = X9,
Pathway = X10,
COG = X21,
Gene_Name = X22,)
#加载基因信息表
前期数据处理
library(tidyverse)
top_de_exp <- dplyr::slice(de_result, 1:20) %>%
#筛选de_result中差异表达最高的前20个基因(但这不是绝对的,也可以结合火山图中的基因进行筛选),通过管道符传递到下一个函数
select(-c(2:11)) %>%
#通过select()函数将de_result中的第2至11列进行删除,因为heatmap只组之间的差异信息。然后通过管道符传递到下一个函数
column_to_rownames(var = 'id')
#将id这一列转化成行名
1 pheatmap基础绘图
library(pheatmap)
pheatmap(top_de_exp)
1.1 取对数优化基础绘图
library(pheatmap)
pheatmap(log10(top_de_exp + 1))
#如果直接对top_de_exp取对数,则会出现报错,因为有的数值为0,所以在top_de_exp基础上+1即可
1.2 标准化优化基础绘图
library(pheatmap)
pheatmap(top_de_exp,
scale = 'row')
#标准化就是把数据的变化程度归一到一个统一的范围内,中心化就是将平均值都挪到0
2 进阶绘图
cols <- list(
stage = c(S1 = '#FFA07A', S2 = '#FFB6C1', S3 = '#FFEBCD', S4 = '#CD853F')
)
#list()函数是一个封装函数,可以把不同的数据类型打包到一个向量。如果还需要指定其他图例的颜色,在后面直接添加即可
library(pheatmap)
pheatmap(log10(top_de_exp + 1),
#cluster_rows = F,
#不对行名进行聚类
#cluster_cols = F,
#不对列名进行聚类
#show_colnames = F,
#将列名进行忽略
angle_col = 45,
#将行名的倾斜程度设置为45°
annotation_col = select(sample_info, stage),
#能够实现的原因在于sample_info中的行名与top_de_exp中的列名能够一一对应
annotation_colors = cols,
#对不同阶段的样本上不同的颜色,颜色是在前面用list()函数指定的
cutree_rows = 3,
cutree_cols = 2,
#将行/列分开为指定的行/列数,需要几行/列就为几
color = colorRampPalette(c("green", "white", "red"))(100)
)
网友评论