def testFastaReadWriteC(self): """Tests consistency with C version of this function. """ tempFile = getTempFile() self.tempFiles.append(tempFile) tempFile2 = getTempFile() self.tempFiles.append(tempFile2) for test in xrange(0, self.testNo): fastaNumber = random.choice(xrange(10)) l = [ getRandomSequence() for i in xrange(fastaNumber) ] fileHandle = open(tempFile, 'w') for name, seq in l: fastaWrite(fileHandle, name, seq) fileHandle.close() command = "sonLib_fastaCTest %s %s" % (tempFile, tempFile2) print command system(command) fileHandle = open(tempFile2, 'r') l.reverse() for i in fastaRead(fileHandle): name, seq = i assert i == l.pop() fastaWrite(sys.stdout, name, seq) fileHandle.close()
def testFastqReadWrite(self): tempFile = getTempFile() self.tempFiles.append(tempFile) for test in xrange(0, self.testNo): fastaNumber = random.choice(xrange(10)) fastqs = [ (name, seq, [ random.randint(33, 126) for i in range(len(seq)) ]) for name, seq in [ getRandomSequence() for i in xrange(fastaNumber) ]] fH = open(tempFile, 'w') for name, seq, quals in fastqs: fastqWrite(fH, name, seq, quals) fH.close() fastqs.reverse() for i in fastqRead(tempFile): assert i == fastqs.pop() name, seq, quals = i fastqWrite(sys.stdout, name, seq, quals)
def testPWMParser(self): tempFile = getTempFile() self.tempFiles.append(tempFile) for test in xrange(0, self.testNo): pWM = getRandomPWM() fileHandle = open(tempFile, 'w') pWMWrite(fileHandle, pWM) fileHandle.close() fileHandle = open(tempFile, 'r') pWM2 = pWMRead(fileHandle) fileHandle.close() for i in xrange(0, len(pWM)): pWM[i] == pWM2[i]
def testFastaReadWrite(self): tempFile = getTempFile() self.tempFiles.append(tempFile) for test in xrange(0, self.testNo): fastaNumber = random.choice(xrange(10)) l = [ getRandomSequence() for i in xrange(fastaNumber) ] fileHandle = open(tempFile, 'w') for name, seq in l: fastaWrite(fileHandle, name, seq) fileHandle.close() fileHandle = open(tempFile, 'r') l.reverse() for i in fastaRead(fileHandle): assert i == l.pop() name, seq = i fastaWrite(sys.stdout, name, seq) fileHandle.close()
def testCigarReadWrite(self): tempFile = getTempFile() self.tempFiles.append(tempFile) for test in xrange(0, self.testNo): cigarNumber = random.choice(xrange(10)) l = [ getRandomPairwiseAlignment() for i in xrange(cigarNumber) ] fileHandle = open(tempFile, 'w') for cigar in l: cigarWrite(fileHandle, cigar) fileHandle.close() fileHandle = open(tempFile, 'r') l.reverse() for cigar in cigarRead(fileHandle): cigarWrite(sys.stdout, l[-1]) cigarWrite(sys.stdout, cigar) assert cigar == l.pop() assert len(l) == 0 fileHandle.close()
def testCigarReadWrite(self): """Tests the C code for reading and writing cigars against the python parser for cigars. """ tempFile = getTempFile() self.tempFiles.append(tempFile) for test in xrange(0, self.testNo): pairwiseAlignmentNumber = random.choice(xrange(10)) l = [ getRandomPairwiseAlignment() for i in xrange(pairwiseAlignmentNumber) ] fileHandle = open(tempFile, 'w') keepProbs = random.random() > 0.5 if keepProbs == False: for pA in l: for op in pA.operationList: op.score = 0.0 for pairwiseAlignment in l: cigarWrite(fileHandle, pairwiseAlignment, keepProbs) fileHandle.close() #Now call sonLib_cigarsTest and read and write chains command = "sonLib_cigarTest %s %s" % (tempFile, keepProbs) #return system(command) #Now check the chain is okay fileHandle = open(tempFile, 'r') l.reverse() for pairwiseAlignment in cigarRead(fileHandle): pairwiseAlignment2 = l.pop() cigarWrite(sys.stdout, pairwiseAlignment, keepProbs) cigarWrite(sys.stdout, pairwiseAlignment2, keepProbs) assert pairwiseAlignment == pairwiseAlignment2 assert len(l) == 0 fileHandle.close()