eBayes(fit_object, trend = T) gives: Error in fitFDist(var, df1 = df, covariate = covariate) : NA covariate values not allowed
1
0
Entering edit mode
@sebastian-hesse-18351
Last seen 2.2 years ago
Germany / Munich / Dr.von Hauner Childr…

Im performing diff expression analysis for proteome data with LIMMA. As heteroscedasticity is present in my data and could not be corrected with VOOM (question here) I would like to try eBayes with the option trend = T. Unfortunately I get the error: Error in fitFDist(var, df1 = df, covariate = covariate) : NA covariate values not allowed.

A google search made me check for:

Matrix::rankMatrix(design_dateProc) == ncol(design_dateProc)

and

any(colSums(design_dateProc) == 0)

However, first one is TRUE, second one is FALSE, ergo no problem there. I also checked if my blocking of batch effects is a problem but its the same if I don't block for it.

Any ideas what to do here? Thanks a lot! Sebastian

limma eBayes • 1.8k views
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 3 hours ago
WEHI, Melbourne, Australia

I have never seen that error message from eBayes() for any real dataset. As far as I know, the error message could only arise from a dataset for which an entire row of expression values were all NA. In other words, a pretty weird dataset.

You obviously can't expect to do any analysis for a gene or protein when all the expression values are NA, so such rows should be removed.

Neither of the code chunks that Google made you check are at all relevant to the error message. The error message has nothing to do with the design matrix. Besides, if the design matrix was not of full rank, you would already know because limma checks for that automatically.

ADD COMMENT
0
Entering edit mode

I have no NAs anywhere and all other options (trend=F, robust=T) run without problems.

ADD REPLY
0
Entering edit mode

If you are interested and willing to check out the original dataset I would be happy to invite you to the dropbox with the data and markdowns.

ADD REPLY
0
Entering edit mode

I can't see how that can be possible. What does

summary(fit_object$Amean)

give?

ADD REPLY
0
Entering edit mode

Shame on me! It gave:

Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
  10.60   14.31   15.35   15.69   16.69   26.57      45 

So there were NAs, I just didn't look hard enough. I removed them using:

prots_with_NA <- which(apply(exprs(eSet_log2), 1, function(x) any ( is.na(x))))
eSet_log2 <- eSet_log2[-prots_with_NA,]

Thanks a lot!

ADD REPLY
0
Entering edit mode

Not only did you have NAs, but 45 rows of expression values consisted entirely of NAs.

You don't need to remove every row that has any NAs -- you only need to remove the rows that are all NA.

ADD REPLY

Login before adding your answer.

Traffic: 695 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6