我正在尝试对蛋白质 dna 相互作用数据集进行聚类,并使用 R 包 gplots 中的 heatmap.2 绘制热图。我的矩阵是对称的。
这是我在通过 pearson 运行后使用的数据集的副本:DataSet
这是我生成这些图的完整过程:在我的案例 pearson 中使用一些相关性生成距离矩阵,然后将该矩阵传递给 R 并在其上运行以下代码:
library(RColorBrewer);
library(gplots);
library(MASS);
args <- commandArgs(TRUE);
matrix_a <- read.table(args[1], sep='\t', header=T, row.names=1);
mtscaled <- as.matrix(scale(matrix_a))
# location <- args[2];
# setwd(args[2]);
pdf("result.pdf", pointsize = 15, width = 18, height = 18)
mycol <- c("blue","white","red")
my.breaks <- c(seq(-5, -.6, length.out=6),seq(-.5999999, .1, length.out=4),seq(.100009,5, length.out=7))
#colors <- colorpanel(75,"midnightblue","mediumseagreen","yellow")
result <- heatmap.2(mtscaled, Rowv=T, scale='none', dendrogram="row", symm = T, col=bluered(16), breaks=my.breaks)
dev.off()
我遇到的问题是,一旦我使用中断来帮助我控制颜色分离,热图看起来不再对称。
这是我使用中断之前的热图,您可以看到热图看起来是对称的:
这是使用休息时的热图:
我已经使用了序列的截止点,以确保例如一个序列不会在另一个序列开始的地方结束,但我无法解决这个问题。我想利用休息时间来帮助更多地展示集群。
这是它应该是什么样子的示例,此图像是使用集群制造商制作的:
我不希望它看起来与此相同,但如果我的热图更对称并且我在集群方面有更好的定义,我会喜欢它。该图像是使用相同的数据创建的。