def filter_diff(d, error_filter, error_filter_length): '''Filter the hap difference array d using the filter of type error_filter.''' # d is a binary image. Filter genotype errors, manifested as spikes in d if error_filter == 'median': return ndimage.median_filter(d, error_filter_length) # filtered_diff = ndimage.median_filter(d_snps, error_filter_length, mode='constant', cval=0) elif error_filter == 'fast_max': center_value = 2 * error_filter_length + 1 window = [1] * center_value window[error_filter_length] = center_value f = ndimage.convolve(d, np.array(window, dtype=int)) return ((f > 1) & (f < center_value)).astype('int') elif error_filter == 'max_except_center': return util.max_except_center_filter(d, error_filter_length) else: raise ValueError('Unsupported error filter ''%s''' % (error_filter,))
def filter_diff(d, error_filter, error_filter_length): '''Filter the hap difference array d using the filter of type error_filter.''' # d is a binary image. Filter genotype errors, manifested as spikes in d if error_filter == 'median': return ndimage.median_filter(d, error_filter_length) # filtered_diff = ndimage.median_filter(d_snps, error_filter_length, mode='constant', cval=0) elif error_filter == 'fast_max': center_value = 2 * error_filter_length + 1 window = [1] * center_value window[error_filter_length] = center_value f = ndimage.convolve(d, np.array(window, dtype=int)) return ((f > 1) & (f < center_value)).astype('int') elif error_filter == 'max_except_center': return util.max_except_center_filter(d, error_filter_length) else: raise ValueError('Unsupported error filter ' '%s' '' % (error_filter, ))
def test_filter_max_except_center(self): '''Custom digitla filter.''' assert_equal(max_except_center_filter(np.array([0, 0, 1, 0, 0, 1]), 3), [0, 0, 0, 0, 0, 0], 'Wrong custom filter result') assert_equal(max_except_center_filter(np.array([0, 0, 1, 1, 0, 1]), 5), [0, 0, 1, 1, 0, 1], 'Wrong custom filter result')