任何(is.na(计数))= FALSE 时的 DESeq2 "NA values are not allowed" 错误
DESeq2 "NA values are not allowed" error when any(is.na(counts)) = FALSE
我有一个计数矩阵,其中包含 NA 值。
我使用
将它们设置为 0
counts[is.na(counts)] <- 0
然后成功将它们设置为 0,我可以看到这个。
但是当我尝试使用
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
我收到错误
Error in validObject(.Object) : invalid class “DESeqDataSet” object: NA values are not allowed in the count matrix
这看起来很清楚,但我不明白,因为我将所有 NA 值设置为 0,现在如果我这样做了
any(is.na(counts))
我错了。
非常感谢任何帮助,谢谢!
如果你只有 NA,应该可以。
library(DESeq2)
counts = matrix(rnbinom(1000,mu=50,size=1),100,10)
colnames(counts) = paste0("c",1:10)
counts[sample(length(counts),10)] = NA
counts[is.na(counts)] <- 0
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
如果你有无穷大的值,它会给你一个稍微不同的错误:
counts = matrix(rnbinom(1000,mu=100,size=1),100,10)
colnames(counts) = paste0("c",1:10)
counts[1] = 2.5e9
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
看起来像这样:
converting counts to integer mode
Error in validObject(.Object) :
invalid class “DESeqDataSet” object: NA values are not allowed in the count matrix
In addition: Warning message:
In mde(x) : NAs introduced by coercion to integer range
出现错误是因为您无法将大数转换为整数:
max(counts)
[1] 8007375876
as.integer(max(counts))
[1] NA
Warning message:
NAs introduced by coercion to integer range
这小于允许的最大值:
.Machine$integer.max
[1] 2147483647
出于分析目的,由于您对基因之间的差异更感兴趣,一种方法是缩小矩阵
DESeqDataSetFromMatrix(round(counts/2), colData = data.frame(colnames(counts)), design = ~1)
我有一个计数矩阵,其中包含 NA 值。
我使用
将它们设置为 0counts[is.na(counts)] <- 0
然后成功将它们设置为 0,我可以看到这个。
但是当我尝试使用
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
我收到错误
Error in validObject(.Object) : invalid class “DESeqDataSet” object: NA values are not allowed in the count matrix
这看起来很清楚,但我不明白,因为我将所有 NA 值设置为 0,现在如果我这样做了
any(is.na(counts))
我错了。
非常感谢任何帮助,谢谢!
如果你只有 NA,应该可以。
library(DESeq2)
counts = matrix(rnbinom(1000,mu=50,size=1),100,10)
colnames(counts) = paste0("c",1:10)
counts[sample(length(counts),10)] = NA
counts[is.na(counts)] <- 0
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
如果你有无穷大的值,它会给你一个稍微不同的错误:
counts = matrix(rnbinom(1000,mu=100,size=1),100,10)
colnames(counts) = paste0("c",1:10)
counts[1] = 2.5e9
DESeqDataSetFromMatrix(counts, colData = data.frame(colnames(counts)), design = ~1)
看起来像这样:
converting counts to integer mode
Error in validObject(.Object) :
invalid class “DESeqDataSet” object: NA values are not allowed in the count matrix
In addition: Warning message:
In mde(x) : NAs introduced by coercion to integer range
出现错误是因为您无法将大数转换为整数:
max(counts)
[1] 8007375876
as.integer(max(counts))
[1] NA
Warning message:
NAs introduced by coercion to integer range
这小于允许的最大值:
.Machine$integer.max
[1] 2147483647
出于分析目的,由于您对基因之间的差异更感兴趣,一种方法是缩小矩阵
DESeqDataSetFromMatrix(round(counts/2), colData = data.frame(colnames(counts)), design = ~1)