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))
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)
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)
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))
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)
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))
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)
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)
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)