theislab / single-cell-tutorial

Single cell current best practices tutorial case study for the paper:Luecken and Theis, "Current best practices in single-cell RNA-seq analysis: a tutorial"
1.35k stars 451 forks source link

louvain vs leiden #75

Closed oligomyeggo closed 3 years ago

oligomyeggo commented 3 years ago

Hi @LuckyMD, I am working on creating a scRNA-seq docker image and am using your provided Dockerfile as a starting point. I am trying to incorporate as many up-to-date versions of packages that I can (so long as they play nice; I haven't gotten far enough yet to start going through an analysis and see where things might be breaking). In doing so, I noticed that the louvain package from Vincent Traag will no longer be maintained in favor of the leiden algorithm (I might be a bit behind on this). I gather based on the Traag et al., 2018 paper that the leiden algorithm is preferable to the louvain algorithm, but on the other hand based on your tutorial it seems like the louvain algorithm might be preferred? I am curious if you would still consider the louvain algorithm to be best practice, or if you think leiden is now preferable? Or is it something where at the end of the day either algorithm is sufficient?

LuckyMD commented 3 years ago

Hi @oligomyeggo, I would go Leiden nowadays mainly due to maintenance, but in practice I don't think it will matter much as the issues that leiden fixes are extremely unlikely in kNN graphs, but instead pop up more frequently in graphs with a heavy-tailed degree distribution. There is a PR in this repo with an update of the notebook based on a newer docker image. I haven't replaced leiden there though, but you could probably just switch it across and things would still work as expected.

oligomyeggo commented 3 years ago

Awesome, thanks so much for the quick response @LuckyMD! I appreciate it.