d09b392333a2f5d2f943f2f36dad4be0a477381e
kate
Thu Sep 14 13:55:37 2017 -0700
Add pvalue and TSS distance for each eQTL. Input from Casey Brown, U Penn. refs #15646
diff --git src/hg/hgc/gtexEqtlClusterClick.c src/hg/hgc/gtexEqtlClusterClick.c
index f25be1f..7152e66 100644
--- src/hg/hgc/gtexEqtlClusterClick.c
+++ src/hg/hgc/gtexEqtlClusterClick.c
@@ -96,41 +96,42 @@
posLink, end-start, FLANK);
}
static void printClusterDetails(struct gtexEqtlCluster *eqtl, char *table)
/* Print details of an eQTL cluster */
{
webNewSection("eQTL Cluster Details");
char *version = gtexVersion(table);
struct gtexTissue *tissues = gtexGetTissues(version);
struct hash *tissueHash = hashNew(0);
struct gtexTissue *tis = NULL;
for (tis = tissues; tis != NULL; tis = tis->next)
hashAdd(tissueHash, tis->name, tis);
printf("
\n");
printf("");
-printf(" | Tissue | Effect | Probability |
\n");
+printf(" | Tissue | Effect | P-Value (-log10) | Probability |
\n");
int i;
for (i=0; iexpCount; i++)
{
double effect = eqtl->expScores[i];
+ double pval = eqtl->expPvals[i];
double prob = eqtl->expProbs[i];
struct gtexTissue *tis = (struct gtexTissue *)hashFindVal(tissueHash, eqtl->expNames[i]);
unsigned color = tis ? tis->color : 0; // BLACK
char *name = tis ? tis->description : "Unknown";
- printf(" | %s | %s%0.2f | %0.2f |
\n",
- color, name, effect < 0 ? "" : "+", effect, prob);
+ 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);
char *geneName = eqtl->target;
@@ -145,30 +146,31 @@
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("
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("
"