b56aaf37a70d531c514f7ba88f3c6a73888b527e angie Mon Nov 20 11:59:22 2017 -0800 hgTracks/simpleTracks.c's lookupRefNames ignores subtrack-level label settings, so don't display the refGene label settings when it's a subtrack. Also fixed up omim-detection logic for ncbiRefSeqLink. refs #19318 diff --git src/hg/hgTrackUi/hgTrackUi.c src/hg/hgTrackUi/hgTrackUi.c index ad96d13..b5eff0a 100644 --- src/hg/hgTrackUi/hgTrackUi.c +++ src/hg/hgTrackUi/hgTrackUi.c @@ -1838,52 +1838,57 @@ void rgdGene2UI(struct trackDb *tdb) /* Put up rgdGene2 gene ID track controls, with checkboxes */ { /* Put up label line - boxes for gene and accession. */ printf("<B>Label:</B> "); labelMakeCheckBox(tdb, "gene", "gene", FALSE); labelMakeCheckBox(tdb, "acc", "accession", FALSE); printf("<BR>\n"); baseColorDrawOptDropDown(cart, tdb); } void refGeneUI(struct trackDb *tdb) /* Put up refGene or xenoRefGene gene ID track controls, with checkboxes */ { +// Show label options only if top-level track; ncbiRefSeqUI (for refSeqComposite) shows +// label options for all subtracks. +if (tdb->parent == NULL) + { /* Figure out if OMIM database is available. */ int omimAvail = 0; if (sameString(tdb->track, "refGene")) { struct sqlConnection *conn = hAllocConn(database); char query[128]; sqlSafef(query, sizeof(query), "select r.omimId from %s r, refGene where r.mrnaAcc = refGene.name and r.omimId != 0 limit 1", refLinkTable); omimAvail = sqlQuickNum(conn, query); hFreeConn(&conn); } /* Put up label line - boxes for gene, accession or maybe OMIM. */ printf("<BR><B>Label:</B> "); labelMakeCheckBox(tdb, "gene", "gene", TRUE); labelMakeCheckBox(tdb, "acc", "accession", FALSE); if (omimAvail != 0) { char sym[32]; safef(sym, sizeof(sym), "omim%s", cartString(cart, "db")); labelMakeCheckBox(tdb, sym, "OMIM ID", FALSE); } printf("<BR>\n"); + } /* Put up noncoding option and codon coloring stuff. */ hideNoncodingOpt(tdb); baseColorDrawOptDropDown(cart, tdb); printf("<BR>\n"); // let the user choose to see the track in wiggle mode wigOption(cart, tdb->track, tdb->shortLabel, tdb); } void transMapUI(struct trackDb *tdb) /* Put up transMap-specific controls for table-based transMap */ { // FIXME: this can be deleted once table-based transMap is no longer supported. printf("<B>Label:</B> "); @@ -1898,53 +1903,45 @@ } void retroGeneUI(struct trackDb *tdb) /* Put up retroGene-specific controls */ { printf("<B>Label:</B> "); labelMakeCheckBox(tdb, "gene", "gene", FALSE); labelMakeCheckBox(tdb, "acc", "accession", FALSE); baseColorDrawOptDropDown(cart, tdb); } void ncbiRefSeqUI(struct trackDb *tdb) /* Put up gene ID track controls */ { -struct sqlConnection *conn = hAllocConn(database); -char query[256]; -char *omimAvail = NULL; -if (sqlTableExists(conn, "kgXref")) - { - sqlSafef(query, sizeof(query), "select kgXref.kgID from kgXref,%s r where kgXref.refseq = r.mrnaAcc and r.omimId != 0 limit 1", refLinkTable); - omimAvail = sqlQuickString(conn, query); - } -else if (sqlTableExists(conn, "ncbiRefSeqLink")) - omimAvail = "yes"; - -char varName[64]; +char varName[256]; safef(varName, sizeof(varName), "%s.label", tdb->track); printf("<br><b>Label:</b> "); labelMakeCheckBox(tdb, "gene", "gene symbol", TRUE); labelMakeCheckBox(tdb, "acc", "accession", FALSE); +struct sqlConnection *conn = hAllocConn(database); +boolean omimAvail = sqlQuickNum(conn, + NOSQLINJ"select 1 from ncbiRefSeqLink where omimId != 0 limit 1"); if (omimAvail) { char sym[32]; safef(sym, sizeof(sym), "omim%s", cartString(cart, "db")); labelMakeCheckBox(tdb, sym, "OMIM ID", FALSE); } -printf(" (select gene symbol(s) to display)<br>"); +hFreeConn(&conn); } void ensGeneUI(struct trackDb *tdb) /* Put up Ensembl Gene track-specific controls */ { ensGeneIdConfig(tdb); printf("<BR>\n"); /* Put up codon coloring stuff. */ baseColorDrawOptDropDown(cart, tdb); } void vegaGeneUI(struct trackDb *tdb) /* Put up Vega Gene track-specific controls */ {