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(" 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(" %s > %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(" frameshift<BR>\n"); } } } } } bedFreeList(&list);