478610d3be4abc22e330f4fbb154a2ac8ac4abfa
max
Tue Jan 20 15:24:18 2026 -0800
add strand filter option to oligoMatch track refs #36984
Co-Authored-By: Claude Opus 4.5
\n"); printf("Color sequence matches by "); char *colorText[3] = {"topic", "impact of journal", "year"}; char *colorVals[3] = {"topic", "impact", "year"}; safef(cgiVar,sizeof(cgiVar),"%s.%s",tdb->track,PUBS_COLORBY_TAG); cgiDropDownWithTextValsAndExtra(cgiVar, colorText, colorVals, 3, colorBy, NULL); puts("
\n"); wigOption(cart, tdb->track, tdb->shortLabel, tdb); } void oligoMatchUi(struct trackDb *tdb) /* UI for oligo match track */ { char *oligo = cartUsualString(cart, oligoMatchVar, oligoMatchDefault); +char *strand = cartUsualString(cart, oligoMatchStrandVar, oligoMatchStrandDefault); puts("Short (2-30 base) sequence:");
jsInline(
"function packTrack()\n"
"{\n"
"var box = jQuery('select[name$=oligoMatch]');\n"
"if (box.val()=='hide')\n"
" box.val('pack');\n"
"}\n");
printf("",
oligoMatchVar, oligoMatchVar, 45, oligo);
puts("
Examples: TATAWAAR, AAAAA");
jsOnEventById("input", oligoMatchVar, "packTrack();");
+
+puts("
Search strand: "); +cgiMakeRadioButton(oligoMatchStrandVar, "both", sameString(strand, "both")); +puts(" Both "); +cgiMakeRadioButton(oligoMatchStrandVar, "forward", sameString(strand, "forward")); +puts(" Forward (+) "); +cgiMakeRadioButton(oligoMatchStrandVar, "reverse", sameString(strand, "reverse")); +puts(" Reverse (-) "); } void cutterUi(struct trackDb *tdb) /* UI for restriction enzyme track */ { char *enz = cartUsualString(cart, cutterVar, cutterDefault); puts("
Filter display by enzymes (separate with commas):
");
cgiMakeTextVar(cutterVar, enz, 100);
}
void genericWiggleUi(struct trackDb *tdb, int optionNum )
/* put up UI for any standard wiggle track (a.k.a. sample track)*/
{
char options[7][256];