kvittingseerup / IsoformSwitchAnalyzeR

An R package to Identify, Annoatate and Visialize Isoform Switches with Functional Consequences (from RNA-seq data)
101 stars 18 forks source link

Very slow in isoformSwitchTestDEXSeq #94

Closed zh-zhang1984 closed 3 years ago

zh-zhang1984 commented 3 years ago

Hi, Thank you for this excellent package for analyzing isoform switching, but I encounter a problem. This program seems very slow that it is impossible to finish: I do not know what's the problem. The required time was consistently stuck at 5959391.7 min when I tried several filter criteria.

> sepsisSwitchListFiltered <- preFilter(
+     switchAnalyzeRlist = dtSepsis,
+     geneExpressionCutoff = 70,
+     isoformExpressionCutoff = 70,
+     removeSingleIsoformGenes = TRUE
+ )
The filtering removed 352410 ( 99.96% of ) transcripts. There is now 140 isoforms left
> #Identifying Isoform Switches
> sepsisSwitchListAnalyzed <- isoformSwitchTestDEXSeq(
+     switchAnalyzeRlist = sepsisSwitchListFiltered,
+     correctForConfoundingFactors=F,
+     reduceToSwitchingGenes=TRUE
+ )
Step 1 of 2: Testing each pairwise comparisons with DEXSeq (this might be a bit slow)...
    Estimated time (for dataset with ~30.000 isoforms): 5959391.7 min
some variables in design formula are characters, converting to factors
kvittingseerup commented 3 years ago

That is because you are analysing a large number of samples and the Runtime of DEXSeq scales quadratic with number of samples.

It is a problem we are working on but it will be a while before a solution will be available.

Untill then the only suggestion I have is to use isoformSwitchTestDRIMSeq() instead - but be carefull it does not handle FDR particularly good according to many benchmarks (results we can replicate) so I suggest using more strict FDR cutoffs than usually.