90f7a592103554129bc969299a356439ae02336c
angie
  Thu Nov 3 10:56:04 2016 -0700
VCF details: don't show name if empty or placeholder.  Show ExAC link before dbSNP link and make ExAC link label more consistent with ExAC display.  refs #18284

diff --git src/hg/hgc/vcfClick.c src/hg/hgc/vcfClick.c
index 2dbe0b9..bf1adc8 100644
--- src/hg/hgc/vcfClick.c
+++ src/hg/hgc/vcfClick.c
@@ -463,52 +463,53 @@
     dyStringClear(dy);
     if (showLeftBase)
 	dyStringPrintf(dy, "(%c)", leftBase);
     abbreviateLongSeq(rec->alleles[i], endLength, showLength, dy);
     if (encodeHtml)
 	displayAls[i] = htmlEncode(dy->string);
     else
 	displayAls[i] = cloneString(dy->string);
     }
 }
 
 static void vcfRecordDetails(struct trackDb *tdb, struct vcfRecord *rec)
 /* Display the contents of a single line of VCF, assumed to be from seqName
  * (using seqName instead of rec->chrom because rec->chrom might lack "chr"). */
 {
+if (isNotEmpty(rec->name) && differentString(rec->name, "."))
     printf("<B>Name:</B> %s<BR>\n", rec->name);
+if (sameString(tdb->track, "exacVariants"))
+    {
+    printf("<b>ExAC:</b> "
+           "<a href=\"http://exac.broadinstitute.org/variant/%s-%d-%s-%s\" "
+           "target=_blank>%s:%d %s/%s</a><br>\n",
+           skipChr(rec->chrom), rec->chromStart+1, rec->alleles[0], rec->alleles[1],
+           skipChr(rec->chrom), rec->chromStart+1, rec->alleles[0], rec->alleles[1]);
+    }
 // Since these are variants, if it looks like a dbSNP or dbVar ID, provide a link:
 if (regexMatch(rec->name, "^rs[0-9]+$"))
     {
     printf("<B>dbSNP:</B> ");
     printDbSnpRsUrl(rec->name, "%s", rec->name);
     puts("<BR>");
     }
 else if (regexMatch(rec->name, "^[en]ss?v[0-9]+$"))
     {
     printf("<B>dbVar:</B> ");
     printf("<A HREF=\"http://www.ncbi.nlm.nih.gov/dbvar/variants/%s/\" "
 	   "TARGET=_BLANK>%s</A><BR>\n", rec->name, rec->name);
     }
-if (sameString(tdb->track, "exacVariants"))
-    {
-    printf("<b>ExAC:</b> "
-           "<a href=\"http://exac.broadinstitute.org/variant/%s-%d-%s-%s\" "
-           "target=_blank>%s-%d-%s-%s</a><br>\n",
-           skipChr(rec->chrom), rec->chromStart+1, rec->alleles[0], rec->alleles[1],
-           skipChr(rec->chrom), rec->chromStart+1, rec->alleles[0], rec->alleles[1]);
-    }
 printCustomUrl(tdb, rec->name, TRUE);
 boolean hapClustEnabled = cartOrTdbBoolean(cart, tdb, VCF_HAP_ENABLED_VAR, TRUE);
 if (hapClustEnabled)
     {
     static char *formName = "vcfCfgHapCenter";
     printf("<FORM NAME=\"%s\" ACTION=\"%s\">\n", formName, hgTracksName());
     cartSaveSession(cart);
     vcfCfgHaplotypeCenter(cart, tdb, tdb->track, FALSE, rec->file, rec->name,
 			  seqName, rec->chromStart, formName);
     printf("</FORM>\n");
     }
 char leftBase = rec->alleles[0][0];
 unsigned int vcfStart = vcfRecordTrimIndelLeftBase(rec);
 boolean showLeftBase = (rec->chromStart == vcfStart+1);
 (void)vcfRecordTrimAllelesRight(rec);