Ejemplo n.º 1
0
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,))
Ejemplo n.º 2
0
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, ))
Ejemplo n.º 3
0
 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')
Ejemplo n.º 4
0
 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')