大家好,有朋友在后台问如何用 R 绘制聚类热图,其实绘制聚类图的方法有很多,比如 MeV 软件等等,我们今天看如何用 R 来绘制聚类图。
首先我们看原始数据,原始数据有两组,每组 4 个样品,共八个样品,每个样品有 35 个 microRNA,目的是对 35 个 microRNA 和 8 个样品进行聚类。
将目标文件所在目录通过 setwd 命令设置为当前工作目录,并用 getwd() 查看目录是否设置成功;设置成功后,利用 read.table 命令读入目标文件(heatmap_example.txt,注意将文件保存为 tab 分隔的纯文件文件 txt),将第一行的样本名设置为列名(header = T),将第一列设置为行名(row.names = 1),通过 head(data) 查看文件前 6 行。
###安装软件包
install.packages("pheatmap")
install.packages("vegan")
###加载所需软件包
library(pheatmap)
library(gplots)
library(vegan)
library(permute)
library(lattice)
###input target file
data<-read.table("heatmap_example.txt",header = T,sep ="\t",row.names = 1)
data<-as.matrix(data)
###计算样品(或基因)间的距离,常用的计算距离函数如 vegdist(包含在 vegan 包中),可以选择的距离参数如」 euclidean」,」 jaccard」等,此处以 bray-curtis 距离为例(」bray」)。
drows<-vegdist(data,method ="bray")
dcols<-vegdist(t(data),method ="bray")
###调用 pdf 函数,用于将图形保存到 heatma.pdf 中(可根据需要输入其他文件名称)。
pdf(file ="heatmap.pdf",width = 10,height = 10)
###使用 pheatmap 函数画图
pheatmap(data,cellwidth = NA, cellheight = NA, treeheight_row = 50, treeheight_col = 50 ,color = colorRampPalette(c("green", "black","red"))(100), scale ="row", legend = TRUE,border_color = NA, fontsize_row = 8, fontsize_col = 10,clustering_distance_rows = drows, clustering_distance_cols = dcols, clustering_method ="average",main ="Heatmap")
###最后关闭图形函数,返回 R 终端,即正常输入界面
dev.off()
然后回车,就出现我们要的热图啦,绘制的聚类图如下:
本文所用数据和代码下载链接:http://pan.baidu.com/s/1eRKmzuE 密码:be2i
好了,今天就到这里了,关于代码或者其它分析感兴趣的也可以留言给我,谢谢。