10ec9a824b3a05f8fbd73deb1db8add870a3535e angie Wed Dec 11 10:11:11 2013 -0800 Fixing bad assumption that htcCdnaAli's aliTable is a track. It may be "all_mrna". Fixes #12322 diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 9204c60..679c251 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -6974,32 +6974,34 @@ struct sqlConnection *conn = hAllocConn(database); unsigned retId = 0; safef(accTmp, sizeof accTmp, "bz-%s", acc); if (hRnaSeqAndIdx(accTmp, &rnaSeq, &retId, conn) == -1) rnaSeq = hRnaSeq(database, acc); hFreeConn(&conn); } else if (sameString("HInvGeneMrna", aliTable)) { /* get RNA accession for the gene id in the alignment */ sqlSafef(query, sizeof query, "select mrnaAcc from HInv where geneId='%s'", acc); rnaSeq = hRnaSeq(database, sqlQuickString(conn, query)); } else { - struct trackDb *tdb = hashMustFindVal(trackHash, aliTable); - char *cdnaTable = trackDbSetting(tdb, "cdnaTable"); + char *cdnaTable = NULL; + struct trackDb *tdb = hashFindVal(trackHash, aliTable); + if (tdb != NULL) + cdnaTable = trackDbSetting(tdb, "cdnaTable"); if (isNotEmpty(cdnaTable) && hTableExists(database, cdnaTable)) rnaSeq = hGenBankGetMrna(database, acc, cdnaTable); else rnaSeq = hRnaSeq(database, acc); } if (startsWith("xeno", aliTable)) showSomeAlignment(psl, rnaSeq, gftDnaX, 0, rnaSeq->size, NULL, cdsStart, cdsEnd); else showSomeAlignment(psl, rnaSeq, gftDna, 0, rnaSeq->size, NULL, cdsStart, cdsEnd); hFreeConn(&conn); } void htcCdnaAliInWindow(char *acc) /* Show part of alignment in browser window for accession. */ @@ -7105,32 +7107,34 @@ 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); rnaSeq = hDnaSeqGet(database, acc, words[1], words[2]); } else if (sameString("HInvGeneMrna", aliTable)) { /* get RNA accession for the gene id in the alignment */ sqlSafef(query, sizeof(query), "select mrnaAcc from HInv where geneId='%s'", acc); rnaSeq = hRnaSeq(database, sqlQuickString(conn, query)); } else { - struct trackDb *tdb = hashMustFindVal(trackHash, aliTable); - char *cdnaTable = trackDbSetting(tdb, "cdnaTable"); + char *cdnaTable = NULL; + struct trackDb *tdb = hashFindVal(trackHash, aliTable); + if (tdb != NULL) + cdnaTable = trackDbSetting(tdb, "cdnaTable"); if (isNotEmpty(cdnaTable) && hTableExists(database, cdnaTable)) rnaSeq = hGenBankGetMrna(database, acc, cdnaTable); else rnaSeq = hRnaSeq(database, acc); } } /* Get partial psl for part of alignment in browser window: */ if (wholePsl->tStart >= winStart && wholePsl->tEnd <= winEnd) partPsl = wholePsl; else partPsl = pslTrimToTargetRange(wholePsl, winStart, winEnd); if (startsWith("xeno", aliTable)) errAbort("htcCdnaAliInWindow does not support translated alignments."); else