arcfish.tl.DiffLoop#
- class arcfish.tl.DiffLoop(adata1: AnnData, adata2: AnnData)#
Differential analysis of chromatin loops.
- Parameters:
adata1 (pd.DataFrame) – Condition 1 data adata created by
arcfish.pp.FOF_CT_Loader.create_adata().adata2 (pd.DataFrame) – Condition 2 data adata created by
arcfish.pp.FOF_CT_Loader.create_adata().
Methods
__init__(adata1, adata2)diff_loops(summit_df[, s])Call differential chromatin interactions.
entry_pvals(adata1, adata2)Calculate axis-wise entry-wise p-values by F-tests.
loop_pvals(weights, f_pvals, d1d, summit_chr)Calculate p-value for each loop considered.
pval_to_fdr(agg_p_mat, idx)Adjust multiple testing by FDR.
to_bedpe(result[, fdr_cutoff])Convert differential loop result to dataframe, similar format as summit_df.
- static entry_pvals(adata1: AnnData, adata2: AnnData) ndarray#
Calculate axis-wise entry-wise p-values by F-tests.
- Parameters:
adata1 (pd.DataFrame) – Condition 1 data adata created by
arcfish.pp.FOF_CT_Loader.create_adata().adata2 (pd.DataFrame) – Condition 2 data adata created by
arcfish.pp.FOF_CT_Loader.create_adata().
- Returns:
Axis-wise entry-wise p-values.
- Return type:
(3, p, p) np.ndarray
- static loop_pvals(weights: ndarray, f_pvals: ndarray, d1d: ndarray, summit_chr: DataFrame, s: float = 5000.0) Tuple[ndarray, Tuple[ndarray, ndarray]]#
Calculate p-value for each loop considered. The p-value is aggregated 1) from all axis by weights inversely proportional to measurement errors 2) from entries within the same axis by a Gaussian kernel with size s.
- Parameters:
weights ((d,) np.ndarray) – Weight for each axis.
f_pvals ((d, p, p) np.ndarray) – Entry-wise p-values returned by func:entry_pvals.
d1d (np.ndarray) – 1D genomic locations.
summit_chr (pd.DataFrame) – List of loops within the chromosome to check.
s (float, optional) – Gaussian kernel size in bp, by default 5e3
- Returns:
Aggregated p-values and indices of the summits.
- Return type:
Tuple[(p, p) np.ndarray, Tuple[np.ndarray, np.ndarray]]
- static pval_to_fdr(agg_p_mat: ndarray, idx: tuple) ndarray#
Adjust multiple testing by FDR. Only adjust for p-values specified in idx.
- Parameters:
agg_p_mat ((p, p) np.ndarray) – P-value matrix.
idx (tuple) – Positions in p-value matrix to adjust. Format like the output of np.where.
- Returns:
FDR matrix. NaN at positions outside idx.
- Return type:
(p, p) np.ndarray
- to_bedpe(result: dict, fdr_cutoff: float = 0.1) DataFrame#
Convert differential loop result to dataframe, similar format as summit_df.
- Parameters:
result (dict) – Dictionary returned by
diff_loops().fdr_cutoff (float, optional) – Loops with p-values below this cutoff are defined as differential loop, by default 0.1.
- Returns:
Output dataframe in bedpe format.
- Return type:
pd.DataFrame