【问题标题】:pheatmap scale="row" giving Error in hclust(d, method = method) : NA/NaN/Inf in foreign function callpheatmap scale="row" 在 hclust(d, method = method) 中给出错误:外部函数调用中的 NA/NaN/Inf
【发布时间】:2015-08-01 17:54:02
【问题描述】:

我正在尝试使用 R 中的 pheatmap 包创建带有基因表达值的热图。我已经多次使用该代码,直到今天才出现问题。似乎当我执行 scale="row" 时,我最终遇到了这个错误。我无法创建 z 分数。所以可能有些行没有发生这种情况的可变性。我怎样才能摆脱这个。该矩阵有 1100 行和 9 列。我的代码:

data  <- read.table("~path/DEGs_DESeq.txt",sep="\t")
data2 <- as.matrix(data[,2:9])
data3 <- data2[-1,]
samples <- data2[1,]
genes <- data[2:length(data2[,1]),1]
vett <- as.numeric(data3)
data4 <- matrix(vett, length(genes), length(samples), dimnames=list(paste(genes),paste(samples))) 
head(data4)

pheatmap(as.matrix(data4), col=bluered(200), scale="row", key=T, keysize=1.5,
    density.info="none", trace="none",cexCol=0.6, fontsize_row=8, fontsize_col=10)

hclust(d, method = method) 中的错误: 外部函数调用中的 NA/NaN/Inf (arg 11)

我怎样才能摆脱这个错误?

【问题讨论】:

  • 我遇到了同样的问题,您的评论对解决问题很有帮助。您应该将其列为答案。这也是我使用的代码:counts_filtered_df &lt;- counts_df[apply(counts_df, MARGIN = 1, FUN = function(x) sd(x) != 0),]

标签: r heatmap scaling na pheatmap


【解决方案1】:

我实际上已经解决了.. 在执行 z 分数计算时,我必须删除没有出现 SD 的行,并重建热图。谢谢

【讨论】:

  • 请向没有您的数据集的其他人解释一下(因此无法重现此数据)为什么 pheatmap(..., scale="row") 没有计算某些 SD?是分组吗?它是大小为 1 的组吗?您的数据集实际上是否在任何行中有 NA?否则这个问题不是可重复使用的资源。
  • 我不是 OP,但遇到了类似的问题。在我检查了非数字和 NA 值的数据集中,问题是每一列中都有几行具有相同的值。对于这些,SD 为 0,这搞砸了行缩放。删除这些行解决了问题。
  • 感谢 Max 带头解决评论问题。真的很感激。我分享了相同的答案,因为我解决了自己的问题。如果不够清楚,请道歉,但 Max 确实澄清了。
【解决方案2】:

您可能在数据框中拥有所有具有0 值的行

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-11
    • 2020-08-11
    • 2013-10-24
    • 2014-03-18
    • 2018-07-03
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多