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("
\n");
displayMapped(bag);
printf(" | \n");
displaySource(bag);
printf(" | \n");
printf(" |
\n");
printf("\n");
displayAligns(tdb, bag);
printf(" |
\n");
printf("\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("");
printf("\n%s vs Genomic\n\n\n", mappedId);
showSomeAlignment(bag->psl, seq, gftDna, 0, seq->size, NULL, cds.start, cds.end);
dnaSeqFree(&seq);
transMapBagFree(&bag);
}