2017-01-26 3 views
1

[Diese Frage betrifft die Bioinformatik. Es gibt Beiträge an anderer Stelle, aber ich konnte keine befriedigende Antwort finden.]Fehlende Werte in lmFit [limma R-Paket]

Wenn ich ein Gen/Protein-Expressionsdaten mit fehlenden Werten (NA) haben, wie funktioniert lmFit des limma Paket diese Werte handhaben? Beachten Sie, dass die fehlenden Werte nicht in der Entwurfsmatrix, sondern nur in der Datenmatrix enthalten sind.

Hier ist ein simuliertes, funktionierendes Beispiel, dass meine Frage stellt:

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)) 

Wenn Sie Websites/Beiträge finden, die helfen können, können Sie mit einem Beitrag oder Kommentar zu teilen.

Antwort

1

This post in CrossValidated beantwortet meine eigene Frage im Detail. Kurz gesagt, die Art, wie lmFit mit fehlenden Werten behandelt ist ähnlich wie lm tut. Zeilen mit fehlenden Werten werden na.exclude oder "fallweise Löschung" unterzogen.

Alternativ: Obwohl es keine ideale Lösung ist, kann es angebracht sein, nur die fehlenden Genexpressionswerte zu imputieren. Zum Beispiel unter Verwendung der knn.impute-Funktion in dem impute Bioconductor-Paket.

Verwandte Themen