\n");
-
-/* Track vis dropdown */
-printVisSelect(tdb);
-printGoButton();
+" \n"
+"
\n"
+"
\n");
+gtexEqtlGene(cart, track, tdb);
+puts(
+"
\n"
+"
\n");
+puts(
+" \n"
+"
\n"
+"
\n");
+gtexEqtlEffectSize(cart, track, tdb);
+puts(
+"
\n"
+"
\n");
+puts(
+" \n"
+"
\n"
+"
\n");
+gtexEqtlProbability(cart, track, tdb);
puts(
"
\n"
"
\n");
+}
-/* GTEx-specific track controls, layout in 3 rows */
+static void printGtexGeneConfigPanel(struct trackDb *tdb, char *track)
+/* GTEx Gene track specific controls, layout in 3 rows */
+{
puts(
" \n"
"
\n"
"
\n");
gtexGeneUiGeneLabel(cart, track, tdb);
puts(
"
\n"
"
\n");
gtexGeneUiGeneModel(cart, track, tdb);
puts(
"
\n"
"
\n");
puts(
" \n"
"
\n"
@@ -146,30 +160,57 @@
" \n"
"
\n");
puts(
"
\n");
gtexGeneUiCodingFilter(cart, track, tdb);
puts(
"
\n");
/* Filter on score */
puts(
"
\n");
printScoreFilter(cart, track, tdb);
puts(
"
\n"
"
\n");
+}
+
+static void printConfigPanel(struct trackDb *tdb)
+/* Controls for track configuration (except for tissues) */
+{
+puts(
+" \n"
+"
\n"
+"
Configuration
\n"
+"
\n");
+
+/* Track vis dropdown */
+printVisSelect(tdb);
+printGoButton();
+puts(
+"
\n"
+"
\n");
+
+/* Track-specific config */
+char *track = tdb->track;
+if (gtexIsGeneTrack(track))
+ printGtexGeneConfigPanel(tdb, track);
+else if (gtexIsEqtlTrack(track))
+ printGtexEqtlConfigPanel(tdb, track);
+else
+ errAbort("Unknown GTEx track: %s\n", track);
+
puts(
" \n");
}
static void printTissueTable(struct trackDb *tdb)
/* Output HTML with tissue labels and colors, in 2 columns, to fit next to body map */
{
char *version = gtexVersion(tdb->track);
struct gtexTissue *tis, *tissues = gtexGetTissues(version);
char var[512];
safef(var, sizeof var, "%s.%s", tdb->track, GTEX_TISSUE_SELECT);
struct hash *selectedHash = cartHashList(cart, var);
struct gtexTissue **tisTable = NULL;
int count = slCount(tissues);
AllocArray(tisTable, count);
@@ -327,31 +368,32 @@
"
\n");
puts(tdb->html);
puts(
"
\n"
"
\n");
}
static struct trackDb *getTrackDb(char *db, char *track)
/* Check if this is an assembly with GTEx track and get trackDb */
{
struct sqlConnection *conn = sqlConnect(db);
if (conn == NULL)
errAbort("Can't connect to database %s\n", db);
char where[256];
safef(where, sizeof(where), "tableName='%s'", track);
-// TODO: use hdb, hTrackDbList to get table names of trackDb,
+// WARNING: this will break in sandboxes unless trackDb entry is pushed to hgwdev.
+// The fix of using hTrackDbList() would slow for all users, so leaving as is.
struct trackDb *tdb = trackDbLoadWhere(conn, "trackDb", where);
trackDbAddTableField(tdb);
sqlDisconnect(&conn);
return tdb;
}
static void doMiddle(struct cart *theCart)
/* Send HTML with javascript to display the user interface. */
{
cart = theCart;
char *db = NULL, *genome = NULL, *clade = NULL;
getDbGenomeClade(cart, &db, &genome, &clade, oldVars);
// Start web page with new-style header
webStartGbNoBanner(cart, db, "Genome Browser GTEx Track Settings");