HelenaLC / CATALYST

Cytometry dATa anALYsis Tools
66 stars 30 forks source link

Speeding up clustering & DR process #391

Closed fy711 closed 4 months ago

fy711 commented 4 months ago

Hi,

Thanks for developing the wonderful package. Please excuse me if the question is elementary as I just started to learn the analysis. I'm wondering if there is a parallel computing option for cluster() and runDR() function. My experience is that those processes run with single core, and I hope I could utilize more of my computing power.

I really appreciate your attention and feedback!

HelenaLC commented 4 months ago
  1. runDR(): if you have a look at the documentation, you'll find that dot arguments (...) are passed to the various DR methods available in scater. Among other things, these have a BPPARAM argument to control parallelization.
  2. cluster(): the clustering method implemented here calls FlowSOM::BuildSOM and ConsensusClusterPlus(); neither of these has parallelization support, unfortunately. However, where you to use an alternative/external method for clustering, there might be a way to speed things up depending on the method.
fy711 commented 4 months ago
  1. runDR(): if you have a look at the documentation, you'll find that dot arguments (...) are passed to the various DR methods available in scater. Among other things, these have a BPPARAM argument to control parallelization.
  2. cluster(): the clustering method implemented here calls FlowSOM::BuildSOM and ConsensusClusterPlus(); neither of these has parallelization support, unfortunately. However, where you to use an alternative/external method for clustering, there might be a way to speed things up depending on the method.

Thanks for the solutions Helena!