Return a data structure containing all indels in the read.
        Returns the tuple (insertions, deletions)
        insertions = [(pos1,ins1), (pos2,ins2)]
        posN = start position (preceding base, VCF-style)
        insN = length of inserted sequence (not including preceding base)
        deletions = [(pos1,del1), (pos2,del2)]
        posN = start position (preceding base, VCF-style)
        delN = length of deleted sequence (not including preceding base)

def get_indels( self, one_based=True ):
        """Return a data structure containing all indels in the read.
        Returns the tuple (insertions, deletions)
        insertions = [(pos1,ins1), (pos2,ins2)]
        posN = start position (preceding base, VCF-style)
        insN = length of inserted sequence (not including preceding base)
        deletions = [(pos1,del1), (pos2,del2)]
        posN = start position (preceding base, VCF-style)
        delN = length of deleted sequence (not including preceding base)
        """
        cigar = self.get_cigar() #CIGAR_OP = list( 'MIDNSHP=X' )
        insertions = []
        deletions = []
        position_offset = 0
        position_start = self.get_position( one_based=one_based )
        while cigar:
            cigar_size, cigar_op = cigar.pop( 0 )
            if cigar_op in [ 0, 7, 8 ]: #M alignment match (can be a sequence match or mismatch); = sequence match; x sequence mismatch
                position_offset += cigar_size
            elif cigar_op == 1: #I insertion
                insertions.append((position_start + position_offset - 1, cigar_size))
            elif cigar_op == 2: #D deletion from the reference
                deletions.append((position_start + position_offset - 1, cigar_size))
                position_offset += cigar_size
            elif cigar_op == 3: #N skipped region from the reference
                position_offset += cigar_size
            elif cigar_op == 4: #S soft clipping (clipped sequences present in SEQ)
                pass
            elif cigar_op == 5: #H hard clipping (clipped sequences NOT present in SEQ)
                position_offset += cigar_size
            elif cigar_op == 6: #P padding (silent deletion from padded reference)
                pass
            else: #unknown cigar_op
                print >>sys.stderr, 'unknown cigar_op', cigar_op, cigar_size
        return (insertions, deletions)