def filter_unexpected_features(insertions):
    """Filters insertions that have non splice-acceptor/donor features.

    This filter removes any insertions that splice to tranposon features
    that aren't splice-acceptors or splice-donors. This is based on the
    premise that these other sites are unlikely to be involved in any
    splicing and that therefore these insertions are likely to be false
    positives of the fusion identification.

    Parameters
    ----------
    insertions : iterable[Insertion]
        Insertions to filter.

    Yields
    ------
    Insertion
        Next filtered insertion.

    """
    for ins in insertions:
        if ins.metadata['feature_type'] in {'SA', 'SD'}:
            yield ins
