2ffc9d13a7475fbf6eb60a6b50d463ee11e7ff41 kate Wed Oct 25 18:06:54 2017 -0700 Implement V2 GTEx eQTL clusters as described in RM as 'permissive with ID'. This adds Ensembl gene ID to schemas. Also adding summary columns to cluster track (maxEffect, maxPvalue, effectType) to provide alternative to parsing comma-sep fields for table filtering. refs #15646 diff --git src/hg/hgc/gtexEqtlClusterClick.c src/hg/hgc/gtexEqtlClusterClick.c index b5de604..219cee7 100644 --- src/hg/hgc/gtexEqtlClusterClick.c +++ src/hg/hgc/gtexEqtlClusterClick.c @@ -120,65 +120,64 @@ char *name = tis ? tis->description : "Unknown"; printf("%s%s%0.2f%0.2f%0.2f\n", color, name, effect < 0 ? "" : "+", effect, pval, prob); } printf(""); webEndSection(); } void doGtexEqtlDetails(struct trackDb *tdb, char *item) /* Details of GTEx eQTL item */ { char *chrom = cartString(cart, "c"); int start = cartInt(cart, "o"); int end = cartInt(cart, "t"); struct gtexEqtlCluster *eqtl = getGtexEqtl(item, chrom, start, end, tdb->table); +if (eqtl == NULL) + errAbort("Can't find eQTL cluster '%s'", item); char *geneName = eqtl->target; - genericHeader(tdb, item); printf("Gene: "); struct sqlConnection *conn = hAllocConn(database); char *desc = getGeneDescription(conn, geneName); if (desc == NULL) printf("%s\n", geneName); else { printf("%s
\n", hgGeneName(), database, geneName, geneName); printf("Description: %s\n", desc); } - -// TODO: Consider adding Ensembl gene ID, GENCODE biotype and class (as in gtexGene track) +printf("
Ensembl gene ID: %s\n", eqtl->targetId); printf("
Variant: %s ", eqtl->name); if (startsWith("rs", eqtl->name)) { printDbSnpRsUrl(eqtl->name, "dbSNP"); printMinorAlleleFreq(eqtl->name, conn); printGwasCatalogTrait(eqtl->name, conn); } else printf("%s\n", eqtl->name); printf("
Distance from TSS: %d\n", eqtl->distance); char posLink[1024]; safef(posLink, sizeof posLink,"%s:%d-%d", hgTracksPathAndSettings(), database, eqtl->chrom, eqtl->chromStart+1, eqtl->chromEnd, eqtl->chrom, eqtl->chromStart+1, eqtl->chromEnd); printf("
Position: %s\n", posLink); - printf("
Score: %d\n", eqtl->score); printEqtlRegion(eqtl, tdb->table, conn); printf("
Number of tissues with this eQTL: %d\n", eqtl->expCount); // print link to GTEx portal printf("
" "View eQTL Visualizer for this gene at the GTEx Portal\n", geneName); hFreeConn(&conn); printClusterDetails(eqtl, tdb->table); webNewEmptySection(); printTrackHtml(tdb);