4136a55c19a0a9f522e0a4479bce9f7cf79bb05d
kate
  Fri Jan 11 13:51:08 2013 -0800
Sort cluster lists by metadata terms for more reliable ordering.  Needed for #9954 ENCODE Regulation: DNase Clusters V2
diff --git src/hg/hgc/peakClusters.c src/hg/hgc/peakClusters.c
index df834cd..b04094a 100644
--- src/hg/hgc/peakClusters.c
+++ src/hg/hgc/peakClusters.c
@@ -241,31 +241,31 @@
 char *vocabFile = NULL;
 struct hash *vocabHash = NULL;
 if (vocab)
     {
     vocabFile = cloneFirstWord(vocab);
     vocabHash = getVocabHash(vocabFile);
     }
 
 /* Make the SQL query to get the table and all other fields we want to show
  * from inputTrackTable. */
 struct dyString *query = dyStringNew(0);
 dyStringPrintf(query, "select tableName");
 struct slName *field;
 for (field = fieldList; field != NULL; field = field->next)
     dyStringPrintf(query, ",%s", field->name);
-dyStringPrintf(query, " from %s", inputTrackTable);
+dyStringPrintf(query, " from %s order by cellType, treatment, lab", inputTrackTable);
 
 int displayNo = 0;
 int fieldCount = slCount(fieldList);
 struct sqlResult *sr = sqlGetResult(conn, query->string);
 char **row;
 while ((row = sqlNextRow(sr)) != NULL)
     {
     char *table = row[0];
     double signal = getSignalAt(table, cluster);
     if (signal != 0)
 	{
 	printf("</TR><TR>\n");
 	webPrintIntCell(++displayNo);
 	webPrintDoubleCell(signal);
 	printControlledVocabFields(row+1, fieldCount, fieldList, vocabFile, vocabHash);