a75cfac22803c312074299aa0dcf286ca336ce89 braney Wed Aug 27 13:28:08 2025 -0700 ongoing work on quickLift hgc page plus a fix for genepreds that don't successfully quickLift diff --git src/hg/lib/quickLift.c src/hg/lib/quickLift.c index 813bfb27624..1cb075c0af7 100644 --- src/hg/lib/quickLift.c +++ src/hg/lib/quickLift.c @@ -11,44 +11,30 @@ #include "binRange.h" #include "basicBed.h" #include "liftOver.h" #include "hash.h" #include "bigBed.h" #include "bbiFile.h" #include "chainNetDbLoad.h" #include "hdb.h" #include "jksql.h" #include "hgConfig.h" #include "quickLift.h" #include "bigChain.h" #include "bigLink.h" #include "chromAlias.h" -#define QUICKTYPE_INSERT 0 -#define QUICKTYPE_DEL 1 -#define QUICKTYPE_DOUBLE 2 -#define QUICKTYPE_MISMATCH 3 -#define QUICKTYPE_NOTHING 4 - -char *quickTypeStrings[] = -{ - "insert", - "deletion", - "double", - "mismatch" -}; - struct bigBedInterval *quickLiftGetIntervals(char *quickLiftFile, struct bbiFile *bbi, char *chrom, int start, int end, struct hash **pChainHash) /* Return intervals from "other" species that will map to the current window. * These intervals are NOT YET MAPPED to the current assembly. */ { char *linkFileName = bigChainGetLinkFile(quickLiftFile); int maxGapBefore = 0; int maxGapAfter = 0; struct chain *chain, *chainList = chainLoadIdRangeHub(NULL, quickLiftFile, linkFileName, chrom, start, end, -1); struct lm *lm = lmInit(0); struct bigBedInterval *bbList = NULL, *bb; for(chain = chainList; chain; chain = chain->next) { struct cBlock *cb; @@ -402,40 +388,30 @@ int previousQEnd = -1; for (bbLink = bbLinkList; bbLink != NULL; bbLink = bbLink->next) { bigBedIntervalToRow(bbLink, chrom, startBuf, endBuf, linkRow, ArraySize(linkRow)); struct bigLink *bl = bigLinkLoad(linkRow); if (!sameString(bl->name, bc->name)) continue; int tStart = bl->chromStart; int tEnd = bl->chromEnd; int qStart = bl->qStart; int qEnd = qStart + (tEnd - tStart); struct quickLiftRegions *hr; - AllocVar(hr); - //slAddHead(&hrList, hr); - hr->chrom = cloneString(bc->chrom); - hr->oChrom = cloneString(bc->qName); - hr->chromStart = tStart; - hr->chromEnd = tEnd; - hr->oChromStart = qStart; - hr->oChromEnd = qEnd; - hr->type = QUICKTYPE_NOTHING; - hr->id = bc->name; if ((previousTEnd != -1) && (previousTEnd == tStart)) { hr = fillWithGap(bc, previousTEnd, tStart, previousQEnd, qStart); slAddHead(&hrList, hr); hr->type = QUICKTYPE_DEL; struct dnaSeq *qSeq = NULL; if (bc->strand[0] == '-') { qSeq = hDnaFromSeq(liftDb, bc->qName, bc->qSize - hr->oChromEnd, bc->qSize - hr->oChromStart, dnaUpper); reverseComplement(qSeq->dna, qSeq->size); } else qSeq = hDnaFromSeq(liftDb, bc->qName, hr->oChromStart, hr->oChromEnd, dnaUpper); hr->otherBases = qSeq->dna;