agglovar.bed.intersect ====================== .. py:module:: agglovar.bed.intersect .. autoapi-nested-parse:: Table intersects. Functions --------- .. autoapisummary:: agglovar.bed.intersect.as_bool agglovar.bed.intersect.as_proportion Module Contents --------------- .. py:function:: as_bool(df_a: polars.LazyFrame | polars.DataFrame, df_b: polars.LazyFrame | polars.DataFrame, name: str, distance: int = 0, negate: bool = False, col_names_a: Optional[agglovar.bed.col.CoordCol | Iterable[str] | str] = None, col_names_b: Optional[agglovar.bed.col.CoordCol | Iterable[str] | str] = None, temp_dir: bool | str | pathlib.Path = False) -> polars.LazyFrame Add a boolean column to df_a indicating whether each record intersects with df_b. :param df_a: Table a. :param df_b: Table b. :param name: Name of the column to add. :param distance: Maximum distance between two records. May be negative to require overlap. :param negate: If True, negate the boolean column to annotate misses instead of hits. :param col_names_a: Columns in a (chromosome or query ID, pos, end). :param col_names_b: Columns in b (chromosome or query ID, pos, end). :param temp_dir: How to materialise the prepared tables before iterating. See :func:`agglovar.bed.join.pairwise_join`. :return: A LazyFrame with two columns: ``_index`` and ``name``. .. py:function:: as_proportion(df_a: polars.LazyFrame | polars.DataFrame, df_b: polars.LazyFrame | polars.DataFrame, name: str, col_names_a: Optional[agglovar.bed.col.CoordCol | Iterable[str] | str] = None, col_names_b: Optional[agglovar.bed.col.CoordCol | Iterable[str] | str] = None, temp_dir: bool | str | pathlib.Path = False) -> polars.LazyFrame Compute the proportion of each interval in ``df_a`` covered by intervals in ``df_b``. Rows in ``df_a`` with null ``pos`` or ``end`` are preserved in the output with a null proportion. Zero-length intervals (``pos == end``) produce ``NaN`` (0 / 0). :param df_a: Table a. :param df_b: Table b. :param name: Name of the column to add. :param col_names_a: Columns in a (chromosome or query ID, pos, end). :param col_names_b: Columns in b (chromosome or query ID, pos, end). :param temp_dir: How to materialise the prepared tables before iterating. See :func:`agglovar.bed.join.pairwise_join`. :return: A LazyFrame with two columns: ``_index`` and ``name``.