SEQanswers

SEQanswers (http://seqanswers.com/forums/index.php)
-   Bioinformatics (http://seqanswers.com/forums/forumdisplay.php?f=18)
-   -   DESeq2 error (http://seqanswers.com/forums/showthread.php?t=46452)

stormin 09-06-2014 10:39 AM

DESeq2 error
 
Hi all,

New to DESeq2 and getting error consistently while running this line:

dds <- DESeq(dds)

The error message:

estimating size factors
estimating dispersions
same number of samples and coefficients to fit, estimating dispersion by treating samples as replicates
gene-wise dispersion estimates
mean-dispersion relationship
Error in lfproc(x, y, weights = weights, cens = cens, base = base, geth = geth, :
newsplit: out of vertex space
Calls: DESeq ... estimateDispersionsFit -> localDispersionFit -> locfit -> lfproc -> .C
In addition: There were 18 warnings (use warnings() to see them)
Execution halted


Any ideas? Thanks!

dpryan 09-06-2014 12:54 PM

Try manually specifying the fitType as parametric (dds <- DESeq(dds, fitType="parametric")). I'm actually not sure why it's using local fitting to begin with (last I looked, parametric was the default).

stormin 09-06-2014 01:31 PM

Hmm, that didn't work unfortunately. Here is my R script with the same error message. I'm new to R, so sorry in advance if there is a very obvious mistake. Thanks!


Quote:

#!/usr/bin/Rscript

library('DESeq2')

directory <- getwd()
sink("DESeq_output.txt")
sampleTable <- read.csv("sampleTable.csv")

dds <- DESeqDataSetFromHTSeqCount(sampleTable=sampleTable, directory=directory, design = ~ condition)
colData(dds)$condition <- relevel(colData(dds)$condition, "noCoverage")
dds <- DESeq(dds, fitType="parametric")
results <- results(dds)
results <- results[order(results$padj), ]
write.csv(results,file="DESeq_results.csv")
sink()

detach("package:DESeq2")

quit()
Same error message plus addition 18 warnings:
Quote:

1: In estimateDispersionsFit(object, fitType = fitType, quiet = quiet) :
the parametric fit of dispersion estimates over the mean of counts
failed, which occurs when the trend is not well captured by the
function y = a/x + b. A local regression fit is automatically performed,
and the analysis can continue. You can specify fitType='local' or 'mean'
to avoid this message if re-running the same data.
When using local regression fit, the user should examine plotDispEsts(dds)
to make sure the fitted line is not sharply curving up or down based on
the position of individual points.
2: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
3: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
4: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
5: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
6: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
7: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
8: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
9: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
10: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
11: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
12: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
13: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
14: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
15: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
16: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
17: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
18: In lfproc(x, y, weights = weights, cens = cens, base = base, ... :
procv: no points with non-zero weight
Content of the sampleTable.csv
Quote:

sampleName,fileName,condition
2hnoCoverage,counts_Coverage.txt,Coverage
2hCoverage,counts_noCoverage.txt,noCoverage

dpryan 09-07-2014 01:08 AM

That's actually a different error. So it seems that a parametric fit doesn't work well for this dataset. One possibility would be to use local fitting and increase the number of vertexes. I don't think there's a way to do that with DESeq2 (there was with DESeq), though you could modify the code a bit.

Your best bet would be to post this to the bioconductor email list and CC Michael Love, the DESeq2 maintainer. Please include the output of sessionInfo() in your email. It may turn that you'll need to send one of the DESeq2 authors your dataset so they can have a look.

As an aside, I probably wouldn't put too much effort into an experiment where you're just comparing two samples against each other (as appears to be the case from your sampleTable).

Michael Love 09-07-2014 05:22 AM

Can you include the sessionInfo()?

As the local fit isn't working, you can just use:

DESeq(dds, fitType="mean")

How many rows/genes do you have?

stormin 09-07-2014 09:54 AM

Hi Devon, so what I am trying to do is to use DESeq2 to compare two data manipulation methods. The same RNAseq fastq dataset was used in tophat. Condition1 used coverage search (which takes a lot longer to run) while Condition2 used no coverage search. I suspect the additional coverage based junction search will not significantly impact reads and thus DE results. Although I still want to check.

Perhaps the reason why DESeq is having so much trouble with this comparison is because the counts are mostly identical between the two conditions?

To Michael, the mean fit worked and I will delve more into the manual to see why. However, the log2foldchange column doesn't make sense. The value is way too small for almost all of the genes with some being 0!

Zach

Michael Love 09-08-2014 04:18 AM

hi Zach,

Check out the DESeq2 vignette. We explain the new methods there (e.g. Fig 1). For even more details, check out the DESeq2 manuscript, which is linked on the front page of the vignette. Unreliable log fold changes (not supported by information) are shrunk towards 0.


All times are GMT -8. The time now is 06:46 PM.

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.