0ca2f6c1f2b42131bb87d680e49bee7f07e5bd23
angie
  Wed Jul 13 11:38:19 2011 -0700
MLQ #4606: user found that a two-base deletion was not recognized asa frameshift by pgSnp hgc handler.  Fix: since dnaseq.c's translateSeq
returns a protein with empty sequence if the input is less than 3 bases
(like "-G"), check for emtpy sequence.  I kind of wonder if translateSeq
should return "X" if the input is 1 or 2 bases...?

diff --git src/hg/lib/pgSnp.c src/hg/lib/pgSnp.c
index c3bddf5..40b44e6 100644
--- src/hg/lib/pgSnp.c
+++ src/hg/lib/pgSnp.c
@@ -451,31 +451,31 @@
         else if (item->chromStart == item->chromEnd &&
                  countChars(allele[i], '-') == strlen(allele[i]))
             {
             printf("&nbsp;&nbsp;&nbsp;&nbsp;wildtype<BR>\n");
             }
         else
             {
             struct dnaSeq *dnaseq = newDnaSeq(cod->seq, strlen(cod->seq), "orig");
             aaSeq *origAa = translateSeq(dnaseq, 0, FALSE);
             if (!strstr(origAa->dna, "X"))
                 {
                 char *rep2 = replaceString(cod->seq, (cod->regStart - cod->cdStart), (cod->regEnd - cod->cdStart), allele[i]);
                 dnaseq = newDnaSeq(rep2, strlen(rep2), "rep2");
                 aaSeq *repAa = translateSeq(dnaseq, 0, FALSE);
                 //freeDnaSeq(&dnaseq);
-                if (!strstr(repAa->dna, "X"))
+                if (!strstr(repAa->dna, "X") && isNotEmpty(repAa->dna))
                     {
                     printf("&nbsp;&nbsp;&nbsp;&nbsp;%s &gt; %s<BR>\n",
                         origAa->dna, repAa->dna);
                     if (differentString(origAa->dna, repAa->dna))
                         aaProperties(origAa->dna, repAa->dna);
                     }
                 else if ((countChars(rep2, '-')) % 3 != 0)
                     {
                     printf("&nbsp;&nbsp;&nbsp;&nbsp;frameshift<BR>\n");
                     }
                 }
             }
         }
     }
 bedFreeList(&list);