scanpy.tl.dendrogram
- scanpy.tl.dendrogram(adata, groupby, n_pcs=None, use_rep=None, var_names=None, use_raw=None, cor_method='pearson', linkage_method='complete', optimal_ordering=False, key_added=None, inplace=True)
Computes a hierarchical clustering for the given
groupbycategories.By default, the PCA representation is used unless
.Xhas less than 50 variables.Alternatively, a list of
var_names(e.g. genes) can be given.Average values of either
var_namesor components are used to compute a correlation matrix.The hierarchical clustering can be visualized using
scanpy.pl.dendrogram()or multiple other visualizations that can include a dendrogram:matrixplot(),heatmap(),dotplot(), andstacked_violin().Note
The computation of the hierarchical clustering is based on predefined groups and not per cell. The correlation matrix is computed using by default pearson but other methods are available.
- Parameters
- adata :
AnnDataAnnData Annotated data matrix
- n_pcs :
int|NoneOptional[int] (default:None) Use this many PCs. If
n_pcs==0use.Xifuse_rep is None.- use_rep :
str|NoneOptional[str] (default:None) Use the indicated representation.
'X'or any key for.obsmis valid. IfNone, the representation is chosen automatically: For.n_vars< 50,.Xis used, otherwise ‘X_pca’ is used. If ‘X_pca’ is not present, it’s computed with default parameters.- var_names :
Sequence[str] |NoneOptional[Sequence[str]] (default:None) List of var_names to use for computing the hierarchical clustering. If
var_namesis given, thenuse_repandn_pcsis ignored.- use_raw :
bool|NoneOptional[bool] (default:None) Only when
var_namesis not None. Userawattribute ofadataif present.- cor_method :
strstr(default:'pearson') correlation method to use. Options are ‘pearson’, ‘kendall’, and ‘spearman’
- linkage_method :
strstr(default:'complete') linkage method to use. See
scipy.cluster.hierarchy.linkage()for more information.- optimal_ordering :
boolbool(default:False) Same as the optimal_ordering argument of
scipy.cluster.hierarchy.linkage()which reorders the linkage matrix so that the distance between successive leaves is minimal.- key_added :
str|NoneOptional[str] (default:None) By default, the dendrogram information is added to
.uns[f'dendrogram_{groupby}']. Notice that thegroupbyinformation is added to the dendrogram.- inplace :
boolbool(default:True) If
True, adds dendrogram information toadata.uns[key_added], else this function returns the information.
- adata :
- Return type
- Returns
If
inplace=False, returns dendrogram information, elseadata.uns[key_added]is updated with it.
Examples
>>> import scanpy as sc >>> adata = sc.datasets.pbmc68k_reduced() >>> sc.tl.dendrogram(adata, groupby='bulk_labels') >>> sc.pl.dendrogram(adata) >>> markers = ['C1QA', 'PSAP', 'CD79A', 'CD79B', 'CST3', 'LYZ'] >>> sc.pl.dotplot(adata, markers, groupby='bulk_labels', dendrogram=True)