之前小编教大家使用pheatmap快速绘制热图,直接利用cluster_rows对行进行聚类,但是聚类后我们怎么得到聚类结果呢?今天小编就教大家利用cutree划分pheatmap聚类结果。
首先,准备输入文件:
行为基因,列为样本,保存为制表符分隔的文本文件。
## 加载R包
library(pheatmap)
## 导入文件
exp <- read.table("input.txt",sep="\t",header=T,row.names = 1)
## 绘制热图
p <- pheatmap(log2(exp+1),cellwidth=20, cellheight=10,cluster_cols=F,cluster_rows=T,cutree_rows = 3)
我们可以注意到,与之前绘制热图相比,多了一个cutree_rows参数。这个参数用来控制我们划分类群的数目。
可以看到,我们输入的20个基因划分为了3类。
现在我们来提取每类的基因ID。
## 对基因进行分类
row_cluster <- cutree(p$tree_row,k=3)
需要注意的时,k后的数字要与前一步cutree_rows的数字相同。
## 对结果进行排序
newOrder <- exp[p$tree_row$order,]
newOrder[,ncol(newOrder)+1]=row_cluster[match(rownames(newOrder),names(row_cluster))]
colnames(newOrder)[ncol(newOrder)]="Cluster"
## 输出结果
write.table(newOrder,"cluster.list.out",quote=F,row.names=T,col.names=T,sep="\t")
执行完所有代码后我们就得到了分类结果,非常方便!大家快去试试吧~
参考资料:
https://www.omicsclass.com/article/508