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("<B>Cluster Score (out of 1000):</B> %d<BR>\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);