INNER CODE UNIT · Python
cooks_outlier
scverse/PyDESeq2 · src/pydeseq2/dds.py:1026
def cooks_outlier(self):
"""Filter p-values based on Cooks outliers."""
if "_pvalue_cooks_outlier" in self.var.keys():
return self.var["_pvalue_cooks_outlier"]
num_samples = self.n_obs
num_vars = self.obsm["design_matrix"].shape[-1]
cooks_cutoff = f.ppf(0.99, num_vars, num_samples - num_vars)
# As in DESeq2, only take samples with 3 or more replicates when looking for
# max cooks.
use_for_max = n_or_more_replicates(self.obsm["design_matrix"], 3)
# If for a gene there are 3 samples or more that have more counts than the
# maximum cooks sample, don't count this gene as an outlier.
# Take into account whether we already replaced outliers
if (