scanpy.tl.louvain
- scanpy.tl.louvain(adata, resolution=None, random_state=0, restrict_to=None, key_added='louvain', adjacency=None, flavor='vtraag', directed=True, use_weights=False, partition_type=None, partition_kwargs=mappingproxy({}), neighbors_key=None, obsp=None, copy=False)
Cluster cells into subgroups [Blondel08] [Levine15] [Traag17].
Cluster cells using the Louvain algorithm [Blondel08] in the implementation of [Traag17]. The Louvain algorithm has been proposed for single-cell analysis by [Levine15].
This requires having ran
neighbors()orbbknn()first, or explicitly passing aadjacencymatrix.- Parameters
- adata :
AnnDataAnnData The annotated data matrix.
- resolution :
float|NoneOptional[float] (default:None) For the default flavor (
'vtraag'), you can provide a resolution (higher resolution means finding more and smaller clusters), which defaults to 1.0. See “Time as a resolution parameter” in [Lambiotte09].- random_state :
None|int|RandomStateUnion[None,int,RandomState] (default:0) Change the initialization of the optimization.
- restrict_to :
Tuple[str,Sequence[str]] |NoneOptional[Tuple[str,Sequence[str]]] (default:None) Restrict the clustering to the categories within the key for sample annotation, tuple needs to contain
(obs_key, list_of_categories).- key_added :
strstr(default:'louvain') Key under which to add the cluster labels. (default:
'louvain')- adjacency :
spmatrix|NoneOptional[spmatrix] (default:None) Sparse adjacency matrix of the graph, defaults to neighbors connectivities.
- flavor : {‘vtraag’, ‘igraph’, ‘rapids’}
Literal[‘vtraag’, ‘igraph’, ‘rapids’] (default:'vtraag') Choose between to packages for computing the clustering.
'vtraag'is much more powerful, and the default.- directed :
boolbool(default:True) Interpret the
adjacencymatrix as directed graph?- use_weights :
boolbool(default:False) Use weights from knn graph.
- partition_type :
Type[MutableVertexPartition] |NoneOptional[Type[MutableVertexPartition]] (default:None) Type of partition to use. Only a valid argument if
flavoris'vtraag'.- partition_kwargs :
MappingMapping[str,Any] (default:mappingproxy({})) Key word arguments to pass to partitioning, if
vtraagmethod is being used.- neighbors_key :
str|NoneOptional[str] (default:None) Use neighbors connectivities as adjacency. If not specified, louvain looks .obsp[‘connectivities’] for connectivities (default storage place for pp.neighbors). If specified, louvain looks .obsp[.uns[neighbors_key][‘connectivities_key’]] for connectivities.
- obsp :
str|NoneOptional[str] (default:None) Use .obsp[obsp] as adjacency. You can’t specify both
obspandneighbors_keyat the same time.- copy :
boolbool(default:False) Copy adata or modify it inplace.
- adata :
- Return type
- Returns
NoneBy default (
copy=False), updatesadatawith the following fields:adata.obs['louvain'](pandas.Series, dtypecategory)Array of dim (number of samples) that stores the subgroup id (
'0','1', …) for each cell.
AnnDataWhen
copy=Trueis set, a copy ofadatawith those fields is returned.