59087e52f3bfa2b6c917e932e0c151813931c497
angie
  Tue Jul 1 14:09:01 2014 -0700
Small bugfix: when reference allele had a padding base but alt allelewas symbolic, the first char was trimmed from the symbolic allele too, oops.

diff --git src/lib/vcf.c src/lib/vcf.c
index 09950ae..9e79390 100644
--- src/lib/vcf.c
+++ src/lib/vcf.c
@@ -1259,32 +1259,33 @@
  * Return dy->string for convenience. */
 {
 // VCF reference allele gets its own column:
 char *refAllele = words[3];
 char *altAlleles = words[4];
 // Make a vcfRecord-like allele array (ref in [0], alts after) so we can check for padding base:
 int alCount = 1 + countChars(altAlleles, ',') + 1;
 char *alleles[alCount];
 alleles[0] = refAllele;
 char altAlCopy[strlen(altAlleles)+1];
 safecpy(altAlCopy, sizeof(altAlCopy), altAlleles);
 chopByChar(altAlCopy, ',', &(alleles[1]), alCount-1);
 int i;
 if (allelesHavePaddingBase(alleles, alCount))
     {
-    // Skip padding base:
+    // Skip padding base (unless we have a symbolic allele):
     for (i = 0;  i < alCount;  i++)
+	if (isAllNt(alleles[i], strlen(alleles[i])))
 	    alleles[i]++;
     }
 // Having dealt with left padding base, now look for identical bases on the right:
 int trimmedBases = countIdenticalBasesRight(alleles, alCount);
 // Build a /-separated allele string, trimming bases on the right if necessary:
 dyStringClear(dy);
 for (i = 0;  i < alCount;  i++)
     {
     if (i > 0)
 	dyStringAppendC(dy, '/');
     char *allele = alleles[i];
     if (allele[trimmedBases] == '\0')
 	dyStringAppendC(dy, '-');
     else
 	dyStringAppendN(dy, allele, strlen(allele)-trimmedBases);