ba66786a683bce0f6c38efbdcad60686984478b4 markd Sun Jun 11 13:12:41 2023 -0700 correctly handle getting target block end on protein/rna PSLs diff --git src/inc/psl.h src/inc/psl.h index 507b663..aaf2934 100644 --- src/inc/psl.h +++ src/inc/psl.h @@ -344,30 +344,33 @@ INLINE unsigned pslTStart(struct psl *psl, int blkIdx) /* return target start for the given block */ { return psl->tStarts[blkIdx]; } INLINE unsigned pslQEnd(struct psl *psl, int blkIdx) /* return query end for the given block */ { return psl->qStarts[blkIdx] + psl->blockSizes[blkIdx]; } INLINE unsigned pslTEnd(struct psl *psl, int blkIdx) /* return target end for the given block */ { +if (pslIsProtein(psl)) + return psl->tStarts[blkIdx] + 3 * psl->blockSizes[blkIdx]; +else return psl->tStarts[blkIdx] + psl->blockSizes[blkIdx]; } struct psl* pslClone(struct psl *psl); /* clone a psl */ extern char *pslSortList[5]; void pslSortListByVar(struct psl **pslList, char *sort); /* Sort a list of psls using the method definied in the sort string. */ void pslRemoveFrameShifts(struct psl *psl); /* Remove any frameshits if present. Changes in place, doesn't update statistics in first nine fields. */ #endif /* PSL_H */