Multi-threading support in decoupler

Hello,

This is my first post in the forum here.
I am trying to implement Transcription factor (TF) activity estimation on large scRNA dataset. I tried the R implementation of the decoupler package, but the run_ulm step didn’t complete after waiting >30mins for a ~50k cell dataset. I checked the reference (R ver.) and there doesn’t appear to be any multi-threading support for this func. at least. So, I checked the API description of python implementation here and couldn’t find any parameter for multi-threading support again.
I searched for a similar post on this forum and haven’t found anything related.

Hence my query: Is there support for multi-threading in python implementation of decoupler? I would want to test this on datasets with >100k cells and without some sort of parallelisation this would become intractable.

I would much appreciate if there is any guidance/ tips available to scale decoupler to large datasets. There appears to be support for parallel computing within pySCENIC (though I haven’t tested it).

Thanks!

Hi @amit491 ,

Sorry for the late reply, just saw this now since I did not get notified. The python implementation of decoupler should have no problem running this in seconds/minutes. Regarding the use of multi-threading, the python implementation of decoupler uses numba under the hood, a just in time compiler that translates python code into fast machine code which runs in as many threads as you provide automatically. But actually for the method ULM it’s even simpler, it uses pure matrix operations in numpy (no numba) so it will use as many threads as there are available.

Let me know if you need further assistance!