def test_Dseq_slicing2(self): from Bio.Restriction import BamHI, EcoRI, KpnI a = Dseq("aaGGATCCnnnnnnnnnGAATTCccc", circular=True) self.assertEqual(a.cut( EcoRI, BamHI, KpnI, ), a.cut( BamHI, EcoRI, KpnI, )) a = Dseqrecord("aaGGATCCnnnnnnnnnGAATTCccc", circular=True) self.assertEqual( a.cut( EcoRI, BamHI, KpnI, )[0].seq, a.cut( BamHI, EcoRI, KpnI, )[0].seq)
def test_Dseq_slicing2(self): from Bio.Restriction import BamHI, EcoRI, KpnI a = Dseq("aaGGATCCnnnnnnnnnGAATTCccc", circular=True) self.assertEqual( a.cut(EcoRI, BamHI, KpnI,), a.cut(BamHI, EcoRI, KpnI,)) a = Dseqrecord("aaGGATCCnnnnnnnnnGAATTCccc", circular=True) self.assertEqual( a.cut( EcoRI, BamHI, KpnI,)[0].seq, a.cut( BamHI, EcoRI, KpnI,)[0].seq)
def cut_and_religate_Dseq(seq_string, enz, top): ds = Dseq(seq_string, linear=top) frags = ds.cut(enz) if not frags: return a = frags.pop(0) for f in frags: a+=f if not top: a=a.looped() self.assertTrue( eq(a,ds) )
def cut_and_religate_Dseq(seq_string, enz, top): ds = Dseq(seq_string, linear=top) frags = ds.cut(enz) if not frags: return a = frags.pop(0) for f in frags: a += f if not top: a = a.looped() self.assertTrue(eq(a, ds))
def test_Dseq_slicing(self): from Bio.Restriction import BamHI a=Dseq("ggatcc","ggatcc",0) self.assertEqual( a[:].watson, a.watson ) self.assertEqual( a[:].crick, a.crick ) self.assertEqual( a.ovhg, a[:].ovhg ) b,c = a.cut(BamHI) d = b[1:5] e = d.rc() self.assertEqual( d+e, Dseq("gatc","gatc",0))
def test_Dseq_slicing(self): from Bio.Restriction import BamHI a = Dseq("ggatcc", "ggatcc", 0) self.assertEqual(a[:].watson, a.watson) self.assertEqual(a[:].crick, a.crick) self.assertEqual(a.ovhg, a[:].ovhg) b, c = a.cut(BamHI) d = b[1:5] e = d.rc() self.assertEqual(d + e, Dseq("gatc", "gatc", 0))
def test_Dseq_cutting_adding(self): from Bio.Seq import Seq from Bio.Restriction import BamHI,EcoRI, PstI, EcoRV, SmaI from Bio.Alphabet.IUPAC import IUPACAmbiguousDNA from Bio.SeqUtils.CheckSum import seguid from pydna import Dseq a = Dseq('GGATCCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtGGATCC', 'CCTAGGagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaCCTAGG'[::-1], linear=True, ovhg=0) b = a.cut(BamHI)[1] self.assertEqual( b.watson , "GATCCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtG") self.assertEqual( b.crick , "GATCCacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaG") c = Dseq('nCTGCAGtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtGAATTCn', 'nGACGTCagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaCTTAAGn'[::-1], linear=True, ovhg=0) f,d,l = c.cut((EcoRI, PstI)) self.assertEqual( d.watson , "GtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtG") self.assertEqual( d.crick , "AATTCacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaCTGCA") e = Dseq("nGAATTCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtCTGCAGn", "nCTTAAGagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaGACGTCn"[::-1], linear=True, ovhg=0) f = e.cut((EcoRI,PstI))[1] self.assertEqual( f.watson ,"AATTCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtCTGCA") self.assertEqual( f.crick , "GacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaG") ''' blunt cloning ''' pUC19 = read("./pUC19.gb") self.assertFalse( pUC19.linear ) self.assertTrue( len(pUC19) == 2686 ) self.assertTrue( len(pUC19.seq.watson) == 2686 ) self.assertTrue( len(pUC19.seq.crick) == 2686 ) self.assertTrue( pUC19.seq.circular == True) self.assertTrue( pUC19.seq.linear == False) pUC19_SmaI = pUC19.cut(SmaI) self.assertTrue( len(pUC19_SmaI) == 1) pUC19_SmaI = pUC19_SmaI.pop() self.assertTrue( pUC19_SmaI.linear ) self.assertTrue( len(pUC19_SmaI) == 2686 ) self.assertTrue( pUC19_SmaI.linear ) pUC19_SmaI_a = pUC19_SmaI.seq + a self.assertTrue( pUC19_SmaI_a.linear ) self.assertFalse( pUC19_SmaI_a.circular ) pUC19_SmaI_a=pUC19_SmaI_a.looped() self.assertTrue( len(pUC19_SmaI_a) == 2778 ) self.assertTrue( pUC19_SmaI_a.circular ) self.assertFalse( pUC19_SmaI_a.linear ) self.assertTrue( eq(pUC19_SmaI_a, read("./pUC19-SmaI-a.gb") )) ''' sticky end cloning ''' pUC19_BamHI = pUC19.cut(BamHI) self.assertTrue( len(pUC19_BamHI) == 1) pUC19_BamHI = pUC19_BamHI.pop().seq self.assertTrue( len(pUC19_BamHI.watson) == len(pUC19_BamHI.crick) == 2686 ) pUC19_BamHI_a = pUC19_BamHI+b self.assertTrue( len(pUC19_BamHI_a.watson) == len(pUC19_BamHI_a.crick) == 2772 ) self.assertTrue( pUC19_BamHI_a.circular == False) self.assertTrue( pUC19_BamHI_a.linear == True) pUC19_BamHI_a = pUC19_BamHI_a.looped() self.assertTrue( pUC19_BamHI_a.circular == True) self.assertTrue( pUC19_BamHI_a.linear == False) self.assertTrue( eq(pUC19_BamHI_a, read("./pUC19-BamHI-a.gb"))) pUC19_BamHI_a_rc = pUC19_BamHI+b.rc() pUC19_BamHI_a_rc = pUC19_BamHI_a_rc.looped() self.assertTrue( pUC19_BamHI_a.circular == True) self.assertTrue( pUC19_BamHI_a.linear == False) self.assertTrue( eq(pUC19_BamHI_a_rc, read("./pUC19-BamHI-a-rc.gb"))) ''' adding (ligating) dsDNA objects ''' with self.assertRaisesRegexp(TypeError, "circular"): pUC19+a with self.assertRaisesRegexp(TypeError, "circular"): a+pUC19 with self.assertRaisesRegexp(TypeError, "compatible"): a+b with self.assertRaisesRegexp(TypeError, "compatible"): b+a with self.assertRaisesRegexp(TypeError, "compatible"): d+d ''' directional cloning ''' pUC19_EcoRI_PstI = pUC19.cut(EcoRI, PstI).pop(0) with self.assertRaisesRegexp(TypeError, "compatible"): pUC19_EcoRI_PstI + d pUC19_EcoRI_PstI_d = pUC19_EcoRI_PstI + d.rc() pUC19_EcoRI_PstI_d = pUC19_EcoRI_PstI_d.looped() self.assertTrue( eq(pUC19_EcoRI_PstI_d, read("./pUC19-EcoRI_PstI-d-rc.gb"))) self.assertTrue( eq(pUC19_EcoRI_PstI_d.rc(), read("./pUC19-EcoRI_PstI-d-rc.gb")))
def test_Dseq_cutting_adding(self): from Bio.Seq import Seq from Bio.Restriction import BamHI, EcoRI, PstI, EcoRV, SmaI from Bio.Alphabet.IUPAC import IUPACAmbiguousDNA from Bio.SeqUtils.CheckSum import seguid from pydna import Dseq a = Dseq( 'GGATCCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtGGATCC', 'CCTAGGagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaCCTAGG'[:: -1], linear=True, ovhg=0) b = a.cut(BamHI)[1] self.assertEqual( b.watson, "GATCCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtG" ) self.assertEqual( b.crick, "GATCCacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaG" ) c = Dseq( 'nCTGCAGtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtGAATTCn', 'nGACGTCagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaCTTAAGn'[:: -1], linear=True, ovhg=0) f, d, l = c.cut((EcoRI, PstI)) self.assertEqual( d.watson, "GtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtG" ) self.assertEqual( d.crick, "AATTCacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaCTGCA" ) e = Dseq( "nGAATTCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtCTGCAGn", "nCTTAAGagtagatgatagtagcatcgcatgactagataagacgacgagtagtagccatgagagatattaatatatatatacgcgcaGACGTCn"[:: -1], linear=True, ovhg=0) f = e.cut((EcoRI, PstI))[1] self.assertEqual( f.watson, "AATTCtcatctactatcatcgtagcgtactgatctattctgctgctcatcatcggtactctctataattatatatatatgcgcgtCTGCA" ) self.assertEqual( f.crick, "GacgcgcatatatatataattatagagagtaccgatgatgagcagcagaatagatcagtacgctacgatgatagtagatgaG" ) ''' blunt cloning ''' pUC19 = read("./pUC19.gb") self.assertFalse(pUC19.linear) self.assertTrue(len(pUC19) == 2686) self.assertTrue(len(pUC19.seq.watson) == 2686) self.assertTrue(len(pUC19.seq.crick) == 2686) self.assertTrue(pUC19.seq.circular == True) self.assertTrue(pUC19.seq.linear == False) pUC19_SmaI = pUC19.cut(SmaI) self.assertTrue(len(pUC19_SmaI) == 1) pUC19_SmaI = pUC19_SmaI.pop() self.assertTrue(pUC19_SmaI.linear) self.assertTrue(len(pUC19_SmaI) == 2686) self.assertTrue(pUC19_SmaI.linear) pUC19_SmaI_a = pUC19_SmaI.seq + a self.assertTrue(pUC19_SmaI_a.linear) self.assertFalse(pUC19_SmaI_a.circular) pUC19_SmaI_a = pUC19_SmaI_a.looped() self.assertTrue(len(pUC19_SmaI_a) == 2778) self.assertTrue(pUC19_SmaI_a.circular) self.assertFalse(pUC19_SmaI_a.linear) self.assertTrue(eq(pUC19_SmaI_a, read("./pUC19-SmaI-a.gb"))) ''' sticky end cloning ''' pUC19_BamHI = pUC19.cut(BamHI) self.assertTrue(len(pUC19_BamHI) == 1) pUC19_BamHI = pUC19_BamHI.pop().seq self.assertTrue( len(pUC19_BamHI.watson) == len(pUC19_BamHI.crick) == 2686) pUC19_BamHI_a = pUC19_BamHI + b self.assertTrue( len(pUC19_BamHI_a.watson) == len(pUC19_BamHI_a.crick) == 2772) self.assertTrue(pUC19_BamHI_a.circular == False) self.assertTrue(pUC19_BamHI_a.linear == True) pUC19_BamHI_a = pUC19_BamHI_a.looped() self.assertTrue(pUC19_BamHI_a.circular == True) self.assertTrue(pUC19_BamHI_a.linear == False) self.assertTrue(eq(pUC19_BamHI_a, read("./pUC19-BamHI-a.gb"))) pUC19_BamHI_a_rc = pUC19_BamHI + b.rc() pUC19_BamHI_a_rc = pUC19_BamHI_a_rc.looped() self.assertTrue(pUC19_BamHI_a.circular == True) self.assertTrue(pUC19_BamHI_a.linear == False) self.assertTrue(eq(pUC19_BamHI_a_rc, read("./pUC19-BamHI-a-rc.gb"))) ''' adding (ligating) dsDNA objects ''' with self.assertRaisesRegexp(TypeError, "circular"): pUC19 + a with self.assertRaisesRegexp(TypeError, "circular"): a + pUC19 with self.assertRaisesRegexp(TypeError, "compatible"): a + b with self.assertRaisesRegexp(TypeError, "compatible"): b + a with self.assertRaisesRegexp(TypeError, "compatible"): d + d ''' directional cloning ''' pUC19_EcoRI_PstI = pUC19.cut(EcoRI, PstI).pop(0) with self.assertRaisesRegexp(TypeError, "compatible"): pUC19_EcoRI_PstI + d pUC19_EcoRI_PstI_d = pUC19_EcoRI_PstI + d.rc() pUC19_EcoRI_PstI_d = pUC19_EcoRI_PstI_d.looped() self.assertTrue( eq(pUC19_EcoRI_PstI_d, read("./pUC19-EcoRI_PstI-d-rc.gb"))) self.assertTrue( eq(pUC19_EcoRI_PstI_d.rc(), read("./pUC19-EcoRI_PstI-d-rc.gb")))