lib5c.algorithms.donut_filters module

lib5c.algorithms.donut_filters.apply_filter(obs_matrix, exp_matrix, footprint, max_percent=0.2, min_exp=0.1)[source]

Computes a corrected expected value by applying a footprint to observed and expected matrix.

Parameters
  • exp_matrix (obs_matrix,) – The square, symmetric matrices of observed and expected counts, respectively.

  • footprint (np.ndarray) – The footprint to convolve. Should contain 1’s at positions included in the footprint and 0’s everywhere else.

  • max_percent (float) – If the proportion of nan’s in the footprint for a pixel is greater than this value, the corrected expected at that point will be set to nan.

  • min_exp (float) – If the sum of entries in exp_matrix under the footprint for a particular pixel is less than this value, set the output at this pixel to nan to avoid numerical instability related to division by small numbers.

Returns

The corrected expected value.

Return type

np.ndarray

lib5c.algorithms.donut_filters.donut_filt(obs_matrix, exp_matrix, p, w, max_percent=0.2, min_exp=0.1)[source]

Computes the full donut filter.

Parameters
  • exp_matrix (obs_matrix,) – The square, symmetric matrices of observed and expected counts, respectively.

  • w (p,) – The inner and outer radii of the donut, respectively.

  • max_percent (float) – If the proportion of nan’s in the footprint for a pixel is greater than this value, the corrected expected at that point will be set to nan.

  • min_exp (float) – If the sum of entries in exp_matrix under the footprint for a particular pixel is less than this value, set the output at this pixel to nan to avoid numerical instability related to division by small numbers.

Returns

The corrected expected value.

Return type

np.ndarray

lib5c.algorithms.donut_filters.lower_left_filt(obs_matrix, exp_matrix, p, w, max_percent=0.2, min_exp=0.1)[source]

Computes the lower left donut filter.

Parameters
  • exp_matrix (obs_matrix,) – The square, symmetric matrices of observed and expected counts, respectively.

  • w (p,) – The inner and outer radii of the donut, respectively.

  • max_percent (float) – If the proportion of nan’s in the footprint for a pixel is greater than this value, the corrected expected at that point will be set to nan.

  • min_exp (float) – If the sum of entries in exp_matrix under the footprint for a particular pixel is less than this value, set the output at this pixel to nan to avoid numerical instability related to division by small numbers.

Returns

The corrected expected value.

Return type

np.ndarray

Examples

>>> import numpy as np
>>> from lib5c.algorithms.donut_filters import lower_left_filt
>>> from lib5c.algorithms.expected import empirical_binned
>>> from lib5c.algorithms.expected import make_expected_matrix_from_list
>>> obs = np.array([[10,  4,  1],
...                 [ 4,  8,  6],
...                 [ 1,  6, 12]]).astype(float)
>>> exp = make_expected_matrix_from_list(
...     empirical_binned(obs, log_transform=False))
>>> exp
array([[10.,  5.,  1.],
       [ 5., 10.,  5.],
       [ 1.,  5., 10.]])
>>> lower_left_filt(obs, exp, 0, 1, max_percent=0.0, min_exp=0.0)
array([[ nan,  4. ,  0.8],
       [ 4. , 10. ,  6. ],
       [ 0.8,  6. ,  nan]])