ce071c4386ed8c9dffc9719bdba4276d7525d937
markd
  Mon Aug 8 23:44:57 2011 -0700
fixed problem with automatic-only and manual-only filters
diff --git src/hg/hgTracks/simpleTracks.c src/hg/hgTracks/simpleTracks.c
index ea45600..ddbe069 100644
--- src/hg/hgTracks/simpleTracks.c
+++ src/hg/hgTracks/simpleTracks.c
@@ -4223,33 +4223,33 @@
 char *nameCol = trackDbSettingOrDefault(tg->tdb, GENEPRED_CLASS_NAME_COLUMN, GENEPRED_CLASS_NAME_COLUMN_DEFAULT);
 struct dyString *dyQuery = dyStringCreate("select 1 from %s where %s = \"%s\" and ", classTable, nameCol, lf->name);
 dyStringAppend(dyQuery, clause);
 freeMem(clause);
 return dyQuery;
 }
 
 static void gencodeFilterByMethodChoice(struct dyString *dyClause, char *choice)
 /* add compared for a choice for special case of GENCODE transcript method. */
 {
 if (sameString(choice, "manual"))
     dyStringAppend(dyClause, "(transSrc.source like \"%havana%\")");
 else if (sameString(choice, "automatic"))
     dyStringAppend(dyClause, "(transSrc.source like \"%ensembl%\")");
 else if (sameString(choice, "manual_only"))
-    dyStringAppend(dyClause, "(transSrc.source not like \"%havana%\")");
+    dyStringAppend(dyClause, "(transSrc.source like \"%havana%\") and (transSrc.source not like \"%ensembl%\")");
 else if (sameString(choice, "automatic_only"))
-    dyStringAppend(dyClause, "(transSrc.source not like \"%ensembl%\")");
+    dyStringAppend(dyClause, "(transSrc.source like \"%ensembl%\") and (transSrc.source not like \"%havana%\")");
 else
     errAbort("BUG: filterByMethodChoice missing choice: \"%s\"", choice);
 }
 
 static char *gencodeFilterByMethod(filterBy_t *filterBy)
 {
 if ((filterBy->slChoices == NULL) || (slNameInList(filterBy->slChoices,"All")))
     return NULL;
 
 struct dyString *clause = newDyString(256);
 struct slName *slChoice = NULL;
 dyStringAppend(clause, "(transSrc.transcriptId = attrs.transcriptId) and ");
 boolean first = TRUE;
 for(slChoice = filterBy->slChoices; slChoice != NULL; slChoice = slChoice->next)
     {