6794e8c75739e1c58957f1a5b5ed1bc6fb444133 chmalee Thu Aug 24 15:38:26 2023 -0700 Revert "Fix backwards compatibility bug I introduced when adding multiple pcr results, refs #32022" This reverts commit 4163e36238919a24e50cbd911aa52fa3a07a7796. diff --git src/hg/cgilib/pcrResult.c src/hg/cgilib/pcrResult.c index 5d51810..655f280 100644 --- src/hg/cgilib/pcrResult.c +++ src/hg/cgilib/pcrResult.c @@ -95,88 +95,69 @@ *retFPrimer = fPrimer; } if (retRPrimer != NULL) { safecpy(rPrimer, sizeof(rPrimer), words[1]); touppers(rPrimer); *retRPrimer = rPrimer; } break; } } dyStringFree(&primerPair); lineFileClose(&lf); } -static boolean checkPcrResultCoordinates(boolean targetSearchResult, char *tName, int tStart, - int tEnd, char *item, int itemStart, int itemEnd, char *chrom) -/* Check the coordinates of a pcrResult match so we know which list of psls - * to add the match to */ -{ -if (targetSearchResult) - { - if (sameString(tName, item) && tStart == itemStart && tEnd == itemEnd) - return TRUE; - } -else if (sameString(tName, chrom) && tStart == itemStart && tEnd == itemEnd) - { - return TRUE; - } -return FALSE; -} - void pcrResultGetPsl(char *fileName, struct targetDb *target, char *item, char *chrom, int itemStart, int itemEnd, struct psl **retItemPsl, struct psl **retOtherPsls, char *fPrimer, char *rPrimer) /* Read in psl from file. If a psl matches the given item position, set * retItemPsl to that; otherwise add it to retOtherPsls. Die if no psl * matches the given item position. */ { struct lineFile *lf = lineFileOpen(fileName, TRUE); struct psl *itemPsl = NULL, *otherPsls = NULL; char *pslFields[21]; boolean targetSearchResult = stringIn("__", item) != NULL; while (lineFileRow(lf, pslFields)) { struct psl *psl = pslLoad(pslFields); boolean gotIt = FALSE; - // if "_" is in the item name, we look up the result(s) by the primer pair, else - // we just show all psls - if (stringIn("_", item)) - { char *pair = cloneString(psl->qName); char *under = strchr(pair, '_'); *under = '\0'; char *thisFPrimer = pair; char *thisRPrimer = under+1; if (!differentWord(thisFPrimer, fPrimer) && !differentWord(thisRPrimer, rPrimer)) { - gotIt = checkPcrResultCoordinates(targetSearchResult, psl->tName, psl->tStart, - psl->tEnd, item, itemStart, itemEnd, chrom); - } + if (targetSearchResult) + { + if (sameString(psl->tName, item) && psl->tStart == itemStart && psl->tEnd == itemEnd) + gotIt = TRUE; } - else + else if (sameString(psl->tName, chrom) && psl->tStart == itemStart && + psl->tEnd == itemEnd) { - gotIt = checkPcrResultCoordinates(targetSearchResult, psl->tName, psl->tStart, - psl->tEnd, item, itemStart, itemEnd, chrom); + gotIt = TRUE; } if (gotIt) itemPsl = psl; else slAddHead(&otherPsls, psl); } + } lineFileClose(&lf); if (itemPsl == NULL) { if (target != NULL) errAbort("Did not find record for amplicon in %s sequence %s", target->description, item); else errAbort("Did not find record for amplicon at %s:%d-%d", chrom, itemStart, itemEnd); } if (retItemPsl != NULL) *retItemPsl = itemPsl; else pslFree(&itemPsl); if (retOtherPsls != NULL)