4734e09dea54e231a21e474826e46f90fba326ad kate Wed Sep 13 14:47:47 2017 -0700 Add info icon to tissue selection panel. Clicking this will toggle display of sample count for all tissues. Input from Casey Brown, U Penn. Note this also effects GTEx Gene track. refs #15646 diff --git src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c index b646917..f09df09 100644 --- src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c +++ src/hg/hgGtexTrackSettings/hgGtexTrackSettings.c @@ -55,30 +55,31 @@ printf( " <span class='gbTrackName'>\n" " %s Track\n" " <span class='gbAssembly'> %s </span>\n" " </span>" " <span class='gbTrackTitle'> %s </span>\n" , tdb->shortLabel, assembly, tdb->longLabel); puts( "<!-- Info icon built from stacked fa icons -->\n" " <a href='#INFO_SECTION' title='Jump to the track description'>\n" " <span class='gbIconSmall fa-stack'>\n" " <i class='gbBlueDarkColor fa fa-circle fa-stack-2x'></i>\n" " <i class='gbWhiteColor fa fa-info fa-stack-1x'></i>\n" " </span></a>\n" ); + if (tdb->parent) { // link to supertrack char *encodedMapName = cgiEncode(tdb->parent->track); char *chromosome = cartUsualString(cart, "c", hDefaultChrom(database)); puts(" "); printf( " <a href='%s?%s=%s&c=%s&g=%s' title='Go to container track (%s)'>\n" " <i class='gbIconLevelUp fa fa-level-up'></i>\n" " </a>\n", hgTrackUiName(), cartSessionVarName(), cartSessionId(cart), chromosome, encodedMapName, tdb->parent->shortLabel ); freeMem(encodedMapName); } @@ -230,59 +231,71 @@ char *version = gtexVersion(tdb->track); struct gtexTissue *tis, *tissues = gtexGetTissues(version); char var[512]; safef(var, sizeof var, "%s.%s", tdb->track, GTEX_TISSUE_SELECT); struct hash *selectedHash = cartHashList(cart, var); struct gtexTissue **tisTable = NULL; int count = slCount(tissues); AllocArray(tisTable, count); int i=0, col=0; int cols = 2; int last = count/2 + 1; puts( " <!-- Tissue list -->\n" "<div class='row gbSectionBanner'>\n" - " <div class='col-md-1'>Tissues</div>\n" - " <div class='col-md-7 gbSectionInfo'>\n" - " Click label below or in Body Map to set or clear a tissue\n" +" <div class='col-md-2'>Tissues\n" +" <!-- Info icon built from stacked fa icons -->\n" +" <span id='showSampleCount' title='Show sample counts'>\n" +" <span class='gbIconSmall fa-stack'>\n" +" <i class='gbBlueDarkColor fa fa-circle fa-stack-2x'></i>\n" +" <i class='gbWhiteColor fa fa-info fa-stack-1x'></i>\n" +" </span></a>\n" +" </span>\n" +" </div>\n" +" <div class='col-md-6 gbSectionInfo'>\n" +" Click below or in Body Map to change tissues\n" " </div>\n" " <div class='col-md-4 gbButtonContainer text-right'>\n" " <div id='setAll' class='gbButtonSetClear gbButton'>set all</div>\n" " <div id='clearAll' class='gbButtonSetClear gbButton'>clear all</div>\n" " </div>\n" "</div>\n" ); puts( "<table class='gbmTissueTable'>\n"); puts( "<tr>\n"); for (tis = tissues; tis != NULL; tis = tis->next) { if (tis->id < last) i = tis->id * 2; else i = (tis->id - last) * 2 + 1; tisTable[i] = tis; } boolean all = (hashNumEntries(selectedHash) == 0) ? TRUE : FALSE; +struct hash *tscHash = gtexGetTissueSampleCount(version); for (i=0; i<count; i++) { tis = tisTable[i]; boolean isChecked = all || (hashLookup(selectedHash, tis->name) != NULL); printf( + "<td class='gbmTissueSampleCount'>%s%d</td>\n ", + i == 0 ? "N= ":"", hashIntValDefault(tscHash, tis->name, 0)); + printf( "<td class='gbmTissueColorPatch %s' " "data-tissueColor=#%06X ", isChecked ? "" : "gbmTissueNotSelectedColor", tis->color); printf( "style='background-color: #%06X;" "border-color: #%06X;'></td>\n", isChecked ? tis->color : 0xFFFFFF, tis->color); printf( "<td class='gbmTissueLabel %s' id='%s'>%s", isChecked ? "gbmTissueSelected" : "", tis->name, tis->description); // Hidden checkbox stores value for cart printf( "<input type='checkbox' name='%s' value='%s' %s style='display: none;'>", var, tis->name, isChecked ? "checked" : ""); puts(