def test_primer_Design_given_both_primers(): b = Dseqrecord( "agctactgactattaggggttattctgatcatctgatctactatctgactgtactgatcta") with pytest.raises(ValueError): primer_design(b, fp=Primer("agctactgactattag"), rp=Primer("tagatcagtacagtca"))
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_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_four_fragments(): x = [primer_design(f) for f in frags] fourth = Dseqrecord("TAAAAATAAAATTGTTGACAGCAGAAGTGATATAGAAATTTGTTAATTATTA") y = assembly_fragments(x + [fourth], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + frags[1] + frags[2] + fourth).seq
def test_primer_Design_multiple_products(): b = Dseqrecord( "agctactgactattaggggttaagctactgactattaggggtttctgatcatctgatctactatctgactgtactgatcta" ) from pydna import _PydnaWarning with pytest.warns(_PydnaWarning): a = primer_design(b)
def test_cut_feat(): from pydna.readers import read from pydna.amplify import pcr from pydna.design import primer_design from pydna.dseqrecord import Dseqrecord from Bio.Restriction import EcoRI puc19 = read('pUC19_MarkBudde.gb') assert len(puc19.features) == 19 puc_lin = puc19[:] assert len(puc_lin.features) == 19 ampl = primer_design(puc_lin) pf, pr = ampl.forward_primer, ampl.reverse_primer pcrProd = pcr(pf, pr, puc19) assert len(pcrProd.features) == 21 assert len(pcrProd.cut(EcoRI)[1].features) == 16 def amplicon_to_dseqrecord(a): d = Dseqrecord(a.seq) d.features = a.features return d pcrProdDseqrecord = amplicon_to_dseqrecord(pcrProd) assert len(pcrProdDseqrecord.cut(EcoRI)[1].features) == 16
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"
def build_primers_for_part(self, part): """Build extraction primers and assign them into the part.""" part_seq_record = part.get_sequence() forward_primer = part.extraction_primers.forward_primer if part.has_primers else None reverse_primer = part.extraction_primers.reverse_primer if part.has_primers else None amplicon = primer_design(Dseqrecord(part_seq_record), fp=forward_primer, rp=reverse_primer, tm_func=self._perform_tm_func, limit=13) if not part.has_primers: part.set_extraction_primers( PrimerPair.from_sequences(amplicon.forward_primer.seq, amplicon.reverse_primer.seq)) return amplicon
from pydna.design import primer_design from pydna.dseqrecord import Dseqrecord t = Dseqrecord("atgactgctaacccttccttggtgttgaacaagatcgacgacatttcgttcgaaacttacgatg") from pydna.primer import Primer pf = Primer("atgactgctaacccttccttggtg") print(pf.name) ampl = primer_design(t, fp=pf) print(ampl.forward_primer.name)
from pydna.genbank import genbank from pydna.design import primer_design from pydna.amplify import pcr from pydna.readers import read from pydna.parsers import parse_primers from pydna.assembly import Assembly from pydna.gel import Gel ############################################################################### saat = genbank("AF193791 REGION: 78..1895") saat_pcr_prod = primer_design(saat) pYPKa=read("pYPKa.gb") from Bio.Restriction import AjiI pYPKa_AjiI = pYPKa.linearize(AjiI) pYPKa_A_saat = ( pYPKa_AjiI + saat_pcr_prod ).looped() pYPKa_Z_prom = read("pYPKa_Z_TEF1.gb") pYPKa_E_term = read("pYPKa_E_TPI1.gb") p567,p577,p468,p467,p568,p578 = parse_primers(''' >567_pCAPsAjiIF (23-mer) GTcggctgcaggtcactagtgag >577_crp585-557 (29-mer)
def test_primer_design_first_and_third_Dseqrecord(): x = [primer_design(f) for f in frags] y = assembly_fragments([frags[0], x[1], frags[2]], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + frags[1] + frags[2]).seq
def test_primer_design_linker_first(): x = [primer_design(f) for f in frags] y = assembly_fragments([bam, x[0], x[1], x[2]], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (bam + frags[0] + frags[1] + frags[2]).seq
def test_primer_design_linker_third(): # x = [primer_design(f) for f in frags] y = assembly_fragments([x[0], x[1], bam, x[2]], maxlink=6, overlap=20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + frags[1] + bam + frags[2]).seq
def test_primer_design_all_pcr_products(): x = [primer_design(f) for f in frags] y = assembly_fragments(x, 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + frags[1] + frags[2]).seq
def test_primer_design_two_fragments(): x = [primer_design(f) for f in frags] y = assembly_fragments([x[0], x[1]], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + frags[1]).seq
def test_primer_design_linker_second_before_Dseqrecord(): x = [primer_design(f) for f in frags] y = assembly_fragments([x[0], bam, frags[1], x[2]], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + bam + frags[1] + frags[2]).seq
def test_primer_Design_given_rv_primer(): b = Dseqrecord( "agctactgactattaggggttattctgatcatctgatctactatctgactgtactgatcta") a = primer_design(b, rp=Primer("tagatcagtacagtca")) assert str(a.forward_primer.seq) == 'agctactgactattag' #g
def test_primer_Design_given_fw_primer(): b = Dseqrecord( "agctactgactattaggggttattctgatcatctgatctactatctgactgtactgatcta") a = primer_design(b, fp=Primer("agctactgactattag")) assert str(a.reverse_primer.seq) == 'tagatcagtacagtca'
def test_primer_design_two_fragments_linker_in_between(): # x = [primer_design(f) for f in frags] y = assembly_fragments([x[0], bam, x[1]], 20, 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (frags[0] + bam + frags[1]).seq
def test_primer_design_two_fragments_flanking_linkers(): x = [primer_design(f) for f in frags] y = assembly_fragments([bam, x[0], x[1], bam], 20) z = Assembly(y, limit=20) result = z.assemble_linear()[0] assert result.seq == (bam + frags[0] + frags[1] + bam).seq
def test_primer_design_one_fragment_flanking_linkers(): x = [primer_design(f) for f in frags] y = assembly_fragments([bam, x[0], bam], 20) assert y[0].seq == (bam + frags[0] + bam).seq