4a8e25e1d1dbe331ab0eb499cd48b18ae2d22522 kate Sat Feb 1 15:29:36 2014 -0800 Merge branch diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 7a54f13..a986afc 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -3724,56 +3724,69 @@ } getBedTopScorers(conn, tdb, table, item, start, bedSize); sqlFreeResult(&sr); hFreeConn(&conn); /* printTrackHtml is done in genericClickHandlerPlus. */ } void doBed6FloatScore(struct trackDb *tdb, char *item) /* Handle click in BED 4+ track that's like BED 6 but with floating pt score */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr = NULL; char table[64]; boolean hasBin; -struct bed6FloatScore *b6; +struct bed6FloatScore *b6 = NULL; struct dyString *query = newDyString(512); char **row; boolean firstTime = TRUE; int start = cartInt(cart, "o"); genericHeader(tdb, item); hFindSplitTable(database, seqName, tdb->table, table, &hasBin); sqlDyStringPrintf(query, "select * from %s where chrom = '%s' and ", table, seqName); hAddBinToQuery(winStart, winEnd, query); sqlDyStringPrintf(query, "name = '%s' and chromStart = %d", item, start); sr = sqlGetResult(conn, query->string); while ((row = sqlNextRow(sr)) != NULL) { if (firstTime) firstTime = FALSE; else htmlHorizontalLine(); b6 = bed6FloatScoreLoad(row+hasBin); bedPrintPos((struct bed *)b6, 4, tdb); printf("Score: %f
\n", b6->score); printf("Strand: %s
\n", b6->strand); } sqlFreeResult(&sr); + +// Support for motif display if configured in trackDb +// TODO - share code with factorSource +char *motifPwmTable = trackDbSetting(tdb, "motifPwmTable"); +struct dnaMotif *motif = NULL; +if (motifPwmTable != NULL && sqlTableExists(conn, motifPwmTable)) + { + motif = loadDnaMotif(b6->name, motifPwmTable); + if (motif == NULL) + return; + struct dnaSeq *seq = hDnaFromSeq(database, b6->chrom, b6->chromStart, b6->chromEnd, dnaLower); + motifLogoAndMatrix(&seq, 1, motif); + } hFreeConn(&conn); /* printTrackHtml is done in genericClickHandlerPlus. */ } void doColoredExon(struct trackDb *tdb, char *item) /* Print information for coloredExon type tracks. */ { struct sqlConnection *conn = hAllocConn(database); struct sqlResult *sr; char query[256]; char **row; genericHeader(tdb, item); sqlSafef(query, sizeof(query), "select chrom,chromStart,chromEnd,name,score,strand from %s where name='%s'", tdb->table, item); sr = sqlGetResult(conn, query); if ((row = sqlNextRow(sr)) != NULL)