How to decide number of neighbors and resolution for Louvain clustering I am using Louvain clustering (1,2) to cluster cells in scRNAseq data, as implemented by scanpy.

One of the parameter required for this kind of clustering is the number of neighbors used to construct the neighborhood graph of cells (docs).

Larger values result in a more global view of the manifold, leading to lower number of clusters, while reducing the number of neighbors goes in the opposite direction. However, it is unclear how to choose this parameter.

The resolution parameter seems to work in the opposite way.

Do you know of any methodology and/or rule-of-thumb to define these parameters? E.g. depending on the size of the dataset?


Levine, Jacob H., et al. "Data-driven phenotypic dissection of AML reveals progenitor-like cells that correlate with prognosis." Cell 162.1 (2015): 184-197.
Blondel, Vincent D., et al. "Fast unfolding of communities in large networks." Journal of statistical mechanics: theory and experiment 2008.10 (2008): P10008.
A general rule of thumb is that in order to improve the variance $n$ times you need $n^2$ neighbours. This is only applicable if you consider the $n^2$ nearest neighbours of a cell to be biologically identical (i.e. "similar enough"); if your data includes 10 types of cells with 10 cells each, then using the 20 nearest neighbours for smoothing will obscure the data.

As far as I know, there is no single best answer to this question. I would suggest trying different numbers and sticking to what agrees more with the biology of the dataset.