0a35a5aef108000ab4d18b84f0bdbb882e0d59e0 kate Wed Jul 5 14:20:15 2017 -0700 Add flanking sequence to position link so border eQTL's show up in display. refs #15646 diff --git src/hg/hgc/gtexEqtlClusterClick.c src/hg/hgc/gtexEqtlClusterClick.c index 8af729c..dc4b664 100644 --- src/hg/hgc/gtexEqtlClusterClick.c +++ src/hg/hgc/gtexEqtlClusterClick.c @@ -59,53 +59,55 @@ int i; struct sqlConnection *conn = hAllocConn(database); char *geneName = eqtl->target; char *desc = getGeneDescription(conn, geneName); printf("<b>Gene: </b>"); if (desc == NULL) printf("%s<br>\n", geneName); else { printf("<a target='_blank' href='%s?db=%s&hgg_gene=%s'>%s</a><br>\n", hgGeneName(), database, geneName, geneName); printf("<b>Description:</b> %s\n", desc); } char posLink[1024]; -safef(posLink, sizeof(posLink),"<a href=\"%s&db=%s&position=%s%%3A%d-%d\">%s:%d-%d</a>", +safef(posLink, sizeof posLink,"<a href='%s&db=%s&position=%s%%3A%d-%d'>%s:%d-%d</a>", hgTracksPathAndSettings(), database, eqtl->chrom, eqtl->chromStart+1, eqtl->chromEnd, eqtl->chrom, eqtl->chromStart+1, eqtl->chromEnd); // TODO: Consider adding Ensembl gene ID, GENCODE biotype and class (as in gtexGene track) printf("<br><b>Variant:</b> %s\n", eqtl->name); printf("<br><b>Position:</b> %s\n", posLink); printf("<br><b>Score:</b> %d\n", eqtl->score); +#define FLANK 1000 char query[256]; sqlSafef(query, sizeof query, "SELECT MIN(chromStart) from %s WHERE target='%s'", tdb->table, eqtl->target); -start = sqlQuickNum(conn, query); -sqlSafef(query, sizeof query, "SELECT MAX(chromStart) from %s WHERE target='%s'", +start = sqlQuickNum(conn, query) - FLANK; +sqlSafef(query, sizeof query, "SELECT MAX(chromEnd) from %s WHERE target='%s'", tdb->table, eqtl->target); -end = sqlQuickNum(conn, query); -safef(posLink, sizeof(posLink),"<a href=\"%s&db=%s&position=%s%%3A%d-%d\">%s:%d-%d</a>", +end = sqlQuickNum(conn, query) + FLANK; +safef(posLink, sizeof posLink,"<a href='%s&db=%s&position=%s%%3A%d-%d'>%s:%d-%d</a>", hgTracksPathAndSettings(), database, eqtl->chrom, start+1, end, eqtl->chrom, start+1, end); -printf("<br><b>Region containing eQTLs for this gene:</b> %s (%d bp)\n", posLink, end-start); +printf("<br><b>Region containing eQTLs for this gene:</b> %s (%d bp, including +-%dbp flank)\n", + posLink, end-start, FLANK); printf("<br><a target='_blank' href='https://www.gtexportal.org/home/bubbleHeatmapPage/%s'>" "View eQTLs for this gene at the GTEx portal<a>\n", geneName); printf("<br><b>Number of tissues with this eQTL:</b> %d\n", eqtl->expCount); hFreeConn(&conn); webNewSection("eQTL cluster details"); printf("<table id='eqtls' cellspacing=1 cellpadding=3>\n"); //printf("<style>#eqtls th {text-align: left; background-color: #eaca92;}</style>"); printf("<style>#eqtls th {text-align: left; background-color: #F3E0BE;}</style>"); printf("<tr><th> </th><th>Tissue</th><th>Effect </th><th>Probability </th></tr>\n"); for (i=0; i<eqtl->expCount; i++) { double effect= eqtl->expScores[i];