alphapepttools.tl.nan_safe_bh_correction

alphapepttools.tl.nan_safe_bh_correction#

alphapepttools.tl.nan_safe_bh_correction(pvals)#

Apply Benjamini-Hochberg correction with NaN-safe handling.

Scipy.stats.false_discovery_control is not nan-safe, we need to delete nans, apply correction, then re-insert nans. This method preserves nans in their original positions while applying BH correction to valid p-values.

Parameters:

pvals (array) – Array of p-values, may contain NaNs.

Return type:

array

Returns:

np.array Array with BH-corrected p-values, NaNs preserved in original positions.

Examples

import numpy as np
from alphapepttools.tl.stats import nan_safe_bh_correction

pvals = np.array([0.01, 0.05, np.nan, 0.001, np.nan])
corrected = nan_safe_bh_correction(pvals)
# Returns array with BH-corrected p-values, NaNs preserved