scanpy.pp.downsample_counts(adata, counts_per_cell=None, total_counts=None, *, random_state=0, replace=False, copy=False)

Downsample counts from count matrix.

If counts_per_cell is specified, each cell will downsampled. If total_counts is specified, expression matrix will be downsampled to contain at most total_counts.

adata : AnnDataAnnData

Annotated data matrix.

counts_per_cell : int, Collection[int], NoneUnion[int, Collection[int], None] (default: None)

Target total counts per cell. If a cell has more than ‘counts_per_cell’, it will be downsampled to this number. Resulting counts can be specified on a per cell basis by passing an array.Should be an integer or integer ndarray with same length as number of obs.

total_counts : int, NoneOptional[int] (default: None)

Target total counts. If the count matrix has more than total_counts it will be downsampled to have this number.

random_state : None, int, RandomStateUnion[None, int, RandomState] (default: 0)

Random seed for subsampling.

replace : boolbool (default: False)

Whether to sample the counts with replacement.

copy : boolbool (default: False)

Determines whether a copy of adata is returned.

Return type

AnnData, NoneOptional[AnnData]


Depending on copy returns or updates an adata with downsampled .X.