lmFit 中的缺失值 [limma R 包]
Missing values in lmFit [limma R package]
[此题专门针对生物信息学。其他地方有post,但我找不到满意的答案。]
如果我有一个 gene/protein 表达式数据缺少值 (NA
),limma
包的 lmFit
如何处理这些值?请注意,缺失值不在设计矩阵中,而仅在数据矩阵中。
这是一个模拟的工作示例来说明我的问题:
library(limma)
my_genes <- matrix(rnorm(9000, -10, 10), ncol=4)
my_genes <- as.data.frame(my_genes)
rownames(my_genes) <- paste("Gene", 1:nrow(my_genes))
## Randomly introducing NAs
purrr::map_df(my_genes, function(x) {x[sample(c(TRUE, NA), prob = c(0.95, 0.05), size = length(x), replace = TRUE)]})
tx <- 1:2 #suppose treatment is columns 1 & 2
ctrls <- 3:4 #suppose controls is columns 3 & 4
my_design <- model.matrix( ~factor(c(1,1,0,0)))
my_design
fit <- lmFit(my_genes, my_design)
fit <- eBayes(fit)
plot(fit$logFC, -log10(fit$p.value))
如果您发现任何可以提供帮助的网站/post,请随时分享 post 或发表评论。
This post in CrossValidated 详细回答了我自己的问题。简而言之,lmFit
处理缺失值的方式与 lm
类似。具有缺失值的行受制于 na.exclude
或 "case-wise deletion."
或者:虽然这不是一个理想的解决方案,但只估算缺失的 gene-expression 值可能是合适的。例如,使用 impute
Bioconductor 包中的 knn.impute
函数。
[此题专门针对生物信息学。其他地方有post,但我找不到满意的答案。]
如果我有一个 gene/protein 表达式数据缺少值 (NA
),limma
包的 lmFit
如何处理这些值?请注意,缺失值不在设计矩阵中,而仅在数据矩阵中。
这是一个模拟的工作示例来说明我的问题:
library(limma)
my_genes <- matrix(rnorm(9000, -10, 10), ncol=4)
my_genes <- as.data.frame(my_genes)
rownames(my_genes) <- paste("Gene", 1:nrow(my_genes))
## Randomly introducing NAs
purrr::map_df(my_genes, function(x) {x[sample(c(TRUE, NA), prob = c(0.95, 0.05), size = length(x), replace = TRUE)]})
tx <- 1:2 #suppose treatment is columns 1 & 2
ctrls <- 3:4 #suppose controls is columns 3 & 4
my_design <- model.matrix( ~factor(c(1,1,0,0)))
my_design
fit <- lmFit(my_genes, my_design)
fit <- eBayes(fit)
plot(fit$logFC, -log10(fit$p.value))
如果您发现任何可以提供帮助的网站/post,请随时分享 post 或发表评论。
This post in CrossValidated 详细回答了我自己的问题。简而言之,lmFit
处理缺失值的方式与 lm
类似。具有缺失值的行受制于 na.exclude
或 "case-wise deletion."
或者:虽然这不是一个理想的解决方案,但只估算缺失的 gene-expression 值可能是合适的。例如,使用 impute
Bioconductor 包中的 knn.impute
函数。