def testDeletion( self ): '''test single deletion.''' for l in range(1,7): for x in range(0,len(self.seq)): s = list(self.seq) todelete = min(l, self.length - x ) for y in range(x,x+todelete): s[y] = "" ncodons = self.ncodons - todelete // 3 i = list(snp2counts.iterateOverFrames( s )) codon_start = (x // 3) * 3 codon_end = min(self.length, x + l + (3 - (x + l) % 3) % 3) result = [] if codon_start > 0: result.append( [True, 0, codon_start] ) if todelete % 3 == 0: if x % 3 != 0: result.append( [False, codon_start, codon_end] ) if codon_end < self.length: result.append( [True, codon_end, self.length] ) else: result.append( [True, codon_start, self.length] ) else: o = codon_start if todelete > 3 and x % 3 == 0: o = codon_start + (todelete // 3) * 3 result.append( [True, codon_start, o] ) result.append( [False, o, codon_end ] ) result.append( [False, codon_end, self.length ] ) result = self.merge( result ) self.assertEqual( i, result )
def testInsertion( self ): '''test single insertion.''' for l in range(1,7): for x in range(len(self.seq)): s = list(self.seq) s[x] = "A"*l + s[x] i = list(snp2counts.iterateOverFrames( s )) result = [] codon_start = (x // 3) * 3 if codon_start > 0: result.append( [True, 0, codon_start] ) if l % 3 == 0: result.append( [True, 0, self.length ] ) else: result.append( [False, codon_start, self.length ] ) result = self.merge( result ) self.assertEqual( i, result )
def testDeletion(self): '''test single deletion.''' for l in range(1, 7): for x in range(0, len(self.seq)): s = list(self.seq) todelete = min(l, self.length - x) for y in range(x, x + todelete): s[y] = "" ncodons = self.ncodons - todelete // 3 i = list(snp2counts.iterateOverFrames(s)) codon_start = (x // 3) * 3 codon_end = min(self.length, x + l + (3 - (x + l) % 3) % 3) result = [] if codon_start > 0: result.append([True, 0, codon_start]) if todelete % 3 == 0: if x % 3 != 0: result.append([False, codon_start, codon_end]) if codon_end < self.length: result.append([True, codon_end, self.length]) else: result.append([True, codon_start, self.length]) else: o = codon_start if todelete > 3 and x % 3 == 0: o = codon_start + (todelete // 3) * 3 result.append([True, codon_start, o]) result.append([False, o, codon_end]) result.append([False, codon_end, self.length]) result = self.merge(result) self.assertEqual(i, result)
def testInsertion(self): '''test single insertion.''' for l in range(1, 7): for x in range(len(self.seq)): s = list(self.seq) s[x] = "A" * l + s[x] i = list(snp2counts.iterateOverFrames(s)) result = [] codon_start = (x // 3) * 3 if codon_start > 0: result.append([True, 0, codon_start]) if l % 3 == 0: result.append([True, 0, self.length]) else: result.append([False, codon_start, self.length]) result = self.merge(result) self.assertEqual(i, result)