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) {