diff --git a/pertpy/tools/_coda/_base_coda.py b/pertpy/tools/_coda/_base_coda.py index c1b58a5a..2c9e3a44 100644 --- a/pertpy/tools/_coda/_base_coda.py +++ b/pertpy/tools/_coda/_base_coda.py @@ -1,5 +1,6 @@ from __future__ import annotations +import warnings from abc import ABC, abstractmethod from pathlib import Path from typing import TYPE_CHECKING, Literal @@ -167,6 +168,15 @@ def prepare( sample_adata.obsm["sample_counts"] = np.sum(sample_adata.X, axis=1) + # Check for relative abundances + if np.allclose(sample_adata.obsm["sample_counts"], 1.0): + warnings.warn( + "All samples sum to ~1, suggesting relative abundances were provided. " + "scCODA requires absolute cell counts. Results may be meaningless.", + UserWarning, + stacklevel=2, + ) + # Check input data if covariate_matrix.shape[0] != sample_adata.X.shape[0]: row_len_covariate_matrix = sample_adata.obsm["covariate_matrix"].shape[0]