Esempio n. 1
0
def test_prepend_primerlist(monkeypatch):
    monkeypatch.setenv("pydna_primers", "primers_linux_line_endings.txt")
    from pydna import myprimers
    from pydna.parsers import parse_primers
    from importlib import reload

    # >3_primer
    # aaaaaaaa
    # >2_primer
    # cccccccc
    # >1_primer
    # gggggggg
    # >0_primer
    # tttttttt

    oldlist = myprimers.primerlist()

    reload(myprimers)

    newlist = parse_primers("""
                            >abc
                            aaa
                            >efg
                            ttt
                            """)

    np = myprimers.prepend_primerlist(newlist, oldlist)

    assert [s.name for s in parse_primers(np)] == ["5_abc", "4_efg"]
Esempio n. 2
0
def test_too_short_primers():

    f, r = parse_primers('''>ForwardPrimer
                            gctactacacacgtactgactg
                            
                            >ReversePrimer
                            tgtggttactgactctatcttg''')

    t = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    ann = Anneal((f, r), t, limit=22)

    assert ann.report() == (
        "Template name 48 nt linear:\n"
        "Primer ForwardPrimer anneals forward at position 22\n"
        "\n"
        "Primer ReversePrimer anneals reverse at position 26")

    assert repr(ann) == "Reaction(products = 1)"

    p = ann.products[0]

    assert str(p.seq) == str(t.seq)

    ann = Anneal((f, r), t, limit=23)

    assert ann.products == []

    assert ann.report() == ("Template name 48 nt linear:\n"
                            "No forward primers anneal...\n"
                            "\n"
                            "No reverse primers anneal...")
    assert repr(ann) == "Reaction(products = 0)"
Esempio n. 3
0
def test_myprimers(monkeypatch):
    monkeypatch.setenv("pydna_primers", "primers_linux_line_endings.txt")
    from pydna import myprimers
    from pydna.parsers import parse_primers
    from importlib import reload

    reload(myprimers)
    newlist = parse_primers("primers_linux_line_endings.txt")[::-1]
    primerdict = myprimers.primerdict()

    assert len(primerdict) == 4
    primer_list = myprimers.primerlist()
    assert primer_list == newlist
Esempio n. 4
0
def test_myprimers(monkeypatch):
    monkeypatch.setenv("pydna_primers", "primers_linux_line_endings.txt")
    from pydna import myprimers
    from pydna.parsers import parse_primers
    from importlib import reload
    reload(myprimers)
    newlist = parse_primers("primers_linux_line_endings.txt")[::-1]
    primerdict = myprimers.dict_primers

    assert len(primerdict) == 4
    primer_list = myprimers.list_primers
    assert primer_list == newlist

    with pytest.raises(NotImplementedError):
        myprimers.append_primer_list("slask")
Esempio n. 5
0
def test_no_fwdprimer_anneal():

    f0, r0 = parse_primers('''>ForwardPrimer
                             gctact
                            
                             >ReversePrimer
                             tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = f0
    r = r0
    t = t0

    with pytest.raises(ValueError):
        pcr(f, r, t)
Esempio n. 6
0
def test_string_arguments():

    f0, r0 = parse_primers('''>ForwardPrimer
                            gctactacacacgtactgactg
                            
                            >ReversePrimer
                            tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = str(f0.seq)
    r = str(r0.seq)
    t = str(t0.seq)

    assert str(pcr(
        (f, r), t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 7
0
def test_Primer_arguments():

    f0, r0 = parse_primers('''>ForwardPrimer
                             gctactacacacgtactgactg
                            
                             >ReversePrimer
                             tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = f0
    r = r0
    t = t0

    assert str(pcr(
        f, r, t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 8
0
def test_Dseq_arguments():
    from pydna.dseq import Dseq

    f0, r0 = parse_primers('''>ForwardPrimer
                            gctactacacacgtactgactg
                            
                            >ReversePrimer
                            tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = Dseq(str(f0.seq))
    r = Dseq(str(r0.seq))
    t = Dseq(str(t0.seq))

    assert str(pcr(
        f, r, t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 9
0
def test_feature_label():

    f0, r0 = parse_primers('''>ForwardPrimer
                             gctactacacacgtactgactg
                            
                             >ReversePrimer
                             tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")
    t0.add_feature()

    f = f0
    r = r0
    t = t0

    assert str(pcr(
        f, r, t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 10
0
def test_Seq_arguments():
    from Bio.Seq import Seq

    f0, r0 = parse_primers(""">ForwardPrimer
                            gctactacacacgtactgactg

                            >ReversePrimer
                            tgtggttactgactctatcttg""")

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = Seq(str(f0.seq))
    r = Seq(str(r0.seq))
    t = Seq(str(t0.seq))

    assert str(pcr(
        f, r, t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 11
0
def test_pcr_not_specific():

    f0, r0 = parse_primers(""">ForwardPrimer
                             gctactacacacgtactgactg

                             >ReversePrimer
                             tgtggttactgactctatcttg""")

    t0 = Dseqrecord(
        "gctactacacacgtactgactgtgctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
    )

    f = f0
    r = r0
    t = t0

    with pytest.raises(ValueError):
        pcr(f, r, t)
Esempio n. 12
0
def test_feature_note():

    f0, r0 = parse_primers('''>ForwardPrimer
                             gctactacacacgtactgactg
                            
                             >ReversePrimer
                             tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")
    t0.add_feature()
    del t0.features[0].qualifiers["label"]
    t0.features[0].qualifiers["note"] = ["note"]

    f = f0
    r = r0
    t = t0

    assert str(pcr(
        f, r, t).seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
    assert pcr(f, r, t).name == "note"
Esempio n. 13
0
def test_set_primer_footprint():

    f, r = parse_primers(""">ForwardPrimer
                            gctactacacacgtactgactg

                            >ReversePrimer
                            tgtggttactgactctatcttg""")

    t = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    ampl = pcr((f, r), t)

    assert len(ampl.forward_primer.footprint) == 22
    assert len(ampl.reverse_primer.footprint) == 22

    ampl.set_forward_primer_footprint(15)
    ampl.set_reverse_primer_footprint(15)

    assert len(ampl.forward_primer.footprint) == 15
    assert len(ampl.reverse_primer.footprint) == 15
Esempio n. 14
0
def test_Amplicon_argument():

    f0, r0 = parse_primers('''>ForwardPrimer
                             gctactacacacgtactgactg
                            
                             >ReversePrimer
                             tgtggttactgactctatcttg''')

    t0 = Dseqrecord("gctactacacacgtactgactgcctccaagatagagtcagtaaccaca")

    f = f0
    r = r0
    t = t0

    ampl = pcr(f, r, t)

    assert str(ampl.seq) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"

    amplicon_from_amplicon = pcr(ampl)

    assert str(amplicon_from_amplicon.seq
               ) == "gctactacacacgtactgactgcctccaagatagagtcagtaaccaca"
Esempio n. 15
0
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)
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")
Esempio n. 16
0
def test_parse_list():
    from pydna.parsers import parse_primers
    data = str(">1\n" "aaaa\n" ">2\n" "cccc\n")

    parse_primers([data, data])