Esempio n. 1
0
def test_multiple_priming():
    ''' test multiple binding sites '''

    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    template = template.circularize()
    seq = DNA('cgccagggttttcccagtcacgac')
    template = template.linearize()
    template = template + seq + DNA("AGGCGTATGC") + seq
    template = (template + DNA("GGGGGGG") + seq.reverse_complement() +
                DNA("GGAAAG"))
    template = template.circularize()
    primer = Primer(seq, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    fwd_indices = [match[0] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]

    loc = template.locate(seq)

    assert_true(len(fwd_matches) == len(loc[0]))
    assert_true(len(rev_matches) == len(loc[1]))
    for match in loc[0]:
        assert_true(match + len(seq) in fwd_indices)
    for match in loc[1]:
        assert_true(match + len(seq) in rev_indices)
Esempio n. 2
0
 def test_palindrome(self):
     palindromic_seq_even = DNA('ATGCGCAT')
     nonpalindromic_seq_even = DNA('ATGCGCAA')
     almost_palindrome_odd = DNA('ATGCCAT')
     assert_true(palindromic_seq_even.is_palindrome())
     assert_false(nonpalindromic_seq_even.is_palindrome())
     assert_false(almost_palindrome_odd.is_palindrome())
Esempio n. 3
0
 def test_psti_cut(self):
     '''Test 3\' cutter.'''
     psti = RestrictionSite(DNA('CTGCAG'), (5, 1), name='PstI')
     assert_equal(
         reaction.digest(DNA('ACTGCAGA'), psti),
         [DNA('ACTGCA', bottom='----GT'),
          DNA('----GA', bottom='TCTGCA')])
Esempio n. 4
0
def test_transcription():
    test_dna = DNA('ATGATGGGCAGTGTCGAATTAAATCTGCGTGAGACAGAATTGTGTT' +
                   'TGGGACTACCAGGCGGTGATACAGTTGCACCAGTAACAGGAAACAA' +
                   'AAGAGGATTCTCTGAAACAGTAGATTTGAAACTTAATTTGAACAAT' +
                   'GAGCCAGCCAACAAGGAAGGTTCCACCACTCATGACGTCGTCACAT' +
                   'TTGATAGTAAAGAAAAGAGTGCGTGTCCAAAAGATCCAGCTAAGCC' +
                   'ACCTGCCAAGGCTCAAGTCGTCGGATGGCCACCTGTGAGATCTTAT' +
                   'AGAAAGAACGTAATGGTTTCTTGTCAGAAGTCCAGTGGTGGTCCTG' +
                   'AAGCAGCGGCTtgaaaa')
    reference_rna = RNA('AUGAUGGGCAGUGUCGAAUUAAAUCUGCGUGAGACAGAAUU' +
                        'GUGUUUGGGACUACCAGGCGGUGAUACAGUUGCACCAGUAA' +
                        'CAGGAAACAAAAGAGGAUUCUCUGAAACAGUAGAUUUGAAA' +
                        'CUUAAUUUGAACAAUGAGCCAGCCAACAAGGAAGGUUCCAC' +
                        'CACUCAUGACGUCGUCACAUUUGAUAGUAAAGAAAAGAGUG' +
                        'CGUGUCCAAAAGAUCCAGCUAAGCCACCUGCCAAGGCUCAA' +
                        'GUCGUCGGAUGGCCACCUGUGAGAUCUUAUAGAAAGAACGU' +
                        'AAUGGUUUCUUGUCAGAAGUCCAGUGGUGGUCCUGAAGCAG' +
                        'CGGCUugaaaa')
    # Basic transcription should work
    transcription_output = reaction.transcribe(test_dna)
    assert_equal(transcription_output, reference_rna)

    # Coding RNA should exclude anything after a stop codon
    coding_rna_output = reaction.coding_sequence(transcription_output)
    assert_equal(coding_rna_output, reference_rna[:-3])

    # Should fail is sequence lacks start codon or stop codon
    assert_raises(ValueError, reaction.coding_sequence,
                  reaction.transcribe(DNA('aaatag')))
    assert_raises(ValueError, reaction.coding_sequence,
                  reaction.transcribe(DNA('atgaaa')))
Esempio n. 5
0
 def test_ncoi_cut(self):
     '''Test standard TypeII cutter.'''
     ncoi = RestrictionSite(DNA('CCATGG'), (1, 5), name='NcoI')
     assert_equal(reaction.digest(self.dna, ncoi), [
         DNA('TGAC----', bottom='CATGGTCA'),
         DNA('CATGGAAA', bottom='TTTC----')
     ])
     assert_equal(reaction.digest(self.dna.circularize(), ncoi),
                  [DNA('CATGGAAATGAC----', bottom='CATGGTCATTTC----')])
Esempio n. 6
0
def test_dimers():
    '''Test dimers function.'''
    anneal_f = DNA('gatcgatcgatacgatcgatatgcgat', stranded='ss')
    tm_f = 71.86183729637946
    primer_f = Primer(anneal_f, tm_f)

    anneal_r = DNA('atatcgatcatatcgcatatcgatcgtatcgat', stranded='ss')
    tm_r = 72.14300162714233
    primer_r = Primer(anneal_r, tm_r)

    dimer_output = analysis.dimers(primer_f, primer_r)

    assert_equal(dimer_output, 0.8529446)
Esempio n. 7
0
def test_near_index():
    '''Test binding near index for circular templates.'''
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    template = template.circularize()
    seq = DNA('aggccctttcgtctcgcgcgttt')
    primer = Primer(seq, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    fwd_indices = [match[0] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]

    loc = template.locate(seq)

    print fwd_matches
    print loc[0]
    print loc[1]
    assert_true(len(fwd_matches) == len(loc[0]))
    assert_true(len(rev_matches) == len(loc[1]))
    for match in loc[0]:
        expected = match + len(seq)
        if expected > len(template):
            expected -= len(template)
        assert_true(expected in fwd_indices)
    for match in loc[1]:
        expected = match + len(seq)
        if expected > len(template):
            expected -= len(template)
        assert_true(expected in rev_indices)
Esempio n. 8
0
def test_primers():
    '''Test primers function.'''
    seq = 'ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGC' + \
          'GACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAG' + \
          'CTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACC' + \
          'ACCTTCGGCTACGGCCTGCAGTGCTTCGCCCGCTACCCCGACCACATGAAGCAGCACGACTTC' + \
          'TTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGC' + \
          'AACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTG' + \
          'AAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAAC' + \
          'AGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATC' + \
          'CGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATC' + \
          'GGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCTACCAGTCCGCCCTGAGCAAA' + \
          'GACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACT' + \
          'CTCGGCATGGACGAGCTGTACAAGTAA'
    dna_seq = DNA(seq)
    primers_list = design.primers(dna_seq,
                                  tm=72,
                                  min_len=10,
                                  tm_undershoot=1,
                                  tm_overshoot=3,
                                  end_gc=False,
                                  tm_parameters='cloning',
                                  overhangs=None)
    primers = [str(x.primer()) for x in primers_list]
    assert_equals(primers,
                  ['ATGGTGAGCAAGGGCGAGGAG', 'TTACTTGTACAGCTCGTCCATGCCG'])
Esempio n. 9
0
def test_find_repeats():
    input_sequence = DNA('atgatgccccgatagtagtagtag')
    expected = [('ATG', 2), ('GTA', 3), ('GAT', 2), ('AGT', 3), ('CCC', 2),
                ('TAG', 4)]

    output = analysis.repeats(input_sequence, 3)
    assert_equal(output, expected)
Esempio n. 10
0
def test_overhang():
    ''' test forward priming '''
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    seq = DNA('cgccagggttttcccagtcacgac')
    overhang = DNA('ggggggg')
    seq2 = overhang + seq
    primer = Primer(seq2, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches

    fwd_indices = [match[0] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]

    loc = template.locate(seq)

    assert_true(len(fwd_indices) == len(loc[0]))
    assert_true(len(rev_indices) == len(loc[1]))
    # FIXME: Add match length check for all these cases.
    for match in loc[0]:
        assert_true(match + len(seq) in fwd_indices)
    for match in loc[1]:
        assert_true(match + len(seq) in rev_indices)

    # Test forward priming.
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    seq = DNA('ACAAGAGAGATTGGGAAGGAAAGGATCA')
    overhang = DNA('ggggggg')
    seq2 = overhang + seq
    primer = Primer(seq2, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    fwd_indices = [match[0] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]

    loc = template.locate(seq)

    assert_true(len(fwd_indices) == len(loc[0]))
    assert_true(len(rev_indices) == len(loc[1]))

    for match in loc[0]:
        assert_true(match + len(seq) in fwd_indices)
    for match in loc[1]:
        assert_true(match + len(seq) in rev_indices)
Esempio n. 11
0
def test_finnzymes():
    '''
    Tests finnzymes method output.

    '''

    melt = analysis.tm(DNA('ATGCGATAGCGATAGC'), parameters='cloning')
    assert_equal(melt, 55.2370030020752)
Esempio n. 12
0
def test_utils():
    test_DNA = DNA('ATAGCGATACGAT')
    test_RNA = RNA('AUGCGAUAGCGAU')
    test_peptide = Peptide('msvkkkpvqg')
    test_str = 'msvkkkpvgq'

    assert_equal(analysis.utils.sequence_type(test_DNA), 'dna')
    assert_equal(analysis.utils.sequence_type(test_RNA), 'rna')
    assert_equal(analysis.utils.sequence_type(test_peptide), 'peptide')
    assert_raises(Exception, analysis.utils.sequence_type, test_str)
Esempio n. 13
0
def test_basic():
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    # Test forward priming.
    seq = DNA('cgccagggttttcccagtcacgac')
    primer = Primer(seq, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    fwd_indices = [match[0] for match in fwd_matches]
    # fwd_lens = [match[1] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]
    # rev_lens = [match[1] for match in rev_matches]

    loc = template.locate(seq)

    assert_true(len(fwd_matches) == len(loc[0]))
    assert_true(len(rev_matches) == len(loc[1]))

    # Top strand matches
    for match in loc[0]:
        assert_true(match + len(seq) in fwd_indices)
    # Top strand matches
    for match in loc[1]:
        assert_true(match + len(seq) in rev_indices)

    # Test reverse priming
    seq = DNA('ACAAGAGAGATTGGGAAGGAAAGGATCA')
    primer = Primer(seq, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    fwd_indices = [match[0] for match in fwd_matches]
    rev_indices = [match[0] for match in rev_matches]

    loc = template.locate(seq)

    assert_true(len(fwd_indices) == len(loc[0]))
    assert_true(len(rev_indices) == len(loc[1]))
    for match in loc[0]:
        assert_true(match + len(seq) in fwd_indices)
    for match in loc[1]:
        assert_true(match + len(seq) in rev_indices)
Esempio n. 14
0
    def test_getitem(self):
        subsequence = self.dna[30:100]
        remaining_features = [Feature('Primer Feature', 11, 30, 'primer_bind'),
                              Feature('Promoter Feature', 31, 50, 'promoter'),
                              Feature('Terminator Feature', 51, 70,
                                      'terminator')]

        assert_equal(subsequence.features, remaining_features)
        assert_false(self.dna[10].features)
        new_seq = DNA('ATGC', features=[Feature('A', 0, 0, 'misc_feature')])
        assert_equal(new_seq[0].features[0],
                     Feature('A', 0, 0, 'misc_feature'))
Esempio n. 15
0
def test_convert_sequence():
    '''Tests DNA translation function.'''

    seq = 'ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGC' + \
          'GACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAG' + \
          'CTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACC' + \
          'ACCTTCGGCTACGGCCTGCAGTGCTTCGCCCGCTACCCCGACCACATGAAGCAGCACGACTTC' + \
          'TTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGC' + \
          'AACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTG' + \
          'AAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAAC' + \
          'AGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATC' + \
          'CGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATC' + \
          'GGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCTACCAGTCCGCCCTGAGCAAA' + \
          'GACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACT' + \
          'CTCGGCATGGACGAGCTGTACAAGTAA'
    dna = DNA(seq)
    prot = 'MVSKGEELFTGVVPILVELDGDVNGHKFSVSGEGEGDATYGKLTLKFICTTGKLPVPWPTLV' + \
           'TTFGYGLQCFARYPDHMKQHDFFKSAMPEGYVQERTIFFKDDGNYKTRAEVKFEGDTLVNRI' + \
           'ELKGIDFKEDGNILGHKLEYNYNSHNVYIMADKQKNGIKVNFKIRHNIEDGSVQLADHYQQN' + \
           'TPIGDGPVLLPDNHYLSYQSALSKDPNEKRDHMVLLEFVTAAGITLGMDELYK'
    rna = reaction.utils.convert_sequence(dna, 'rna')
    r_trans = reaction.utils.convert_sequence(rna, 'dna')
    trans = reaction.utils.convert_sequence(rna, 'peptide')
    assert_equal(str(trans), prot)
    assert_equal(str(r_trans), seq)
    assert_raises(ValueError, reaction.utils.convert_sequence, seq, 'rna')

    # Gapped sequence shouldfail
    assert_raises(ValueError, reaction.utils.convert_sequence, DNA('atg-'),
                  'rna')

    # Sequence without stop codon should still work
    nostop_dna = DNA('atgaaaaaaaaaaaa')
    nostop_rna = reaction.utils.convert_sequence(nostop_dna, 'rna')
    nostop_peptide = reaction.utils.convert_sequence(nostop_rna, 'peptide')
    assert_equal(str(nostop_rna), 'AUGAAAAAAAAAAAA')
    assert_equal(str(nostop_peptide), 'MKKKK')

    assert_raises(ValueError, reaction.utils.convert_sequence, 'duck', 'rna')
Esempio n. 16
0
def test_min_tm():
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))

    # Test forward priming
    # Tm should be ~40 C
    seq = DNA('CTTCTATCGAACAA')
    primer = Primer(seq, seq.tm())
    matches = analysis.anneal(template, primer, min_tm=60.0)
    assert_true(len(matches[0]) == 0)
    matches = analysis.anneal(template, primer, min_tm=30.0)
    assert_true(len(matches[0]) > 0)
Esempio n. 17
0
def test_min_primer_length():
    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))

    # Test forward priming
    seq = DNA('cgccagggttttcccagtcacgac')
    seq = seq[:15]
    primer = Primer(seq, 50.6)
    assert_raises(analysis._sequence.anneal.PrimerLengthError,
                  analysis.anneal,
                  template,
                  primer,
                  min_len=16)
Esempio n. 18
0
def test_no_priming():
    ''' test no priming '''

    current_path = os.path.dirname(__file__)
    template = seqio.read_dna(
        os.path.join(current_path, "pMODKan-HO-pACT1GEV.ape"))
    seq = DNA('ggaggagggcggcgaggcgagcgacggaggggga')
    primer = Primer(seq, 50.6)
    matches = analysis.anneal(template, primer)
    fwd_matches, rev_matches = matches
    loc = template.locate(seq)
    assert_true(len(fwd_matches) == len(loc[0]))
    assert_true(len(rev_matches) == len(loc[1]))
    for match in loc[0]:
        assert_true(match + len(seq) in fwd_matches)
    for match in loc[1]:
        assert_true(match + len(seq) in rev_matches)
Esempio n. 19
0
def test_overlapping_overlaps():
    '''
    Sometimes, an assembly produces a result with 'overlapping overlaps' -
    not ideal. This should eventually be replaced by a catchable exception or
    prevented outright.

    '''

    test_seq = DNA('ATCAATACTTATTACGATATATATAT' * 34)
    oligo_n_assembly = design.OligoAssembly(test_seq,
                                            tm=65,
                                            length_range=(80, 150),
                                            require_even=True,
                                            start_5=True,
                                            overlap_min=20,
                                            oligo_number=10)
    oligo_n_assembly.design_assembly()
    assert_true(type(oligo_n_assembly.warning) == str)
Esempio n. 20
0
def test_gibson_primers():
    '''Test gibson_primers function.'''
    # Fuse tdh3 promoter sequence to yfp (trimmed for readability)
    tdh3_3prime = DNA('aaccagttccctgaaattattcccctacttgactaataagtat' +
                      'ataaagacggtaggtattgattgtaattctgtaaatctatttc' +
                      'ttaaacttc')
    yfp_nterm = DNA('atggtgagcaagggcgaggagctgttcaccggggtggtgcccatc' +
                    'ctggtcgagctggacggcgacgtaaacggccacaagttcagcgtg' +
                    'tccggcgagggcgagggcgatgccacctacggcaagctgaccctg' + 'aag')
    # Expected annealing sequences and their Tms
    fwd_anneal = DNA('atggtgagcaagggcg')
    fwd_tm = 64.64172107821065
    rev_anneal = DNA('gaagtttaagaaatagatttacagaattacaatcaatac')
    rev_tm = 64.24536287254085
    # Expected overlaps
    all_right = DNA('TCGCCCTTGCTCACCAT')
    all_left = DNA('GGTATTGATTGTAATTCTGTAAATCTATTTCTTAAACTTC')
    mixed_fwd = DNA('TTCTTAAACTTC')
    mixed_rev = DNA('CCTTGCTCACCAT')
    # Design primers - with homology all on left side, right side, or mixed
    # All on the 'right' - i.e. fwd primer
    right = design.gibson_primers(tdh3_3prime, yfp_nterm, 'right')
    right_rev = Primer(rev_anneal, tm=rev_tm, overhang=all_right)
    right_fwd = Primer(fwd_anneal, tm=fwd_tm)
    assert_equal(right, (right_rev, right_fwd))
    # All on the 'left' - i.e. rev primer
    left = design.gibson_primers(tdh3_3prime, yfp_nterm, 'left')
    left_rev = Primer(rev_anneal, tm=rev_tm)
    left_fwd = Primer(fwd_anneal, tm=fwd_tm, overhang=all_left)
    assert_equal(left, (left_rev, left_fwd))
    # On both primers
    mixed = design.gibson_primers(tdh3_3prime, yfp_nterm, 'mixed')
    mixed_primer1 = Primer(rev_anneal, tm=rev_tm, overhang=mixed_rev)
    mixed_primer2 = Primer(fwd_anneal, tm=fwd_tm, overhang=mixed_fwd)
    assert_equal(mixed, (mixed_primer1, mixed_primer2))

    assert_raises(ValueError, design.gibson_primers, tdh3_3prime, yfp_nterm,
                  'duck')
Esempio n. 21
0
def test_reverse_transcription():
    test_rna = RNA('AUGAUGGGCAGUGUCGAAUUAAAUCUGCGUGAGACAGAAUU' +
                   'GUGUUUGGGACUACCAGGCGGUGAUACAGUUGCACCAGUAA' +
                   'CAGGAAACAAAAGAGGAUUCUCUGAAACAGUAGAUUUGAAA' +
                   'CUUAAUUUGAACAAUGAGCCAGCCAACAAGGAAGGUUCCAC' +
                   'CACUCAUGACGUCGUCACAUUUGAUAGUAAAGAAAAGAGUG' +
                   'CGUGUCCAAAAGAUCCAGCUAAGCCACCUGCCAAGGCUCAA' +
                   'GUCGUCGGAUGGCCACCUGUGAGAUCUUAUAGAAAGAACGU' +
                   'AAUGGUUUCUUGUCAGAAGUCCAGUGGUGGUCCUGAAGCAG' + 'CGGCUugaaaa')
    ref_dna = DNA('ATGATGGGCAGTGTCGAATTAAATCTGCGTGAGACAGAATTGTGTT' +
                  'TGGGACTACCAGGCGGTGATACAGTTGCACCAGTAACAGGAAACAA' +
                  'AAGAGGATTCTCTGAAACAGTAGATTTGAAACTTAATTTGAACAAT' +
                  'GAGCCAGCCAACAAGGAAGGTTCCACCACTCATGACGTCGTCACAT' +
                  'TTGATAGTAAAGAAAAGAGTGCGTGTCCAAAAGATCCAGCTAAGCC' +
                  'ACCTGCCAAGGCTCAAGTCGTCGGATGGCCACCTGTGAGATCTTAT' +
                  'AGAAAGAACGTAATGGTTTCTTGTCAGAAGTCCAGTGGTGGTCCTG' +
                  'AAGCAGCGGCTtgaaaa')

    # Basic transcription should work
    r_transcription = reaction.reverse_transcribe(test_rna)
    assert_equal(r_transcription, ref_dna)
Esempio n. 22
0
def test_structure_windows():
    '''Tests StructureWindows class in structure_windows.'''

    seq = 'atggtgagcaagggcgaggagctgttcaccggggtggtgcccatcctggtcgagctggacggc' + \
          'gacgtaaacggccacaagttcagcgtgtccggcgagggcgagggcgatgccacctacggcaag' + \
          'ctgaccctgaagttcatctgcaccaccggcaagctgcccgtgccctggcccaccctcgtgacc' + \
          'accttcggctacggcctgcagtgcttcgcccgctaccccgaccacatgaagcagcacgacttc' + \
          'ttcaagtccgccatgcccgaaggctacgtccaggagcgcaccatcttcttcaaggacgacggc' + \
          'aactacaagacccgcgccgaggtgaagttcgagggcgacaccctggtgaaccgcatcgagctg' + \
          'aagggcatcgacttcaaggaggacggcaacatcctggggcacaagctggagtacaactacaac' + \
          'agccacaacgtctatatcatggccgacaagcagaagaacggcatcaaggtgaacttcaagatc' + \
          'cgccacaacatcgaggacggcagcgtgcagctcgccgaccactaccagcagaacacccccatc' + \
          'ggcgacggccccgtgctgctgcccgacaaccactacctgagctaccagtccgccctgagcaaa' + \
          'gaccccaacgagaagcgcgatcacatggtcctgctggagttcgtgaccgccgccgggatcact' + \
          'ctcggcatggacgagctgtacaagtaa'
    dna_seq = DNA(seq)
    walker = analysis.StructureWindows(dna_seq)
    walker.windows(window_size=60, context_len=90, step=10)
    assert_equal(walker.scores,
                 (0.578570075,
                  0.5928413833333335,
                  0.5535072916666667,
                  0.5425574666666667,
                  0.6028716333333335,
                  0.5907444666666667,
                  0.5532209166666666,
                  0.5882098916666667,
                  0.6471799,
                  0.6957834999999999,
                  0.6209094583333334,
                  0.5929873583333332,
                  0.6117790833333332,
                  0.6116499166666667,
                  0.5987705999999998,
                  0.6439044999999999,
                  0.6817365833333334,
                  0.6488576499999998,
                  0.6900404249999998,
                  0.6657639999999999,
                  0.7083993333333333,
                  0.6360369916666666,
                  0.6452116666666665,
                  0.6395126666666666,
                  0.6288818333333333,
                  0.6351839999999999,
                  0.6463396666666666,
                  0.6717609166666665,
                  0.67853025,
                  0.7012450833333332,
                  0.6620117499999998,
                  0.7250783333333332,
                  0.6995034166666668,
                  0.7386933333333333,
                  0.7494905833333333,
                  0.7247731666666668,
                  0.7510857500000001,
                  0.7458025000000003,
                  0.7434455,
                  0.6702263583333334,
                  0.6390452499999999,
                  0.6503500249999998,
                  0.646285175,
                  0.606586825,
                  0.5707148,
                  0.644573625,
                  0.6644399750000001,
                  0.6716777749999999,
                  0.6807071583333334))
Esempio n. 23
0
 def __init__(self):
     self.test_dna = DNA('atgc')
Esempio n. 24
0
 def __init__(self):
     self.ecorv = RestrictionSite(DNA('GATATC'), (3, 3), name='EcoRV')
     self.foki = RestrictionSite(DNA('GGATG'), (14, 18), name='FokI')
Esempio n. 25
0
def test_primer():
    '''Test primer function.'''
    seq = 'ATGGTGAGCAAGGGCGAGGAGCTGTTCACCGGGGTGGTGCCCATCCTGGTCGAGCTGGACGGC' + \
          'GACGTAAACGGCCACAAGTTCAGCGTGTCCGGCGAGGGCGAGGGCGATGCCACCTACGGCAAG' + \
          'CTGACCCTGAAGTTCATCTGCACCACCGGCAAGCTGCCCGTGCCCTGGCCCACCCTCGTGACC' + \
          'ACCTTCGGCTACGGCCTGCAGTGCTTCGCCCGCTACCCCGACCACATGAAGCAGCACGACTTC' + \
          'TTCAAGTCCGCCATGCCCGAAGGCTACGTCCAGGAGCGCACCATCTTCTTCAAGGACGACGGC' + \
          'AACTACAAGACCCGCGCCGAGGTGAAGTTCGAGGGCGACACCCTGGTGAACCGCATCGAGCTG' + \
          'AAGGGCATCGACTTCAAGGAGGACGGCAACATCCTGGGGCACAAGCTGGAGTACAACTACAAC' + \
          'AGCCACAACGTCTATATCATGGCCGACAAGCAGAAGAACGGCATCAAGGTGAACTTCAAGATC' + \
          'CGCCACAACATCGAGGACGGCAGCGTGCAGCTCGCCGACCACTACCAGCAGAACACCCCCATC' + \
          'GGCGACGGCCCCGTGCTGCTGCCCGACAACCACTACCTGAGCTACCAGTCCGCCCTGAGCAAA' + \
          'GACCCCAACGAGAAGCGCGATCACATGGTCCTGCTGGAGTTCGTGACCGCCGCCGGGATCACT' + \
          'CTCGGCATGGACGAGCTGTACAAGTAA'
    dna_seq = DNA(seq)
    primer = design.primer(dna_seq,
                           tm=72,
                           min_len=10,
                           tm_undershoot=1,
                           tm_overshoot=3,
                           end_gc=False,
                           tm_parameters='cloning',
                           overhang=None)
    assert_equals(str(primer), 'ATGGTGAGCAAGGGCGAGGAG')
    # Ensure that overhang is appropriately applied
    overhang_primer = design.primer(dna_seq,
                                    tm=72,
                                    min_len=10,
                                    tm_undershoot=1,
                                    tm_overshoot=3,
                                    end_gc=False,
                                    tm_parameters='cloning',
                                    overhang=DNA('GATCGATAT'))
    assert_equals(str(overhang_primer), 'GATCGATATATGGTGAGCAAGGGCGAGGAG')
    # If sequence is too short (too low of Tm), raise ValueError
    too_short = DNA('at')
    assert_raises(ValueError, design.primer, too_short, tm=72)
    # Should design different primers (sometimes) if ending on GC is preferred
    diff_template = DNA('GATCGATCGATACGATCGATATGCGATATGATCGATAT')
    nogc = design.primer(diff_template,
                         tm=72,
                         min_len=10,
                         tm_undershoot=1,
                         tm_overshoot=3,
                         end_gc=False,
                         tm_parameters='cloning',
                         overhang=None)
    withgc = design.primer(diff_template,
                           tm=72,
                           min_len=10,
                           tm_undershoot=1,
                           tm_overshoot=3,
                           end_gc=True,
                           tm_parameters='cloning',
                           overhang=None)
    assert_not_equal(nogc, withgc)
    # Should raise ValueError if it's impossible to create an end_gc primer
    end_at_template = DNA('ATGCGATACGATACGCGATATGATATATatatatat' +
                          'ATAAaaaaaaaaaattttttttTTTTTTTTTTTTTT' +
                          'TTTTTTTTTT')
    assert_raises(ValueError,
                  design.primer,
                  end_at_template,
                  end_gc=True,
                  tm=72)
Esempio n. 26
0
 def __init__(self):
     self.dna = DNA('ATGC') * 50
     self.apply_features()
Esempio n. 27
0
def test_stranded_complemented():
    ss_dna = DNA('atgc', stranded='ss')
    r_ss_dna = ss_dna.reverse_complement()
    assert_equal(r_ss_dna.top(), 'GCAT')
    assert_equal(r_ss_dna.bottom(), '----')
Esempio n. 28
0
def test_stranded_init():
    ss_dna = DNA('atgc', stranded='ss')
    assert_true(all([base == '-' for base in ss_dna.bottom()]))

    ds_dna = DNA('atgc')
    assert_equal(str(ds_dna), ds_dna.reverse_complement().bottom())
Esempio n. 29
0
 def test_ne(self):
     assert_true(self.test_dna != DNA('aagc'))
Esempio n. 30
0
 def test_eq(self):
     assert_true(self.test_dna == DNA('atgc'))