r - 试图确定为什么我的热图使用 heatmap.2 并在 R 中使用中断是不对称的

标签 r matrix cluster-analysis data-visualization heatmap

我正在尝试对蛋白质 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() 

我遇到的问题是,一旦我使用中断来帮助我控制颜色分离,热图就不再看起来对称了。

这是我使用休息之前的热图,你可以看到热图看起来是对称的:
Without Breaks

这是使用休息时的热图:
With breaks

我已经对序列进行了截止,以确保例如一个序列不会在另一个序列开始的地方结束,但我无法解决这个问题。我想利用休息时间来帮助更多地展示集群。

这是它应该是什么样子的示例,该图像是使用 cluster maker 制作的:
enter image description here

我不希望它看起来与那个相同,但是如果我的热图更对称并且我在集群方面有更好的定义,我会喜欢它。图像是使用相同的数据创建的。

最佳答案

经过一些调查,我注意到在通过热图或热图 2 运行我的矩阵后,值发生了变化,例如从提供的数据集中获取的交互

PACDH-2

pegg-2

在矩阵发送到热图之前给出了 0.0250313 的值。
之后,我使用 result$carpet 查看了矩阵值,然后这些值是

-0.224333135
-1.09805379

对于两个交互

然后我决定根据聚类矩阵的树状图对原始矩阵重新排序,以便我确定这些值是相同的。我使用以下堆栈溢出问题寻求帮助:
Order of rows in heatmap?

这是用于此的代码:

rowInd <- rev(order.dendrogram(result$rowDendrogram))
colInd <- rowInd
data_ordered <- matrix_a[rowInd, colInd]

然后我使用另一个程序“matrix2png”来绘制热图:
enter image description here

我仍然需要处理颜色,但至少现在热图是对称和聚集的。

更深入地研究问题似乎是我正在运行 scale(matrix_a)当我将代码更改为 mtscaled <- as.matrix(matrix_a) 时结果现在看起来是对称的。

关于r - 试图确定为什么我的热图使用 heatmap.2 并在 R 中使用中断是不对称的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12646691/

相关文章:

r - 在 R 中,如何根据多个属性分数从 igraph 对象生成子图?

python - 使用 numpy 的矩阵的条件数

python - 在 gensim 中使用 Latent Dirichlet 分配算法进行聚类

python - 如何将包含分类数据和连续数据的数据集获取到 DBSCAN 中用户定义的度量函数中?

r - 如何在R中对具有不同大小向量的时间序列数据进行聚类

r - `gdf`中的下拉列表实现

r - 错误: compilation failed for package ‘seqminer’

r Shiny 使用basename()来获取文件名

c++ - 我该如何解决此错误 : . exe 文件已停止工作

c - 将 GNU 科学库与 Code::Blocks 一起使用时出错