6823728f16334d9b53bd595688c8f5780cf833fe braney Sun Feb 16 12:13:13 2025 -0800 ongoing work on quickLift. Added support for SQL beds diff --git src/hg/hgc/hgc.c src/hg/hgc/hgc.c index 05375ebeff0..b51fa89417f 100644 --- src/hg/hgc/hgc.c +++ src/hg/hgc/hgc.c @@ -9194,41 +9194,41 @@ sqlFreeResult(&sr); hFreeConn(&conn); return gpList; } struct genePred *getGenePredForPositionBigGene(struct trackDb *tdb, char *geneName) /* Find the genePred to the current gene using a bigGenePred. */ { char *fileName = hReplaceGbdb(trackDbSetting(tdb, "bigDataUrl")); struct bbiFile *bbi = bigBedFileOpenAlias(fileName, chromAliasFindAliases); struct lm *lm = lmInit(0); char *quickLiftFile = cloneString(trackDbSetting(tdb, "quickLiftUrl")); struct bigBedInterval *bb, *bbList = NULL; struct hash *chainHash = NULL; if (quickLiftFile) - bbList = quickLiftIntervals(quickLiftFile, bbi, seqName, winStart, winEnd, &chainHash); + bbList = quickLiftGetIntervals(quickLiftFile, bbi, seqName, winStart, winEnd, &chainHash); else bbList = bigBedIntervalQuery(bbi, seqName, winStart, winEnd, 0, lm); struct genePred *gpList = NULL; for (bb = bbList; bb != NULL; bb = bb->next) { struct genePred *gp = NULL; if (quickLiftFile) { struct bed *bed; - if ((bed = quickLiftBed(bbi, chainHash, bb)) != NULL) + if ((bed = quickLiftIntervalsToBed(bbi, chainHash, bb)) != NULL) { struct bed *bedCopy = cloneBed(bed); gp =(struct genePred *) genePredFromBedBigGenePred(seqName, bedCopy, bb); } } else gp = (struct genePred *)genePredFromBigGenePred(seqName, bb); if ((gp != NULL) && sameString(gp->name, geneName)) slAddHead(&gpList, gp); } lmCleanup(&lm); return gpList; } @@ -9676,44 +9676,44 @@ } } static struct bed *getBedsFromBigBedRange(struct trackDb *tdb, char *geneName) /* get a list of beds from a bigBed in the current range */ { struct bbiFile *bbi; char *fileName = hReplaceGbdb(trackDbSetting(tdb, "bigDataUrl")); bbi = bigBedFileOpenAlias(fileName, chromAliasFindAliases); struct lm *lm = lmInit(0); char *quickLiftFile = cloneString(trackDbSetting(tdb, "quickLiftUrl")); struct hash *chainHash = NULL; struct bigBedInterval *bb, *bbList = NULL; if (quickLiftFile) - bbList = quickLiftIntervals(quickLiftFile, bbi, seqName, winStart, winEnd, &chainHash); + bbList = quickLiftGetIntervals(quickLiftFile, bbi, seqName, winStart, winEnd, &chainHash); else bbList = bigBedIntervalQuery(bbi, seqName, winStart, winEnd, 0, lm); struct bed *bedList = NULL; 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 = NULL; if (quickLiftFile) { - if ((bed = quickLiftBed(bbi, chainHash, bb)) == NULL) + if ((bed = quickLiftIntervalsToBed(bbi, chainHash, bb)) == NULL) errAbort("can't port %s",bedRow[3]); } else bed = bedLoadN(bedRow, 12); if (sameString(bed->name, geneName)) slAddHead(&bedList, bed); } lmCleanup(&lm); return bedList; } static int getSeqForBigGene(struct trackDb *tdb, char *geneName) /* Output sequence for a gene in a bigGenePred file. */ {