Adds other VcfRecord to this one, by adding new field(s) in the ALT
        column. Also adds REF nucleotides if they are needed. eg:
        ref: ACGT
        this var: pos=3, REF=T, ALT=A
        other var: pos=1, REF=C, ALT=T
        will change this var to be pos=1, REF=CGT, ALT=TGT,CGA

def merge_by_adding_new_alts(self, other, ref_seq):
        '''Adds other VcfRecord to this one, by adding new field(s) in the ALT
        column. Also adds REF nucleotides if they are needed. eg:
        ref: ACGT
        this var: pos=3, REF=T, ALT=A
        other var: pos=1, REF=C, ALT=T
        will change this var to be pos=1, REF=CGT, ALT=TGT,CGA'''
        if self.CHROM != other.CHROM:
            raise Error('Cannot merge two VCF records that lie on difference chromosomes\n' + str(self) + '\n' + str(other))

        new_ref_start = min(self.POS, other.POS)
        new_ref_end = max(self.ref_end_pos(), other.ref_end_pos())
        new_ref_end = min(new_ref_end, len(ref_seq) - 1)
        other = copy.copy(other)
        self.add_flanking_seqs(ref_seq, new_ref_start, new_ref_end)
        other.add_flanking_seqs(ref_seq, new_ref_start, new_ref_end)

        for other_alt in other.ALT:
            if other_alt not in self.ALT:
                self.ALT.append(other_alt)