def find_overlap_tx(read_block, bed_df, ignore_strand=True):
    """
    The function use read_block to find which transcripts in bed_df overlaps with the range of introns in the read.
    Return the overlapped transcript index.
    """
    bed_df = bed_df[bed_df['chrom'] == read_block.chrom]
    if not ignore_strand:
        bed_df = bed_df[bed_df['strand'] == read_block.strand]
    left_flag = bed_df['end'] > min(read_block.introns['intron_starts'])
    right_flag = bed_df['start'] < max(read_block.introns['intron_ends'])
    tx_i = bed_df[left_flag & right_flag].index
    return tx_i
