0192d4b02dfdb61e29f71ab65340876d95d7af7a markd Sat Mar 12 23:32:19 2022 -0800 have pslToBigPsl check for FASTA sequence length not matching PSL instead of having browser generate an error diff --git src/hg/utils/pslToBigPsl/pslToBigPsl.c src/hg/utils/pslToBigPsl/pslToBigPsl.c index 671f58b..c1ed5e9 100644 --- src/hg/utils/pslToBigPsl/pslToBigPsl.c +++ src/hg/utils/pslToBigPsl/pslToBigPsl.c @@ -109,30 +109,32 @@ int mult = pslIsProtein(psl) ? 3 : 1; for(ii=0; ii < bigPsl.blockCount; ii++) { blockStarts[ii] = psl->tStarts[ii] - bigPsl.chromStart; oBlockStarts[ii] = psl->qStarts[ii] ; blockSizes[ii] = psl->blockSizes[ii] * mult; } bigPsl.seqType = PSL_SEQTYPE_EMPTY; if (fastaHash) { struct dnaSeq *seq = hashFindVal(fastaHash, psl->qName); if (seq != NULL) { + if (seq->size != psl->qSize) + errAbort("%s FASTA sequence length (%d) does not match PSL qSize (%d)", psl->qName, seq->size, psl->qSize); bigPsl.oSequence = seq->dna; bigPsl.seqType = isProt ? PSL_SEQTYPE_PROTEIN : PSL_SEQTYPE_NUCLEOTIDE; } else { warn("Cannot find sequence for %s. Dropping", psl->qName); return; } } if (cdsHash) { char *cds = hashFindVal(cdsHash, psl->qName); if (cds != NULL)