src/hg/hgc/peakClusters.c 1.6

1.6 2010/05/20 03:22:12 kent
Writing out table of cell types and single letter abbreviations on factorSource details page. Removing some debugging.
Index: src/hg/hgc/peakClusters.c
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/hgc/peakClusters.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 4 -r1.5 -r1.6
--- src/hg/hgc/peakClusters.c	18 May 2010 22:39:08 -0000	1.5
+++ src/hg/hgc/peakClusters.c	20 May 2010 03:22:12 -0000	1.6
@@ -68,9 +68,8 @@
     {
     webPrintLabelCell(displayGroup->name);
     }
 webPrintLabelCell("description");
-printf("</TR><TR>\n");
 }
 
 static void printOutOfClusterTableHeader(struct slName *displayGroupList)
 /* Print out header fields for table of tracks not in cluster */
@@ -81,9 +80,8 @@
     {
     webPrintLabelCell(displayGroup->name);
     }
 webPrintLabelCell("description");
-printf("</TR><TR>\n");
 }
 
 static void printTableInfo(struct trackDb *tdb, struct trackDb *clusterTdb,
     struct slName *displayGroupList)
@@ -95,17 +93,21 @@
     char *label = findGroupLabel(tdb, displayGroup->name);
     char *linkedLabel = compositeLabelWithVocabLink(database, tdb, tdb, displayGroup->name, label);
     webPrintLinkCell(linkedLabel);
     }
-webPrintLinkCell(tdb->longLabel);
+webPrintLinkCellStart();
+printf("%s ", tdb->longLabel);
+compositeMetadataToggle(database, tdb, "...", TRUE, FALSE);
+webPrintLinkCellEnd();
 }
 
 static void showOnePeakOrMiss(struct trackDb *tdb, struct trackDb *clusterTdb,
 	struct encodePeak *peakList, struct slName *displayGroupList, int *pIx)
 /* Show info on track and peak.  Peak may be NULL in which case fewer columns will be printed. */
 {
 struct encodePeak *peak;
 *pIx += 1;
+printf("</TR><TR>\n");
 webPrintIntCell(*pIx);
 if (peakList)
     {
     webPrintLinkCellRightStart();
@@ -114,9 +116,8 @@
 	printf(",%g", peak->signalValue);
     webPrintLinkCellEnd();
     }
 printTableInfo(tdb, clusterTdb, displayGroupList);
-printf("</TR><TR>\n");
 }
 
 static boolean showMatchingTrack(char *track, struct bed *cluster, struct sqlConnection *conn,
 	struct trackDb *clusterTdb, struct slName *displayGroupList, boolean invert, int *pRowIx)
@@ -244,10 +245,10 @@
     }
 printf("<A HREF=\"%s&g=htcListItemsAssayed&table=%s\" TARGET_blank>", hgcPathAndSettings(),
 	tdb->track);
 printf("List all items assayed");
-webNewSection("Track Description");
 printf("</A><BR>\n");
+webNewSection("Track Description");
 printTrackHtml(tdb);
 cartWebEnd();
 hFreeConn(&conn);
 }
@@ -290,35 +291,28 @@
     printf("<B>Factor:</B> %s<BR>\n", cluster->name);
     printf("<B>Cluster Score (out of 1000):</B> %d<BR>\n", cluster->score);
     printPos(cluster->chrom, cluster->chromStart, cluster->chromEnd, NULL, TRUE, NULL);
 
-    char *sourceTable = trackDbRequiredSetting(tdb, "sourceTable");
-    uglyf("<B>sourceTable:</B> %s<BR>\n", sourceTable);
-
     /* Get list of tracks we'll look through for input. */
     char *inputTracks = trackDbRequiredSetting(tdb, "inputTracks");
     struct slName *inTrackList = stringToSlNames(inputTracks);
-    uglyf("<B>inputTracks:</B> %s (%d)<BR>\n", inputTracks, slCount(inTrackList));
 
     /* Get list of subgroups to select on */
     char *inputTracksSubgroupSelect = trackDbRequiredSetting(tdb, "inputTracksSubgroupSelect");
     struct slPair *selGroupList = slPairFromString(inputTracksSubgroupSelect);
-    uglyf("<B>inputTracksSubgroupSelect:</B> %s (%d)<BR>\n", inputTracksSubgroupSelect, slCount(selGroupList));
 
     /* Get list of subgroups to display */
     char *inputTracksSubgroupDisplay = trackDbRequiredSetting(tdb, "inputTracksSubgroupDisplay");
     struct slName *displayGroupList = stringToSlNames(inputTracksSubgroupDisplay);
 
     /* Figure out factor ID and add it as selection criteria*/
     char *factorId = findFactorId(inTrackList, cluster->name);
-    uglyf("<B>cluster->id:</B> %s  <B>factorId:</B> %s<BR>\n", cluster->name, factorId);
     struct slPair *factorSel = slPairNew("factor", cloneString(factorId));
     slAddHead(&selGroupList, factorSel);
 
     /* Get list of tracks that match criteria. */
     struct slName *matchTrackList = encodeFindMatchingSubtracks(inTrackList, selGroupList);
     struct slName *matchTrack;
-    uglyf("<B>matchTrackList:</B> %d elements<BR>\n", slCount(matchTrackList));
 
     /* In a new section put up list of hits. */
     webNewSection("List of %s Items in Cluster", cluster->name);
     webPrintLinkTableStart();
@@ -343,7 +337,27 @@
 	}
     webPrintLinkTableEnd();
 
     webNewSection("Track Description");
+
+    /* Print out table of abbreviations. */
+    char *sourceTable = trackDbRequiredSetting(tdb, "sourceTable");
+    printf("<B>Table of abbreviations for cells</B><BR>\n");
+    safef(query, sizeof(query), "select name,description from %s order by name", sourceTable);
+    struct sqlResult *sr = sqlGetResult(conn, query);
+    webPrintLinkTableStart();
+    webPrintLabelCell("Symbol");
+    webPrintLabelCell("Cell Type");
+    while ((row = sqlNextRow(sr)) != NULL)
+        {
+	printf("</TR><TR>\n");
+	char *name = row[0];
+	char *description = row[1];
+	webPrintLinkCell(name);
+	webPrintLinkCell(description);
+	}
+    sqlFreeResult(&sr);
+    webPrintLinkTableEnd();
+
     }
 }