0a875074931c855db2e0d1886665e5343b304878
angie
  Fri Jul 29 16:49:56 2011 -0700
MLQ #4765: User translated BED6 to BAM, with '*' (placeholder) for the querysequence and quality scores, and our BAM display code didn't anticipate
missing seq & base quals.  Handle that case since it is legal BAM, albeit an
unusual use of BAM.  :)

diff --git src/hg/hgTracks/bamTrack.c src/hg/hgTracks/bamTrack.c
index 37ad195..18a3c5b 100644
--- src/hg/hgTracks/bamTrack.c
+++ src/hg/hgTracks/bamTrack.c
@@ -569,31 +569,32 @@
 int w = x2-x1;
 int midY = y + (heightPer>>1);
 char *exonArrowsDense = trackDbSettingClosestToHome(tg->tdb, "exonArrowsDense");
 boolean exonArrowsEvenWhenDense = (exonArrowsDense != NULL &&
 				   !sameWord(exonArrowsDense, "off"));
 boolean exonArrows = (tg->exonArrows &&
 		      (vis != tvDense || exonArrowsEvenWhenDense));
 struct dnaSeq *mrnaSeq = NULL;
 enum baseColorDrawOpt drawOpt = baseColorDrawOff;
 boolean indelShowDoubleInsert, indelShowQueryInsert, indelShowPolyA;
 struct psl *psl = (struct psl *)(lf->original);
 char *colorMode = cartOrTdbString(cart, tg->tdb, BAM_COLOR_MODE, BAM_COLOR_MODE_DEFAULT);
 char *grayMode = cartOrTdbString(cart, tg->tdb, BAM_GRAY_MODE, BAM_GRAY_MODE_DEFAULT);
 bool baseQualMode = (sameString(colorMode, BAM_COLOR_MODE_GRAY) &&
 		     sameString(grayMode, BAM_GRAY_MODE_BASE_QUAL));
-if (vis != tvDense)
+char *qSeq = lf->extra;
+if (vis != tvDense && isNotEmpty(qSeq) && !sameString(qSeq, "*"))
     {
     drawOpt = baseColorDrawSetup(hvg, tg, lf, &mrnaSeq, &psl);
     if (drawOpt > baseColorDrawOff)
 	exonArrows = FALSE;
     }
 
 static Color darkBlueColor = 0;
 static Color darkRedColor = 0;
 if (darkRedColor == 0)
     {
     darkRedColor = hvGfxFindColorIx(hvg, 100,0,0);
     darkBlueColor = hvGfxFindColorIx(hvg, 0,0,100);
     }
 if (sameString(colorMode, BAM_COLOR_MODE_STRAND))
     color = (lf->orientation < 0) ? darkRedColor : darkBlueColor;