27c74c25aecdd48498a4513e1fac392d7f80ca32 markd Thu Jan 8 15:21:55 2015 -0800 build pslPosTarget as a standard tool diff --git src/utils/pslPosTarget/pslPosTarget.c src/utils/pslPosTarget/pslPosTarget.c index 0fd5b79..1adbf12 100644 --- src/utils/pslPosTarget/pslPosTarget.c +++ src/utils/pslPosTarget/pslPosTarget.c @@ -1,69 +1,51 @@ /* pslPosTarget - flip psl strands so target is positive. */ /* Copyright (C) 2004 The Regents of the University of California * See README in this or parent directory for licensing information. */ #include "common.h" #include "linefile.h" #include "hash.h" #include "options.h" #include "psl.h" void usage() /* Explain usage and exit. */ { errAbort( - "pslPosTarget - flip psl strands so target is positive\n" + "pslPosTarget - flip psl strands so target is positive and implicit\n" "usage:\n" " pslPosTarget inPsl outPsl\n" ); } static struct optionSpec options[] = { {NULL, 0}, }; -char flipStrand(char strand) -/* Turn + to - and vice versa. */ -{ -return (strand == '-' ? '+' : '-'); -} - void pslPosTarget(char *pslFileName, char *outFileName) /* pslPosTarget - flip psl strands so target is positive. */ { struct lineFile *pslLf = pslFileOpen(pslFileName); FILE *out = mustOpen(outFileName, "w"); struct psl *psl; -int ii; while ((psl = pslNext(pslLf)) != NULL) { if (psl->strand[1] == '-') - { - psl->strand[0] = flipStrand(psl->strand[0]); - psl->strand[1] = '+'; - reverseInts(psl->blockSizes, psl->blockCount); - reverseInts(psl->qStarts, psl->blockCount); - reverseInts(psl->tStarts, psl->blockCount); - for(ii=0; ii < psl->blockCount; ii++) - psl->qStarts[ii] = psl->qSize - - (psl->qStarts[ii] + psl->blockSizes[ii]); - for(ii=0; ii < psl->blockCount; ii++) - psl->tStarts[ii] = psl->tSize - - (psl->tStarts[ii] + psl->blockSizes[ii]); - } + pslRc(psl); + psl->strand[1] = '\0'; pslTabOut(psl, out); } lineFileClose(&pslLf); fclose(out); } int main(int argc, char *argv[]) /* Process command line. */ { optionInit(&argc, argv, options); if (argc != 3) usage(); pslPosTarget(argv[1], argv[2]); return 0; }