30bf4401ae2d6c5a6b2c9df0cb0885460710d4eb
markd
  Mon Jan 23 19:25:03 2017 -0800
fix link to transcript alignment viewer for bigTransMap tracks

diff --git src/hg/hgc/transMapClick.c src/hg/hgc/transMapClick.c
index 77c4e7f..fdff8a3 100644
--- src/hg/hgc/transMapClick.c
+++ src/hg/hgc/transMapClick.c
@@ -293,50 +293,62 @@
 printf("<TR><TD>\n");
 displayMapped(bag);
 printf("<TD>\n");
 displaySource(bag);
 printf("<TD>&nbsp;\n");
 printf("</TR>\n");
 printf("<TR><TD COLSPAN=3>\n");
 displayAligns(tdb, bag);
 printf("</TR>\n");
 printf("</TABLE>\n");
 
 printTrackHtml(tdb);
 transMapBagFree(&bag);
 }
 
-static struct dnaSeq *getCdnaSeq(struct trackDb *tdb, char *name)
+static struct dnaSeq *getCdnaSeqDb(struct trackDb *tdb, char *name)
 /* look up sequence name in seq and extFile tables specified
  * for base coloring. */
 {
 /* FIXME: this is really a rip off of some of the code in
  * hgTracks/cds.c; really need to centralize it somewhere */
 char *spec = trackDbRequiredSetting(tdb, BASE_COLOR_USE_SEQUENCE);
 char *specCopy = cloneString(spec);
 
 // value is: extFile seqTbl extFileTbl
 char *words[3];
 int nwords = chopByWhite(specCopy, words, ArraySize(words));
 if ((nwords != ArraySize(words)) || !sameString(words[0], "extFile"))
     errAbort("invalid %s track setting: %s", BASE_COLOR_USE_SEQUENCE, spec);
 struct dnaSeq *seq = hDnaSeqMustGet(NULL, name, words[1], words[2]);
 freeMem(specCopy);
 return seq;
 }
 
 void transMapShowCdnaAli(struct trackDb *tdb, char *mappedId)
 /* Show alignment for mappedId, mostly ripped off from htcCdnaAli */
 {
-struct transMapBag *bag = transMapBagLoadDb(tdb, mappedId);
+struct transMapBag *bag = NULL;
+struct dnaSeq *seq = NULL;
+if (trackDbSetting(tdb, "bigDataUrl") == NULL)
+    {
+    bag = transMapBagLoadDb(tdb, mappedId);
+    seq = getCdnaSeqDb(tdb, transMapIdToSeqId(mappedId));
+    }
+else
+    {
+    bag = transMapBagLoadBig(tdb, mappedId);
+    seq = newDnaSeq(cloneString(bag->meta->oSequence), strlen(bag->meta->oSequence),
+                    mappedId);
+    }
+
 struct genbankCds cds;
 if (isEmpty(bag->meta->oCDS) || !genbankCdsParse(bag->meta->oCDS, &cds))
     ZeroVar(&cds);  /* can't get or parse CDS, so zero it */
-struct dnaSeq *seq = getCdnaSeq(tdb, transMapIdToSeqId(mappedId));
 
 writeFramesetType();
 puts("<HTML>");
 printf("<HEAD>\n<TITLE>%s vs Genomic</TITLE>\n</HEAD>\n\n", mappedId);
 showSomeAlignment(bag->psl, seq, gftDna, 0, seq->size, NULL, cds.start, cds.end);
 dnaSeqFree(&seq);
 transMapBagFree(&bag);
 }