IsoformSwitchAnalyzeR
IsoformSwitchAnalyzeR copied to clipboard
Multi-threaded analysis support request
Hi
Isoformswitchanalyser is fine, unless I want all the genes analysed in which case it seems to get very slow. It is possible to get a multi-core option for this excellent tool?
Best wishes,
Chris
Although it is possible it is not a high priority since analyzing all genes is are rare usage and the majority of the runtime will be form the external analysis tools. Is there any particular part of the pipeline you are thinking about?
Yeah so when, I added the extra flag to get p values for all genes as you suggested previously, I seemed to experience a major increase in runtime, is this correct? Since, we want all the data, I was wondering if this could be split over different threads for different genes, then put back together.
I'm mainly using DRIMseq because we have 94 samples and it is faster than DEXSEQ, but it is still pretty slow.
Thanks.
exampleSwitchListAnalyzed <- isoformSwitchTestDEXSeq( switchAnalyzeRlist = exampleSwitchListFilteredStrict#, #reduceToSwitchingGenes=FALSE ## this line means to add all genes, very slow
Yes and no (best answer ever!) - let me elaborate:
No: the runtime of isoformSwitchTestDRIMSeq() is not increased (it still need to test all isoforms). Yes: the runtime of all downstream analysis is increased a lot since many more isoforms needs to be annotated and compared.
Unfortunately it is a known problem that DEXSeq scales poorly - but aside from using DRIMseq there are currently no other options.
Btw if you are only interested in a few isoforms you can use subsetSwitchAnalyzeRlist() before testing and save a lot of time.
DEXSeq allows for a parallel parameter to be passed with BPPARAM, any plans to add this parameter to the isoformSwitchTestDEXSeq() function?
Thanks guys for the super cool package you make. I really enjoy it! Maybe you can just create yourself a copy of the isoformSwitchTestDEXSeq() function. Then you can add ",BPPARAM=MulticoreParam(workers = CORE_NUMBER_HERE)" in the estimateDispersions() and testForDEU() (around line 274 of the function definition). This did the trick for me. Maybe good to include this as a hidden function? Thanks again for the good work!