From 96f3523a43ddfc25a05ce971c6da8f0858041080 Mon Sep 17 00:00:00 2001 From: Yiding Lu <45527994+OBJECT907@users.noreply.github.com> Date: Sat, 28 Feb 2026 10:44:30 +0800 Subject: [PATCH] Add epsilon adjustment to fold_change and percent_change Updated fold_change and percent_change functions to include epsilon adjustment to prevent division by zero. --- src/pdex/_math.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pdex/_math.py b/src/pdex/_math.py index 2503d20..bc96fcc 100644 --- a/src/pdex/_math.py +++ b/src/pdex/_math.py @@ -106,15 +106,15 @@ def bulk_matrix_geometric( @nb.njit(parallel=True) -def fold_change(x: np.ndarray, y: np.ndarray) -> np.ndarray: +def fold_change(x: np.ndarray, y: np.ndarray, eps=1e-4) -> np.ndarray: """Calculates the log2-fold change between two arrays.""" - return np.log2(x / y) + return np.log2((x + eps) / (y + eps)) @nb.njit(parallel=True) -def percent_change(x: np.ndarray, y: np.ndarray) -> np.ndarray: +def percent_change(x: np.ndarray, y: np.ndarray, eps=1e-4) -> np.ndarray: """Calculates the change between two arrays.""" - return (x - y) / y + return (x - y) / (y + eps) def mwu(