smftools.tools.read_stats#

Functions

binary_autocorrelation_with_spacing(row, ...)

Fast autocorrelation over real genomic spacing.

calculate_row_entropy(adata, layer[, ...])

Add per-read entropy values to adata.obs.

random_fill_nans(X)

Fill NaNs with random values in-place.

smftools.tools.read_stats.random_fill_nans(X)#

Fill NaNs with random values in-place.

Parameters:

X (ndarray) -- Input array with NaNs.

Returns:

Array with NaNs replaced by random values.

Return type:

numpy.ndarray

smftools.tools.read_stats.calculate_row_entropy(adata, layer, output_key='entropy', site_config=None, ref_col='Reference_strand', encoding='signed', max_threads=None)#

Add per-read entropy values to adata.obs.

Parameters:
  • adata (AnnData) -- Annotated data matrix.

  • layer (str) -- Layer name to use for entropy calculation.

  • output_key (str (default: 'entropy')) -- Base name for the entropy column in adata.obs.

  • site_config (dict[str, Sequence[str]] | None (default: None)) -- Mapping of reference to site types for masking.

  • ref_col (str (default: 'Reference_strand')) -- Obs column containing reference strands.

  • encoding (str (default: 'signed')) -- "signed" (1/-1/0) or "binary" (1/0/NaN).

  • max_threads (int | None (default: None)) -- Number of threads for parallel processing.

Return type:

None

smftools.tools.read_stats.binary_autocorrelation_with_spacing(row, positions, max_lag=1000, assume_sorted=True)#

Fast autocorrelation over real genomic spacing. Uses a sliding window + bincount to aggregate per-lag products.

Parameters#

row1D array (float)

Values per position (NaN = missing). Works for binary or real-valued.

positions1D array (int)

Genomic coordinates for each column of row.

max_lagint

Max genomic lag (inclusive).

assume_sortedbool

If True, assumes positions are strictly non-decreasing.

Returns#

autocorr1D array, shape (max_lag+1,)

Normalized autocorrelation; autocorr[0] = 1.0. Lags with no valid pairs are NaN.