def test_primer_design_same_first_and_third_Dseqrecord(): from pydna.dseqrecord import Dseqrecord x = [primer_design(f) for f in frags] y = assembly_fragments([frags[0], x[1], frags[0]], 20) z = Assembly(y, limit=20) result = z.assemble_circular()[0] assert result.cseguid() == (frags[0] + frags[1]).looped().cseguid() a = Dseqrecord("ccaaggacacaatcgagctccgatccgtactgtcgagaaacttgtatcc", name="a") b = Dseqrecord( "ctgtcgagaaacttgtatccctctaactagtatggatagccgtgtcttcactgtgctgcggctacccatcccaaggacacaatcgagctc", name="b", ) z = Assembly((a, b, a), limit=20) result = z.assemble_linear()[0] assert ( str(result.seq) == "ccaaggacacaatcgagctccgatccgtactgtcgagaaacttgtatccctctaactagtatggatagccgtgtcttcactgtgctgcggctacccatcccaaggacacaatcgagctccgatccgtactgtcgagaaacttgtatcc" ) result = z.assemble_circular()[0] assert result.cseguid() == (frags[0] + frags[1]).looped().cseguid()
def test_primer_Design_with_linker(): ''' test_primer_design''' b = Dseqrecord( "agctactgactattaggggttattctgatcatctgatctactatctgactgtactgatcta") l = Dseqrecord("AAATTTCCCGGG") c = Dseqrecord( "tctgatctactatctgactgtactgatctattgacactgtgatcattctagtgtattactc") frags = assembly_fragments((primer_design(b), l, primer_design(c))) asm1 = Assembly(frags) assert asm1.assemble_linear()[0].seguid(), ( b + l + c).seguid() == 'l95igKB8iKAKrvvqE9CYksyNx40' frags = assembly_fragments( (primer_design(b), l, primer_design(c), primer_design(b))) b2 = pcr(frags[-1].forward_primer, frags[0].reverse_primer, b) asm2 = Assembly((b2, frags[1], frags[2])) assert (b + l + c).looped().cseguid() == asm2.assemble_circular()[0].cseguid() assert (b + l + c).looped().cseguid() == 'jdHXfQI5k4Sk2ESiZYfKv4oP2FI'
def test_circular_assembly_fragments2(): x = [primer_design(f) for f in frags] y = circular_assembly_fragments((frags[0], x[1], x[2]), 20) z = Assembly(y, limit=20) result = z.assemble_circular()[0] assert str( result.seq ) == "ccaaggacacaatcgagctccgatccgtactgtcgagaaacttgtatccctctaactagtatggatagccgtgtcttcactgtgctgcggctacccatcgtagtgaaacatacacgttgctcgggttcaccccggtccgttctgagtcga"
def test_primer_Design(): ''' test_primer_design''' a = Dseqrecord( "atgactgctaacccttccttggtgttgaacaagatcgacgacatttcgttcgaaacttacgatg") b = Dseqrecord( "ccaaacccaccaggtaccttatgtaagtacttcaagtcgccagaagacttcttggtcaagttgcc") c = Dseqrecord( "tgtactggtgctgaaccttgtatcaagttgggtgttgacgccattgccccaggtggtcgtttcgtt") frags = assembly_fragments([primer_design(r) for r in (a, b, c)]) asm = Assembly(frags) assert asm.assemble_linear()[0].seguid() == "1eNv3d_1PqDPP8qJZIVoA45Www8" frags = assembly_fragments([primer_design(r) for r in (a, b, c, a)]) a2 = pcr(frags[-1].forward_primer, frags[0].reverse_primer, a) asm = Assembly((a2, frags[1], frags[2])) assert asm.assemble_circular()[0].cseguid( ) == "V3Mi8zilejgyoH833UbjJOtDMbc"
gttctgatcctcgagcatcttaagaattc >468_pCAPs_release_fw (25-mer) gtcgaggaacgccaggttgcccact >467_pCAPs_release_re (31-mer) ATTTAAatcctgatgcgtttgtctgcacaga >568_pCAPsAjiIR (22-mer) GTGCcatctgtgcagacaaacg >578_crp42-70 (29-mer) gttcttgtctcattgccacattcataagt''') p = pcr(p577, p567, pYPKa_Z_prom) g = pcr(p468, p467, pYPKa_A_saat) t = pcr(p568, p578, pYPKa_E_term) pYPKpw = read("pYPKpw.gb") from Bio.Restriction import ZraI pYPKpw_lin = pYPKpw.linearize(ZraI) asm = Assembly((pYPKpw_lin, p, g, t)) candidate = asm.assemble_circular()[0] pYPK0_TDH3_FaPDC_TEF1 = candidate.synced(pYPKa) pYPK0_TDH3_FaPDC_TEF1.write("pYPK0_TDH3_FaPDC_TPI1.gb")
def test_reverse_complement(monkeypatch): from pydna._pretty import pretty_str from pydna.assembly import Assembly from pydna.dseqrecord import Dseqrecord a = Dseqrecord("acgatgctatactgtgCCNCCtgtgctgtgctcta") #12345678901234 b = Dseqrecord("tgtgctgtgctctaTTTTTTTtattctggctgtatc") #123456789012345 c = Dseqrecord("tattctggctgtatcGGGGGtacgatgctatactgtg") a.name = "aaa" #1234567890123456 b.name = "bbb" c.name = "ccc" asm = Assembly((a, b, c), limit=14) x = asm.assemble_circular()[0] y = x.rc() z = y.rc() assert x.figure() == z.figure() assert x.detailed_figure() == z.detailed_figure() xfig = '''\ -|aaa|14 | \\/ | /\\ | 14|bbb|15 | \\/ | /\\ | 15|ccc|16 | \\/ | /\\ | 16- | | ----------------------- '''.rstrip() xdfig = pretty_str('''\ |||||||||||||||| acgatgctatactgtgCCNCCtgtgctgtgctcta TGTGCTGTGCTCTA tgtgctgtgctctaTTTTTTTtattctggctgtatc TATTCTGGCTGTATC tattctggctgtatcGGGGGtacgatgctatactgtg ACGATGCTATACTGTG '''.rstrip() + "\n") assert x.figure() == xfig assert x.detailed_figure() == xdfig yfig = '''\ -|ccc_rc|15 | \\/ | /\\ | 15|bbb_rc|14 | \\/ | /\\ | 14|aaa_rc|16 | \\/ | /\\ | 16- | | -------------------------------- '''.rstrip() ydfig = '''\ |||||||||||||||| cacagtatagcatcgtaCCCCCgatacagccagaata GATACAGCCAGAATA gatacagccagaataAAAAAAAtagagcacagcaca TAGAGCACAGCACA tagagcacagcacaGGNGGcacagtatagcatcgt CACAGTATAGCATCGT '''.rstrip() + "\n" assert y.figure() == yfig assert y.detailed_figure() == ydfig
def test_contig(monkeypatch): monkeypatch.setenv("pydna_cached_funcs", "") from pydna import contig from pydna.assembly import Assembly from pydna.dseqrecord import Dseqrecord a = Dseqrecord("acgatgctatactgCCCCCtgtgctgtgctcta", name="one") b = Dseqrecord("tgtgctgtgctctaTTTTTtattctggctgtatc", name="two") c = Dseqrecord("tattctggctgtatcGGGGGtacgatgctatactg", name="three") asm = Assembly((a, b, c), limit=14) cnt = asm.assemble_circular()[0] assert repr(cnt) == "Contig(o59)" assert cnt.detailed_figure() == str( "||||||||||||||\n" "acgatgctatactgCCCCCtgtgctgtgctcta\n" " TGTGCTGTGCTCTA\n" " tgtgctgtgctctaTTTTTtattctggctgtatc\n" " TATTCTGGCTGTATC\n" " tattctggctgtatcGGGGGtacgatgctatactg\n" " ACGATGCTATACTG\n" ) from textwrap import indent fig = """ -|one|14 | \\/ | /\\ | 14|two|15 | \\/ | /\\ | 15|three|14 | \\/ | /\\ | 14- | | -------------------------""" cnt2 = asm.assemble_linear()[0] fig = ('one|14\n' ' \\/\n' ' /\\\n' ' 14|two|15\n' ' \\/\n' ' /\\\n' ' 15|three') assert fig == cnt2.figure() assert repr(cnt2) == 'Contig(-73)' #print(repr(cnt2._repr_html_())) assert cnt2._repr_html_( ) == '<pre>one|14\n \\/\n /\\\n 14|two|15\n \\/\n /\\\n 15|three</pre>' from unittest.mock import MagicMock pp = MagicMock() cnt2._repr_pretty_(pp, None) pp.text.assert_called_with('Contig(-73)') from Bio.Seq import Seq from Bio.Alphabet.IUPAC import IUPACAmbiguousDNA from pydna.seqrecord import SeqRecord arg = SeqRecord(Seq("aaa", IUPACAmbiguousDNA())) import networkx as nx x = contig.Contig.from_SeqRecord(arg, graph=nx.MultiDiGraph())