diff --git a/docs/release-notes/3138.feature.md b/docs/release-notes/3138.feature.md new file mode 100644 index 0000000000..b542634722 --- /dev/null +++ b/docs/release-notes/3138.feature.md @@ -0,0 +1 @@ +Added layer argument to sc.tl.score_genes_cell_cycle so that you can choose which layer to use for calculating the cell cycle scores diff --git a/src/scanpy/tools/_score_genes.py b/src/scanpy/tools/_score_genes.py index 019b942577..78eee891b7 100644 --- a/src/scanpy/tools/_score_genes.py +++ b/src/scanpy/tools/_score_genes.py @@ -267,6 +267,7 @@ def score_genes_cell_cycle( s_genes: Sequence[str], g2m_genes: Sequence[str], copy: bool = False, + layer: str | None = None, **kwargs, ) -> AnnData | None: """Score cell cycle genes :cite:p:`Satija2015`. @@ -285,6 +286,8 @@ def score_genes_cell_cycle( List of genes associated with G2M phase. copy Copy `adata` or modify it inplace. + layer + Key from `adata.layers` whose value will be used to perform tests on. **kwargs Are passed to :func:`~scanpy.tl.score_genes`. `ctrl_size` is not possible, as it's set as `min(len(s_genes), len(g2m_genes))`. @@ -314,7 +317,9 @@ def score_genes_cell_cycle( adata = adata.copy() if copy else adata ctrl_size = min(len(s_genes), len(g2m_genes)) for genes, name in [(s_genes, "S_score"), (g2m_genes, "G2M_score")]: - score_genes(adata, genes, score_name=name, ctrl_size=ctrl_size, **kwargs) + score_genes( + adata, genes, score_name=name, ctrl_size=ctrl_size, layer=layer, **kwargs + ) scores = adata.obs[["S_score", "G2M_score"]] # default phase is S