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);