768bdbd3b55a16d81a6dade060ecd0419c7be14f
kate
Thu Jun 13 13:30:23 2013 -0700
Ad position links for motifs within cluster. refs #9092
diff --git src/hg/hgc/peakClusters.c src/hg/hgc/peakClusters.c
index 06acf50..3e4de89 100644
--- src/hg/hgc/peakClusters.c
+++ src/hg/hgc/peakClusters.c
@@ -403,54 +403,62 @@
char *factorLink = cluster->name;
char *vocab = trackDbSetting(tdb, "controlledVocabulary");
if (vocab != NULL)
{
char *file = cloneFirstWord(vocab);
factorLink = controlledVocabLink(file, "term", factorLink, factorLink, factorLink, "");
}
printf("Factor: %s
\n", factorLink);
printf("Cluster Score (out of 1000): %d
\n", cluster->score);
if (motif != NULL && hits != NULL)
{
struct bed6FloatScore *hit = NULL;
int i;
seqs = needMem(sizeof(struct dnaSeq *) * slCount(hits));
+ char posLink[1024];
for (hit = hits, i = 0; hit != NULL; hit = hit->next, i++)
{
char query[256];
float maxScore = -1;
sqlSafef(query, sizeof(query),
"select max(score) from %s where name = '%s'",
"wgEncodeRegTfbsClusteredMotifs", item);
sr = sqlGetResult(conn, query);
if ((row = sqlNextRow(sr)) != NULL)
{
if(!isEmpty(row[0]))
{
maxScore = sqlFloat(row[0]);
}
}
sqlFreeResult(&sr);
struct dnaSeq *seq = hDnaFromSeq(database,
seqName, hit->chromStart, hit->chromEnd, dnaLower);
if(hit->strand[0] == '-')
reverseComplement(seq->dna, seq->size);
seqs[i] = seq;
- printf("Motif Score #%d: %.2f (max: %.2f)
\n", i + 1, hit->score, maxScore);
+
+ // TODO: move to hgc.c (with other pos printers)
+ safef(posLink, sizeof(posLink),"%s:%d-%d",
+ hgTracksPathAndSettings(), database,
+ cluster->chrom, hit->chromStart+1, hit->chromEnd,
+ cluster->chrom, hit->chromStart+1, hit->chromEnd);
+ printf("Motif Score #%d: %.2f (max: %.2f) at %s
", i + 1,
+ hit->score, maxScore, posLink);
}
}
printPos(cluster->chrom, cluster->chromStart, cluster->chromEnd, NULL, TRUE, NULL);
if(seqs != NULL)
{
motifMultipleHitsSection(seqs, slCount(hits), motif);
}
/* Get list of tracks we'll look through for input. */
char *inputTrackTable = trackDbRequiredSetting(tdb, "inputTrackTable");
sqlSafef(query, sizeof(query),
"select tableName from %s where factor='%s' order by source", inputTrackTable,
cluster->name);