239f153403dc75bf2a57c67ef04dcc7c38e8ecff
angie
  Wed Mar 5 14:03:23 2014 -0800
In addition to trimming the left padding base from VCF indels,now we trim identical bases on the right of all alleles, if there
are any.  I've seen multiple cases of user VCF with indels that
have inflated size due to including right flanking bases; when
trying to determine functional consequences, it's misleading to
have an indel sized larger than it has to be.

diff --git src/lib/annoStreamVcf.c src/lib/annoStreamVcf.c
index 2b582ae..5ca977c 100644
--- src/lib/annoStreamVcf.c
+++ src/lib/annoStreamVcf.c
@@ -160,30 +160,31 @@
 if (words == NULL)
     return NULL;
 // Skip past any left-join failures until we get a right-join failure, a passing row, or EOF.
 struct annoStreamer *sSelf = (struct annoStreamer *)self;
 boolean rightFail = FALSE;
 while (annoFilterRowFails(sSelf->filters, words, sSelf->numCols, &rightFail))
     {
     if (rightFail)
 	break;
     words = nextRowUnfiltered(self, minChrom, minEnd);
     if (words == NULL)
 	return NULL;
     }
 struct vcfRecord *rec = self->record;
 vcfRecordTrimIndelLeftBase(rec);
+vcfRecordTrimAllelesRight(rec);
 char *chrom = getProperChromName(self, rec->chrom);
 return annoRowFromStringArray(chrom, rec->chromStart, rec->chromEnd,
 			      rightFail, words, sSelf->numCols, callerLm);
 }
 
 INLINE boolean vcfAnnoRowIsIndel(struct annoRow *row)
 /* If vcf row's start is one base to the left of row->start, it's an indel whose start
  * coord and alleles required translation into our representation. */
 {
 char **words = (char **)(row->data);
 uint vcfStart = atoll(words[1]);
 return (row->start == vcfStart); // 0-based row->start, 1-based vcfStart
 }
 
 INLINE void nextPosQShouldBeEmpty(struct annoStreamVcf *self)