a677e1b7b9860bc11dd767b80f3937f6ae3d32d3 braney Wed Mar 15 12:41:30 2017 -0700 make sure that hgc is getting the right item to align in bigPsl support diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 17a6e82..dcbc6a3 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -7289,31 +7289,31 @@ start = cartInt(cart, "l"); int end = cartInt(cart, "r"); char *chrom = cartString(cart, "c"); char *seq, *cdsString = NULL; struct lm *lm = lmInit(0); char *fileName = bbiNameFromSettingOrTable(tdb, NULL, tdb->table); struct bbiFile *bbi = bigBedFileOpen(fileName); struct bigBedInterval *bb, *bbList = bigBedIntervalQuery(bbi, chrom, start, end, 0, lm); char *bedRow[32]; char startBuf[16], endBuf[16]; for (bb = bbList; bb != NULL; bb = bb->next) { bigBedIntervalToRow(bb, seqName, startBuf, endBuf, bedRow, ArraySize(bedRow)); struct bed *bed = bedLoadN(bedRow, 12); - if (sameString(bed->name, acc)) + if (sameString(bed->name, acc) && (bb->start == start) && (bb->end == end)) { bb->next = NULL; break; } } if (bb == NULL) errAbort("item %s not found in range %s:%d-%d in bigBed %s (%s)", acc, chrom, start, end, tdb->table, fileName); unsigned seqTypeField = bbExtraFieldIndex(bbi, "seqType"); psl = pslFromBigPsl(seqName, bb, seqTypeField, &seq, &cdsString); if (cdsString) genbankParseCds(cdsString, &cdsStart, &cdsEnd); if (seq == NULL)