arcfish.tl.DiffRegion#

class arcfish.tl.DiffRegion(adata1: AnnData, adata2: AnnData)#

Differential analysis of chromatin TADs.

Parameters:
  • data1 (pd.DataFrame) – Condition 1 data in FOF-CT_core format with no repeating rows.

  • data2 (pd.DataFrame) – Condition 2 data in FOF-CT_core format with no repeating rows.

__init__(adata1: AnnData, adata2: AnnData)#

Methods

__init__(adata1, adata2)

diff_loops(summit_df[, s])

Call differential chromatin interactions.

diff_region(region_df)

Test differential regions within each chromosome.

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.

region_pvals(weights, f_pvals, d1d, region_df)

Aggregate p-values within a region and across axis.

to_bedpe(result[, fdr_cutoff])

Add a column diff to the result dataframe, indicating whether the domain is differentially significant.

diff_region(region_df: DataFrame) DataFrame#

Test differential regions within each chromosome.

Parameters:

region_df (pd.DataFrame) – List of regions to check. Columns: c1, s1, e1, c2, s2, e2.

Returns:

Same format as the input, with additional columns stat, pval, fdr, and log_fdr.

Return type:

pd.DataFrame

static region_pvals(weights: ndarray, f_pvals: ndarray, d1d: ndarray, region_df: DataFrame) DataFrame#

Aggregate p-values within a region and across axis. Assign uniform weights for entries within the same axis.

Parameters:
  • weights ((d,) np.ndarray) – Weight for each axis.

  • f_pvals ((d, p, p) np.ndarray) – Entry-wise p-values returned by func:arcfish.analysis.loop.DiffLoop.entry_pvals.

  • d1d (np.ndarray) – 1D genomic locations.

  • region_df (pd.DataFrame) – A dataframe containing a list of regions to check.

Returns:

Same format as region_df, with additional columns stat, pval, fdr, and log_fdr.

Return type:

pd.DataFrame

to_bedpe(result: DataFrame, fdr_cutoff: float = 0.1) DataFrame#

Add a column diff to the result dataframe, indicating whether the domain is differentially significant.

Parameters:
  • result (pd.DataFrame) – Differential domain result from diff_region().

  • fdr_cutoff (float, optional) – Domains with differential FDR below this cutoff are marked as significant, by default 0.1.

Returns:

Same format as result, with an additional column diff.

Return type:

pd.DataFrame