b3dbed770983d0b61bbb6fd12735e38a10cd7166
kent
Thu Jun 24 18:26:57 2010 -0700
Getting list of tracks that are being clustered from a database table (defined by an inputTrackTable trackDb tag) rather than trying to figure them out from the trackDb subGroup data. This fixes a problem that sometimes caused tracks that should have appeared in the details page to be missed after the HudsonAlpha data integration into the wgEncodeRegTfbs track.
diff --git src/hg/hgc/peakClusters.c src/hg/hgc/peakClusters.c
index da97737..7208d67 100644
--- src/hg/hgc/peakClusters.c
+++ src/hg/hgc/peakClusters.c
@@ -292,18 +292,15 @@
printf("Cluster Score (out of 1000): %d
\n", cluster->score);
printPos(cluster->chrom, cluster->chromStart, cluster->chromEnd, NULL, TRUE, NULL);
+#ifdef OLD
/* Get list of tracks we'll look through for input. */
- char *inputTracks = trackDbRequiredSetting(tdb, "inputTracks");
struct slName *inTrackList = stringToSlNames(inputTracks);
/* Get list of subgroups to select on */
char *inputTracksSubgroupSelect = trackDbRequiredSetting(tdb, "inputTracksSubgroupSelect");
struct slPair *selGroupList = slPairFromString(inputTracksSubgroupSelect);
- /* Get list of subgroups to display */
- char *inputTracksSubgroupDisplay = trackDbRequiredSetting(tdb, "inputTracksSubgroupDisplay");
- struct slName *displayGroupList = stringToSlNames(inputTracksSubgroupDisplay);
-
+ /* Add factorId as selection criteria*/
/* Figure out factor ID and add it as selection criteria*/
char *factorId = findFactorId(inTrackList, cluster->name);
struct slPair *factorSel = slPairNew("factor", cloneString(factorId));
@@ -312,6 +309,17 @@
/* Get list of tracks that match criteria. */
struct slName *matchTrackList = encodeFindMatchingSubtracks(inTrackList, selGroupList);
struct slName *matchTrack;
+#endif /* OLD */
+
+ /* Get list of tracks we'll look through for input. */
+ char *inputTrackTable = trackDbRequiredSetting(tdb, "inputTrackTable");
+ safef(query, sizeof(query), "select tableName from %s where factor='%s' order by source", inputTrackTable, cluster->name);
+ struct slName *matchTrackList = sqlQuickList(conn, query);
+ struct slName *matchTrack;
+
+ /* Get list of subgroups to display */
+ char *inputTracksSubgroupDisplay = trackDbRequiredSetting(tdb, "inputTracksSubgroupDisplay");
+ struct slName *displayGroupList = stringToSlNames(inputTracksSubgroupDisplay);
/* In a new section put up list of hits. */
webNewSection("List of %s Items in Cluster", cluster->name);