1445a50dd41d52c33e6c882a0ab4961b20c9752e
kate
Tue Jul 25 12:14:48 2017 -0700
1. Rename, reorder and change signatures of utility functions to clarify code, as per Angie code review. 2. Relabel link to GTEx portal viz, as per feedback from Farhad H. refs #15646
diff --git src/hg/hgc/gtexEqtlClusterClick.c src/hg/hgc/gtexEqtlClusterClick.c
index 5d2fff2..f25be1f 100644
--- src/hg/hgc/gtexEqtlClusterClick.c
+++ src/hg/hgc/gtexEqtlClusterClick.c
@@ -33,35 +33,39 @@
return eqtls;
}
static char *getGeneDescription(struct sqlConnection *conn, char *geneName)
/* Return description from KnownGenes track */
{
char query[256];
sqlSafef(query, sizeof query,
"SELECT kgXref.description FROM kgXref WHERE geneSymbol='%s'", geneName);
return sqlQuickString(conn, query);
}
static void printMinorAlleleFreq(char *rsId, struct sqlConnection *conn)
/* Print minor allele frequency for a SNP (from UCSC dbSNP table) */
{
-#define ALLELE_COUNT 10
+#define SNP_COMMON_SUFFIX "Common"
+#define MAX_ALLELE_COUNT 10
+char *snpTable = hFindLatestSnpTableConn(conn, SNP_COMMON_SUFFIX);
+if (!snpTable)
+ return;
char query[256];
-sqlSafef(query, sizeof query, "SELECT alleleFreqs FROM snp147 WHERE name='%s'", rsId);
-double freqs[ALLELE_COUNT];
-int count = sqlDoubleArray(sqlQuickString(conn, query), freqs, ALLELE_COUNT);
+sqlSafef(query, sizeof query, "SELECT alleleFreqs FROM %s WHERE name='%s'", snpTable, rsId);
+double freqs[MAX_ALLELE_COUNT];
+int count = sqlDoubleArray(sqlQuickString(conn, query), freqs, MAX_ALLELE_COUNT);
doubleSort(count, freqs);
printf("
Minor allele frequency (1000 Genomes): %.0f%%\n", 100.0 * freqs[count-2]);
}
static void printGwasCatalogTrait(char *rsId, struct sqlConnection *conn)
/* Print trait/disease for a SNP (from UCSC gwasCatalog table) */
{
char query[256];
sqlSafef(query, sizeof query, "SELECT count(*) FROM gwasCatalog WHERE name='%s'", rsId);
int count = sqlQuickNum(conn, query);
if (count)
{
sqlSafef(query, sizeof query, "SELECT trait FROM gwasCatalog WHERE name='%s' LIMIT 1", rsId);
char *trait = sqlQuickString(conn, query);
printf("
GWAS disease or trait");
@@ -152,31 +156,31 @@
printGwasCatalogTrait(eqtl->name, conn);
}
else
printf("%s\n", eqtl->name);
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 eQTLs for this gene at the GTEx portal\n",
+ "View eQTL Visualizer for this gene at the GTEx Portal\n",
geneName);
-printf("
Number of tissues with this eQTL: %d\n", eqtl->expCount);
hFreeConn(&conn);
printClusterDetails(eqtl, tdb->table);
webNewEmptySection();
printTrackHtml(tdb);
}