smftools.tools.spatial_autocorrelation#
Functions
|
Analyze autocorrelation matrix and extract periodicity metrics. |
|
Compute autocorrelation over genomic spacing. |
|
Bootstrap periodicity metrics from autocorrelation matrices. |
|
Estimate signal-to-noise ratio around a spectral peak. |
|
Find the peak frequency in the nucleosome repeat length band. |
|
Fit an exponential envelope to sampled autocorrelation peaks. |
|
Estimate FWHM in base pairs for a spectral peak. |
|
Compute a power spectral density from autocorrelation. |
Fill NaNs with random values in-place. |
|
|
Slide a genomic window across positions and compute periodicity metrics. |
|
Sample autocorrelation heights at NRL harmonics. |
|
Compute weighted mean autocorrelation per lag. |
- smftools.tools.spatial_autocorrelation.random_fill_nans(X)#
Fill NaNs with random values in-place.
- smftools.tools.spatial_autocorrelation.binary_autocorrelation_with_spacing(row, positions, max_lag=1000, assume_sorted=True, normalize='sum', return_counts=False)#
Compute autocorrelation over genomic spacing.
- Parameters:
row (
ndarray[Any,dtype[floating]]) -- Values per position (NaN = missing).positions (
ndarray[Any,dtype[integer]]) -- Genomic coordinates for each column ofrow.max_lag (
int(default:1000)) -- Max genomic lag (inclusive).assume_sorted (
bool(default:True)) -- Whetherpositionsare sorted.normalize (
str(default:'sum')) --"sum"or"pearson"normalization.return_counts (
bool(default:False)) -- Whether to return lag counts alongside autocorrelation.
- Returns:
Autocorrelation values and optionally counts per lag.
- Return type:
- smftools.tools.spatial_autocorrelation.weighted_mean_autocorr(ac_matrix, counts_matrix, min_count=20)#
Compute weighted mean autocorrelation per lag.
- Parameters:
ac_matrix -- Autocorrelation matrix per molecule.
counts_matrix -- Pair counts per lag.
min_count (default:
20) -- Minimum total count required to keep a lag.
- Returns:
Mean autocorrelation and total counts.
- Return type:
- smftools.tools.spatial_autocorrelation.psd_from_autocorr(mean_ac, lags, pad_factor=4)#
Compute a power spectral density from autocorrelation.
- Parameters:
- Returns:
Frequencies and power values.
- Return type:
- smftools.tools.spatial_autocorrelation.find_peak_in_nrl_band(freqs, power, nrl_search_bp=(120, 260), prominence_frac=0.05)#
Find the peak frequency in the nucleosome repeat length band.
- Parameters:
- Returns:
Peak frequency and index, or
(None, None).- Return type:
- smftools.tools.spatial_autocorrelation.fwhm_freq_to_bp(freqs, power, peak_idx)#
Estimate FWHM in base pairs for a spectral peak.
- smftools.tools.spatial_autocorrelation.estimate_snr(power, peak_idx, exclude_bins=5)#
Estimate signal-to-noise ratio around a spectral peak.
- smftools.tools.spatial_autocorrelation.sample_autocorr_at_harmonics(mean_ac, lags, nrl_bp, max_harmonics=6)#
Sample autocorrelation heights at NRL harmonics.
- Parameters:
- Returns:
Sampled lags and heights.
- Return type:
- smftools.tools.spatial_autocorrelation.fit_exponential_envelope(sample_lags, heights, counts=None)#
Fit an exponential envelope to sampled autocorrelation peaks.
- Parameters:
- Returns:
(xi, A, slope, r2).- Return type:
- smftools.tools.spatial_autocorrelation.analyze_autocorr_matrix(autocorr_matrix, counts_matrix, lags, nrl_search_bp=(120, 260), pad_factor=4, min_count=20, max_harmonics=6)#
Analyze autocorrelation matrix and extract periodicity metrics.
- Parameters:
autocorr_matrix (
ndarray[Any,dtype[floating]]) -- Autocorrelation values per molecule.counts_matrix (
ndarray[Any,dtype[integer]]) -- Pair counts per lag.lags (
ndarray[Any,dtype[floating]]) -- Lag values in base pairs.nrl_search_bp (
tuple[int,int] (default:(120, 260))) -- NRL search band in base pairs.pad_factor (
int(default:4)) -- Padding factor for FFT.min_count (
int(default:20)) -- Minimum total count to retain a lag.max_harmonics (
int(default:6)) -- Maximum harmonics to sample.
- Returns:
Metrics including NRL, SNR, and PSD summaries.
- Return type:
- smftools.tools.spatial_autocorrelation.bootstrap_periodicity(autocorr_matrix, counts_matrix, lags, n_boot=200, **kwargs)#
Bootstrap periodicity metrics from autocorrelation matrices.
- Parameters:
autocorr_matrix (
ndarray[Any,dtype[floating]]) -- Autocorrelation matrix per molecule.counts_matrix (
ndarray[Any,dtype[integer]]) -- Pair counts per lag.lags (
ndarray[Any,dtype[floating]]) -- Lag values in base pairs.n_boot (
int(default:200)) -- Number of bootstrap samples.**kwargs -- Additional arguments for
analyze_autocorr_matrix.
- Returns:
Bootstrapped metric arrays and per-iteration metrics.
- Return type:
- smftools.tools.spatial_autocorrelation.rolling_autocorr_metrics(X, positions, site_label=None, window_size=2000, step=500, max_lag=800, min_molecules_per_window=10, nrl_search_bp=(120, 260), pad_factor=4, min_count_for_mean=20, max_harmonics=6, n_jobs=1, verbose=False, return_window_results=False, fixed_nrl_bp=None)#
Slide a genomic window across positions and compute periodicity metrics.
- Parameters:
X (
ndarray[Any,dtype[floating]]) -- Binary site matrix for a group (sample × reference × site_type).positions (
ndarray[Any,dtype[integer]]) -- Genomic coordinates for columns ofX.site_label (
str|None(default:None)) -- Label for the site type.window_size (
int(default:2000)) -- Window width in bp.step (
int(default:500)) -- Slide step in bp.max_lag (
int(default:800)) -- Max lag (bp) to compute autocorr out to.min_molecules_per_window (
int(default:10)) -- Minimum molecules required per window.nrl_search_bp (
tuple[int,int] (default:(120, 260))) -- NRL search band in base pairs.pad_factor (
int(default:4)) -- Padding factor for FFT.min_count_for_mean (
int(default:20)) -- Minimum count for mean autocorrelation.max_harmonics (
int(default:6)) -- Maximum harmonics to sample.n_jobs (
int(default:1)) -- Number of parallel jobs (joblib if available).verbose (
bool(default:False)) -- Whether to log progress.return_window_results (
bool(default:False)) -- Whether to return per-window analyzer outputs.fixed_nrl_bp (
float|None(default:None)) -- If provided, use a fixed NRL in bp for analysis.
- Returns:
Window-level metrics, with optional raw analyzer outputs.
- Return type: