Ejemplo n.º 1
0
    def testCactusRealign(self):
        """Runs cactus realign using the default parameters and checks that the realigned output cigars align
        the same subsequences.
        """
        for seqFile1, seqFile2 in seqFilePairGenerator():
            lastzOutput = getTempFile(rootDir=self.tempDir)
            runLastz(seqFile1,
                     seqFile2,
                     alignmentsFile=lastzOutput,
                     lastzArguments=self.defaultLastzArguments,
                     work_dir=self.tempDir)
            realignOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1,
                             seqFile2,
                             inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignOutput,
                             realignArguments=self.defaultRealignArguments,
                             work_dir=self.tempDir)

            for realignLine, lastzLine in zip(
                [i for i in open(lastzOutput, 'r') if i != ''],
                [i for i in open(realignOutput, 'r') if i != '']):
                realignCigar = cigarReadFromString(realignLine)
                lastzCigar = cigarReadFromString(lastzLine)
                self.assertTrue(realignCigar.sameCoordinates(lastzCigar))
Ejemplo n.º 2
0
    def testCactusRealignDummy(self):
        """Runs cactus realign using the "rescoreOriginalAlignment" mode
        and checks the output is equivalent to what you'd get by just running lastz.
        """
        for seqFile1, seqFile2 in seqFilePairGenerator():

            lastzOutput = getTempFile(rootDir=self.tempDir)
            runLastz(seqFile1,
                     seqFile2,
                     alignmentsFile=lastzOutput,
                     lastzArguments=self.defaultLastzArguments)
            realignOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1,
                             seqFile2,
                             inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignOutput,
                             realignArguments=self.defaultRealignArguments +
                             " --rescoreOriginalAlignment")

            for realignLine, lastzLine in zip(
                [i for i in open(lastzOutput, 'r') if i != ''],
                [i for i in open(realignOutput, 'r') if i != '']):
                realignCigar = cigarReadFromString(realignLine)
                lastzCigar = cigarReadFromString(lastzLine)
                self.assertTrue(realignCigar != None)
                self.assertTrue(realignCigar == lastzCigar)
Ejemplo n.º 3
0
    def testCactusRealignRescoreByIdentityAndProb(self):
        """Runs cactus realign using the default parameters and checks that the realigned output cigars align 
        the same subsequences.
        """
        for seqFile1, seqFile2 in seqFilePairGenerator():
            lastzOutput = getTempFile(rootDir=self.tempDir)
            runLastz(seqFile1,
                     seqFile2,
                     alignmentsFile=lastzOutput,
                     lastzArguments=self.defaultLastzArguments,
                     work_dir=self.tempDir)

            realignByIdentityOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1,
                             seqFile2,
                             inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignByIdentityOutput,
                             realignArguments=self.defaultRealignArguments +
                             " --rescoreByIdentity",
                             work_dir=self.tempDir)

            realignByPosteriorProbOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1,
                             seqFile2,
                             inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignByPosteriorProbOutput,
                             realignArguments=self.defaultRealignArguments +
                             " --rescoreByPosteriorProb",
                             work_dir=self.tempDir)

            realignByIdentityIgnoringGapsOutput = getTempFile(
                rootDir=self.tempDir)
            runCactusRealign(
                seqFile1,
                seqFile2,
                inputAlignmentsFile=lastzOutput,
                outputAlignmentsFile=realignByIdentityIgnoringGapsOutput,
                realignArguments=self.defaultRealignArguments +
                " --rescoreByIdentityIgnoringGaps",
                work_dir=self.tempDir)
            for realignLineByIdentity, realignLineByPosteriorProb, realignLineByIdentityIgnoringGaps, lastzLine in \
                                          zip([ i for i in open(realignByIdentityOutput, 'r') if i != '' ], \
                                              [ i for i in open(realignByPosteriorProbOutput, 'r') if i != '' ], \
                                              [ i for i in open(realignByIdentityIgnoringGapsOutput, 'r') if i != '' ], \
                                              [ i for i in open(lastzOutput, 'r') if i != '' ]):
                realignCigarByIdentity = cigarReadFromString(
                    realignLineByIdentity)
                realignCigarByPosteriorProb = cigarReadFromString(
                    realignLineByPosteriorProb)
                realignCigarByIdentityIgnoringGaps = cigarReadFromString(
                    realignLineByIdentityIgnoringGaps)
                lastzCigar = cigarReadFromString(lastzLine)
                #Check scores are as expected
                self.assertTrue(realignCigarByIdentity.score >= 0)
                self.assertTrue(realignCigarByIdentity.score <= 100.0)
                self.assertTrue(realignCigarByPosteriorProb.score >= 0)
                self.assertTrue(realignCigarByPosteriorProb.score <= 100.0)
                self.assertTrue(realignCigarByIdentityIgnoringGaps.score >= 0)
                self.assertTrue(
                    realignCigarByIdentityIgnoringGaps.score <= 100.0)
Ejemplo n.º 4
0
 def testCPecanRealign(self):
     """Runs cPecanRealign using the default parameters and checks that the realigned output cigars align
     the same subsequences.
     """
     for seqFile1, seqFile2 in seqFilePairGenerator():
         realignCommand, lastzCommand = getCommands(seqFile1, seqFile2)
         for realignLine, lastzLine in zip([ i for i in popenCatch(realignCommand).split("\n") if i != '' ], 
                                           [ i for i in popenCatch(lastzCommand).split("\n") if i != '' ]):
             realignCigar = cigarReadFromString(realignLine)
             lastzCigar = cigarReadFromString(lastzLine)
             self.assertTrue(realignCigar.sameCoordinates(lastzCigar))
Ejemplo n.º 5
0
 def testCPecanRealignDummy(self):
     """Runs cPecanRealign using the "rescoreOriginalAlignment" mode
     and checks the output is equivalent to what you'd get by just running lastz.
     """
     for seqFile1, seqFile2 in seqFilePairGenerator():
         realignCommand, lastzCommand = getCommands(seqFile1, seqFile2, "--rescoreOriginalAlignment")
         for realignLine, lastzLine in zip([ i for i in popenCatch(realignCommand).split("\n") if i != '' ], 
                                           [ i for i in popenCatch(lastzCommand).split("\n") if i != '' ]):
             realignCigar = cigarReadFromString(realignLine)
             lastzCigar = cigarReadFromString(lastzLine)
             self.assertTrue(realignCigar != None)
             self.assertTrue(realignCigar == lastzCigar)
Ejemplo n.º 6
0
 def testCactusRealign(self):
     """Runs cactus realign using the default parameters and checks that the realigned output cigars align
     the same subsequences.
     """
     for seqFile1, seqFile2 in seqFilePairGenerator():
         lastzOutput = getTempFile(rootDir=self.tempDir)
         runLastz(seqFile1, seqFile2, alignmentsFile=lastzOutput,
                  lastzArguments=self.defaultLastzArguments)
         realignOutput = getTempFile(rootDir=self.tempDir)
         runCactusRealign(seqFile1, seqFile2, inputAlignmentsFile = lastzOutput,
                          outputAlignmentsFile = realignOutput,
                          realignArguments=self.defaultRealignArguments)
         
         for realignLine, lastzLine in zip([ i for i in open(lastzOutput, 'r') if i != '' ], 
                                           [ i for i in open(realignOutput, 'r') if i != '' ]):
             realignCigar = cigarReadFromString(realignLine)
             lastzCigar = cigarReadFromString(lastzLine)
             self.assertTrue(realignCigar.sameCoordinates(lastzCigar))
Ejemplo n.º 7
0
    def testCactusRealignDummy(self):
        """Runs cactus realign using the "rescoreOriginalAlignment" mode
        and checks the output is equivalent to what you'd get by just running lastz.
        """
        for seqFile1, seqFile2 in seqFilePairGenerator():

            lastzOutput = getTempFile(rootDir=self.tempDir)
            runLastz(seqFile1, seqFile2, alignmentsFile=lastzOutput,
                     lastzArguments=self.defaultLastzArguments)
            realignOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1, seqFile2, inputAlignmentsFile = lastzOutput,
                             outputAlignmentsFile = realignOutput,
                             realignArguments=self.defaultRealignArguments + " --rescoreOriginalAlignment")
                                      
            for realignLine, lastzLine in zip([ i for i in open(lastzOutput, 'r') if i != '' ],
                                              [ i for i in open(realignOutput, 'r') if i != '' ]):
                realignCigar = cigarReadFromString(realignLine)
                lastzCigar = cigarReadFromString(lastzLine)
                self.assertTrue(realignCigar != None)
                self.assertTrue(realignCigar == lastzCigar)
Ejemplo n.º 8
0
    def testCactusRealignRescoreByIdentityAndProb(self):
        """Runs cactus realign using the default parameters and checks that the realigned output cigars align 
        the same subsequences.
        """
        for seqFile1, seqFile2 in seqFilePairGenerator():
            lastzOutput = getTempFile(rootDir=self.tempDir)
            runLastz(seqFile1, seqFile2, alignmentsFile=lastzOutput,
                     lastzArguments=self.defaultLastzArguments)

            realignByIdentityOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1, seqFile2, inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignByIdentityOutput,
                             realignArguments=self.defaultRealignArguments + " --rescoreByIdentity")

            realignByPosteriorProbOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1, seqFile2, inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignByPosteriorProbOutput,
                             realignArguments=self.defaultRealignArguments + " --rescoreByPosteriorProb")

            realignByIdentityIgnoringGapsOutput = getTempFile(rootDir=self.tempDir)
            runCactusRealign(seqFile1, seqFile2, inputAlignmentsFile=lastzOutput,
                             outputAlignmentsFile=realignByIdentityIgnoringGapsOutput,
                             realignArguments=self.defaultRealignArguments + " --rescoreByIdentityIgnoringGaps")
            for realignLineByIdentity, realignLineByPosteriorProb, realignLineByIdentityIgnoringGaps, lastzLine in \
                                          zip([ i for i in open(realignByIdentityOutput, 'r') if i != '' ], \
                                              [ i for i in open(realignByPosteriorProbOutput, 'r') if i != '' ], \
                                              [ i for i in open(realignByIdentityIgnoringGapsOutput, 'r') if i != '' ], \
                                              [ i for i in open(lastzOutput, 'r') if i != '' ]):
                realignCigarByIdentity = cigarReadFromString(realignLineByIdentity)
                realignCigarByPosteriorProb = cigarReadFromString(realignLineByPosteriorProb)
                realignCigarByIdentityIgnoringGaps = cigarReadFromString(realignLineByIdentityIgnoringGaps)
                lastzCigar = cigarReadFromString(lastzLine)
                #Check scores are as expected
                self.assertTrue(realignCigarByIdentity.score >= 0)
                self.assertTrue(realignCigarByIdentity.score <= 100.0)
                self.assertTrue(realignCigarByPosteriorProb.score >= 0)
                self.assertTrue(realignCigarByPosteriorProb.score <= 100.0)
                self.assertTrue(realignCigarByIdentityIgnoringGaps.score >= 0)
                self.assertTrue(realignCigarByIdentityIgnoringGaps.score <= 100.0)
Ejemplo n.º 9
0
 def testCPecanRealignRescoreByIdentityAndProb(self):
     """Runs cactus realign using the default parameters and checks that the realigned output cigars align 
     the same subsequences.
     """
     for seqFile1, seqFile2 in seqFilePairGenerator():
         realignCommandByIdentity, lastzCommand = getCommands(seqFile1, seqFile2, realignArguments="--rescoreByIdentity")
         realignCommandByPosteriorProb = getCommands(seqFile1, seqFile2, realignArguments="--rescoreByPosteriorProb")[0]
         realignCommandByIdentityIgnoringGaps = getCommands(seqFile1, seqFile2, realignArguments="--rescoreByIdentityIgnoringGaps")[0]
         for realignLineByIdentity, realignLineByPosteriorProb, realignLineByIdentityIgnoringGaps, lastzLine in \
                                       zip([ i for i in popenCatch(realignCommandByIdentity).split("\n") if i != '' ], \
                                           [ i for i in popenCatch(realignCommandByPosteriorProb).split("\n") if i != '' ], \
                                           [ i for i in popenCatch(realignCommandByIdentityIgnoringGaps).split("\n") if i != '' ], \
                                           [ i for i in popenCatch(lastzCommand).split("\n") if i != '' ]):
             realignCigarByIdentity = cigarReadFromString(realignLineByIdentity)
             realignCigarByPosteriorProb = cigarReadFromString(realignLineByPosteriorProb)
             realignCigarByIdentityIgnoringGaps = cigarReadFromString(realignLineByIdentityIgnoringGaps)
             lastzCigar = cigarReadFromString(lastzLine)
             #Check scores are as expected
             self.assertTrue(realignCigarByIdentity.score >= 0)
             self.assertTrue(realignCigarByIdentity.score <= 100.0)
             self.assertTrue(realignCigarByPosteriorProb.score >= 0)
             self.assertTrue(realignCigarByPosteriorProb.score <= 100.0)
             self.assertTrue(realignCigarByIdentityIgnoringGaps.score >= 0)
             self.assertTrue(realignCigarByIdentityIgnoringGaps.score <= 100.0)