This is a test version of Biostars. For the public version, visit https://www.biostars.org.
Using limma for scRNAseq data

Hello All,

I would like to ask for advice on using limma for differential expression analysis of scRNAseq data. I usually use Seurat, but I would really like to know whether limma is also a suitable tool for scRNAseq data. I've tried to search for papers and I couldn't find a stable answer to this question.

Thank you very much for your help!

Regards, Anna

scrnaseq limma

2 answers

Yes, the limma-trend and limma/voom pipelines can be used.

See for a more detailed discussion this benchmarking paper => https://www.nature.com/articles/nmeth.4612 which ranks limma-trend among the better approaches for scRNA-seq DE analysis. It is the paper that the figure igor links is from.

The code that this study used is deposited at GitHub: https://github.com/csoneson/conquer_comparison/blob/master/scripts/apply_limmatrend.R

Thank you very much! I will read that paper and will look at the code - I like limma because it is very versatile and allows to perform various comparisons with very variable designs. I will be glad to know that I can use limma for scRNAseq as well.

Soneson et al compared a few different methods, including limma, so it's certainly possible:

enter image description here

(I haven't read the paper in full) If I read this figure correctly, it's curious that methods specific for scRNA-seq are not better, if not worse, than bulk RNAseq methods. Notably, the good old t-test and Wilcoxon tests are not bad at all!

The Wilcoxon test is the default DE method in many tools as it apparently performs well if sample sizes (so clusters per cell) is large enough, and because it scales well. Say you have 20 clusters and want to find markers so you have to perform DE for every cluster against every other cluster, that is a lot of computation time if you use tools like edgeR which have to estimate dispersion and fit models for dozens/hundreds/thousands of cells.

Maybe you don't really need to reinvent the wheel. Something like the t-test or the Wilcoxon test have been used for all sorts of data over many years. The advantage of a generic test is that it is generic.

I guess for single-sample data it is fine given that you have hundreds of cells per cluster and simply want to get the top marker genes. I personally feel safer though (if I have at least n=2 replicates per condition) to use edgeR, maybe after pseudobulk aggregation.

You could also treat the replicates as a covariate.

Thank you! I am using limma for other types of data and I was curious to know if it can be used for the scRNAseq data as well. I currently use Seurat, which as far as I know uses Wilcoxon test, but I was wondering about more complex designs with several factors.

Seurat has multiple tests. Check the documentation for FindMarkers() test.use parameter. The latent.vars parameter is used for more complex designs.

Thank you very much! This figure is very informative and I will read the paper for sure.

Log in to answer this question.