7fbad72434b7fd7559b48236c2d331c79fb9f29f markd Fri Feb 25 21:05:12 2022 -0800 move check for baseColorUseSequence setting until is is actually needed diff --git src/hg/hgTracks/cds.c src/hg/hgTracks/cds.c index 61a2a05..d8225d3 100644 --- src/hg/hgTracks/cds.c +++ src/hg/hgTracks/cds.c @@ -941,36 +941,38 @@ int nwords = chopByWhite(buf->string, words, ArraySize(words)); if ((nwords != ArraySize(words)) || !sameString(words[0], "extFile")) errAbort("invalid %s track setting: %s", BASE_COLOR_USE_SEQUENCE, seqSource); return hDnaSeqGet(database, name, words[1], words[2]); } static struct dnaSeq *maybeGetSeqUpper(struct linkedFeatures *lf, char *tableName, struct track *tg) /* Look up the sequence in genbank tables (hGenBankGetMrna also searches * seq if it can't find it in GB tables) or user's blat sequence, * uppercase and return it if we find it, return NULL if we don't find it. */ { struct dnaSeq *mrnaSeq = NULL; char *name = getItemDataName(tg, lf->name); +if (sameString(tableName,"refGene") || sameString(tableName,"refSeqAli")) + mrnaSeq = hGenBankGetMrna(database, name, "refMrna"); +else + { char *seqSource = trackDbSetting(tg->tdb, BASE_COLOR_USE_SEQUENCE); if (seqSource == NULL) errAbort("setting '%s' missing for track '%s'", BASE_COLOR_USE_SEQUENCE, tg->track); -else if (sameString(tableName,"refGene") || sameString(tableName,"refSeqAli")) - mrnaSeq = hGenBankGetMrna(database, name, "refMrna"); -else if (sameString(seqSource, "ss")) + if (sameString(seqSource, "ss")) mrnaSeq = maybeGetUserSeq(name); #ifndef GBROWSE else if (sameString(seqSource, PCR_RESULT_TRACK_NAME)) mrnaSeq = maybeGetPcrResultSeq(lf); #endif /* GBROWSE */ else if (startsWith("extFile", seqSource)) mrnaSeq = maybeGetExtFileSeq(seqSource, name); else if (endsWith("ExtFile", seqSource)) mrnaSeq = maybeGetExtFileSeq(seqSource, name); else if (sameString("nameIsSequence", seqSource)) { mrnaSeq = newDnaSeq(cloneString(name), strlen(name), name); if (lf->orientation == -1) reverseComplement(mrnaSeq->dna, mrnaSeq->size); } @@ -997,31 +999,31 @@ { char *table = seqSource; nextWord(&table); mrnaSeq = hGenBankGetMrna(database, name, table); } else if (startsWithWord("db", seqSource)) { char *sourceDb = seqSource; nextWord(&sourceDb); if (isEmpty(sourceDb)) sourceDb = database; mrnaSeq = hChromSeq(sourceDb, name, 0, 0); } else mrnaSeq = hGenBankGetMrna(database, name, NULL); - +} if (mrnaSeq != NULL) touppers(mrnaSeq->dna); return mrnaSeq; } static void makeCdsShades(struct hvGfx *hvg, Color *cdsColor) /* setup CDS colors */ { cdsColor[CDS_ERROR] = hvGfxFindColorIx(hvg,0,0,0); cdsColor[CDS_ODD] = hvGfxFindColorIx(hvg,CDS_ODD_R,CDS_ODD_G,CDS_ODD_B); cdsColor[CDS_EVEN] = hvGfxFindColorIx(hvg,CDS_EVEN_R,CDS_EVEN_G,CDS_EVEN_B); cdsColor[CDS_START] = hvGfxFindColorIx(hvg,CDS_START_R,CDS_START_G,CDS_START_B); cdsColor[CDS_STOP] = hvGfxFindColorIx(hvg,CDS_STOP_R,CDS_STOP_G,CDS_STOP_B);