Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

116 lines (93 sloc) 3.74 KB
"""Testing code for Restriction enzyme classes of Biopython.
import unittest
from Bio.Restriction import *
from Bio.Seq import Seq
from Bio.Alphabet.IUPAC import IUPACAmbiguousDNA
class SimpleEnzyme(unittest.TestCase):
"""Tests for dealing with basic enzymes using the Restriction package.
def setUp(self):
base_seq = Seq("AAAA", IUPACAmbiguousDNA())
self.ecosite_seq = base_seq + Seq(,
IUPACAmbiguousDNA()) + base_seq
def test_eco_cutting(self):
"""Test basic cutting with EcoRI.
self.assertEqual(, 'GAATTC')
self.assertEqual(EcoRI.elucidate(), "G^AATT_C")
self.assertEqual(, [6])
parts = EcoRI.catalyse(self.ecosite_seq)
self.assertEqual(len(parts), 2)
self.assertEqual(parts[1].tostring(), "AATTCAAAA")
parts = EcoRI.catalyze(self.ecosite_seq)
self.assertEqual(len(parts), 2)
def test_circular_sequences(self):
"""Deal with cutting circular sequences.
parts = EcoRI.catalyse(self.ecosite_seq, linear = False)
self.assertEqual(len(parts), 1)
locations =[0], linear = False)
self.assertEqual(locations, [1])
class EnzymeComparison(unittest.TestCase):
"""Tests for comparing various enzymes.
def test_basic_isochizomers(self):
"""Test to be sure isochizomer and neoschizomers are as expected.
self.assertEqual(Acc65I.isoschizomers(), [Asp718I, KpnI])
self.assertEqual(Acc65I.elucidate(), 'G^GTAC_C')
self.assertEqual(Asp718I.elucidate(), 'G^GTAC_C')
self.assertEqual(KpnI.elucidate(), 'G_GTAC^C')
def test_comparisons(self):
"""Comparison operators between iso and neoschizomers.
self.assertEqual(Acc65I, Acc65I)
self.assertNotEqual(Acc65I, KpnI)
self.assertFalse(Acc65I == Asp718I)
self.assertFalse(Acc65I != Asp718I)
self.assertNotEqual(Acc65I, EcoRI)
self.assertTrue(Acc65I >> KpnI)
self.assertFalse(Acc65I >> Asp718I)
self.assertTrue(Acc65I % Asp718I)
self.assertTrue(Acc65I % Acc65I)
self.assertFalse(Acc65I % KpnI)
class RestrictionBatches(unittest.TestCase):
"""Tests for dealing with batches of restriction enzymes.
def test_creating_batch(self):
"""Creating and modifying a restriction batch.
batch = RestrictionBatch([EcoRI])
batch += EcoRV
self.assertEqual(len(batch), 3)
# The usual way to test batch membership
self.assertTrue(EcoRV in batch)
self.assertTrue(EcoRI in batch)
self.assertTrue(KpnI in batch)
self.assertTrue(SmaI not in batch)
# Syntax sugar for the above
self.assertTrue('EcoRV' in batch)
self.assertFalse('SmaI' in batch)
self.assertRaises(ValueError, batch.get, SmaI)
self.assertEqual(len(batch), 2)
self.assertTrue(EcoRV not in batch)
self.assertTrue('EcoRV' not in batch)
def test_batch_analysis(self):
"""Sequence analysis with a restriction batch.
seq = Seq("AAAA" + + "AAAA" + + "AAAA",
batch = RestrictionBatch([EcoRV, EcoRI])
hits =
self.assertEqual(hits[EcoRV], [8])
self.assertEqual(hits[EcoRI], [16])
if __name__ == "__main__":
runner = unittest.TextTestRunner(verbosity = 2)
Jump to Line
Something went wrong with that request. Please try again.