def skip_bam_read(read):
    """
    Returns true of read should be skipped based on the
    specified conditions
    """
    return read.is_secondary or \
           read.is_duplicate or \
           read.is_supplementary or \
           (read.is_paired and read.mate_is_unmapped) or \
           (read.is_paired and not read.is_proper_pair)