565ac9d3328f0be9631e61787e82c4768e96a963 max Sun Oct 4 10:46:30 2026 -0700 quickLift: note that pslWithoutEmptyBlocks is dead code since #38300, refs #38249 diff --git src/hg/lib/quickLift.c src/hg/lib/quickLift.c index 133d841df4f..e0d126789e4 100644 --- src/hg/lib/quickLift.c +++ src/hg/lib/quickLift.c @@ -660,31 +660,34 @@ lifted->qSize /= 3; lifted->qBaseInsert /= 3; for (i = 0; i < lifted->blockCount; i++) { lifted->blockSizes[i] /= 3; lifted->qStarts[i] /= 3; } return TRUE; } static struct psl *pslWithoutEmptyBlocks(struct psl *psl) /* A copy of a protein alignment with its zero-length blocks taken out, or NULL if it has * none. The copy can be left with no blocks at all. The UniProt bigPsl files store block sizes in bases, and a block shorter than a * codon comes out of pslFromBigPsl with size 0. Drawing does not mind, but pslTransMap * checks the alignment after converting it to nucleotides and aborts on the empty block, - * which takes down every item in the track. About one alignment in eight has one. */ + * which takes down every item in the track. About one alignment in eight has one. + * + * Dead since #38300: the UniProt files no longer declare amino acid coordinates, so + * pslFromBigPsl stops dividing their block sizes by three and none come out empty. */ { int i, j; for (i = 0; i < psl->blockCount; i++) if (psl->blockSizes[i] == 0) break; if (i == psl->blockCount) return NULL; struct psl *copy = pslClone(psl); for (i = 0, j = 0; i < copy->blockCount; i++) { if (copy->blockSizes[i] == 0) continue; copy->blockSizes[j] = copy->blockSizes[i];