97ff8a0069da84b65cfb464649d63f769daaad6c braney Wed Aug 19 13:46:20 2015 -0700 a little tweak for hgc bigPsl support so only item clicked on is shown diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 86945e6..2f3f76b 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -2862,32 +2862,45 @@ char *item, int start, int end) /* Handle click in big psl track. */ { struct psl* pslList; char *fileName = bbiNameFromSettingOrTable(tdb, conn, tdb->table); struct bbiFile *bbi = bigBedFileOpen(fileName); struct lm *lm = lmInit(0); int ivStart = start, ivEnd = end; if (start == end) { // item is an insertion; expand the search range from 0 bases to 2 so we catch it: ivStart = max(0, start-1); ivEnd++; } -struct bigBedInterval *bbList = bigBedIntervalQuery(bbi, seqName, ivStart, ivEnd, 0, lm); -pslList = pslFromBigPsl(seqName, bbList, hChromSize(database, seqName), NULL, NULL); +struct bigBedInterval *bb, *bbList = bigBedIntervalQuery(bbi, seqName, ivStart, ivEnd, 0, lm); + +char *bedRow[32]; +char startBuf[16], endBuf[16]; +for (bb = bbList; bb != NULL; bb = bb->next) + { + bigBedIntervalToRow(bb, seqName, startBuf, endBuf, bedRow, 4); + struct bed *bed = bedLoadN(bedRow, 4); + if (sameString(bed->name, item)) + { + bb->next = NULL; + break; + } + } +pslList = pslFromBigPsl(seqName, bb, hChromSize(database, seqName), NULL, NULL); printf("

%s/Genomic Alignments

", item); printAlignments(pslList, start, "htcBigPslAli", tdb->table, item); pslFreeList(&pslList); printItemDetailsHtml(tdb, item); } void genericPslClick(struct sqlConnection *conn, struct trackDb *tdb, char *item, int start, char *subType) /* Handle click in generic psl track. */ { struct psl* pslList = getAlignments(conn, tdb->table, item); /* check if there is an alignment available for this sequence. This checks * both genbank sequences and other sequences in the seq table. If so,