def threshold_cell_line_np(np_C, np_X, np_Y, cell_line, more_than, less_than=None):
    """
    Threshold based on cell line specific coverage values.
    :param np_C: np array of coordinates
    :param np_X: np array of onehot sequences
    :param np_Y: np array of target coverage values
    :param cell_line: cell line number or index
    :param more_than: lower limit
    :param less_than: upper limit
    :return: filtered coordinates, onehot sequences and targets
    """
    m1 = np_Y[:, :, cell_line].max(axis=1) > more_than
    if less_than:
        m2 = np_Y[:, :, cell_line].max(axis=1) < less_than
        threshold_mask = (m1 & m2)
    else:
        threshold_mask = m1
    thresholded_X = np_X[threshold_mask]
    thresholded_C = np_C[threshold_mask]
    thresholded_Y = np_Y[threshold_mask, :, cell_line]
    return (thresholded_C, thresholded_X, thresholded_Y)