Ejemplo n.º 1
0
    def test_swi_swi(self):
        """
                     v
        Secondary: ....
        Primary:   ACGT
                     ^
        Copy mode: False
        cop
                     v
        Secondary: ..C.
        Primary:   ACGT
                     ^
        Copy mode: True
        swi
                    v
        Secondary: TGCA
        Primary:   .C..
                    ^
        Copy mode: True
        swi
                     v
        Secondary: ..C.
        Primary:   ACGT
                     ^
        """
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('cop'), AminoAcid('swi'), AminoAcid('swi')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ACGT', 'C'])
Ejemplo n.º 2
0
    def test_cop_mvl(self):
        """
                     v
        Secondary: ....
        Primary:   ACGT
                     ^
        Copy mode: False
        mvr
                      v
        Secondary: ....
        Primary:   ACGT
                      ^
        Copy mode: False
        cop
                      v
        Secondary: ...A
        Primary:   ACGT
                      ^
        Copy mode: True
        mvl
                     v
        Secondary: ..CA
        Primary:   ACGT
                     ^
        Copy mode: True
        ['AC', 'ACGT']
        """
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('mvr'), AminoAcid('cop'), AminoAcid('mvl')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['AC', 'ACGT'])
Ejemplo n.º 3
0
    def test_mvl_complement_none(self):
        s = Strand('TCCGCAATTT')

        e = strand_to_enzymes(s)[0]
        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['GC', 'TCCGCAATTT'])
Ejemplo n.º 4
0
    def test_apply_enzyme_ACA(self):
        s = Strand('ACA')
        e = Enzyme([AminoAcid('delete'), AminoAcid('mvr'), AminoAcid('int')])
        final_strands = apply_enzyme(s, e)

        assert (isinstance(final_strands[0], Strand) == True)
        assert (final_strands[0].strand == 'CAT')
Ejemplo n.º 5
0
    def test_inc_cop(self):
        """
                   v
        Secondary: ....
        Primary:   ACGT
                   ^
        Copy mode: False
        cop
                   v
        Secondary: T...
        Primary:   ACGT
                   ^
        Copy mode: True
        inc
                   v
        Secondary: TG...
        Primary:   ACCGT
                   ^
        Copy mode: True
        ['ACCGT', 'GT']
        """
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('cop'), AminoAcid('inc')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ACCGT', 'GT'])
Ejemplo n.º 6
0
    def test_del_gap(self):
        """
        delete
                              v
        Secondary: ........CCCC.
        Primary:   ACGTGGGGGG.GG
                              ^
        """
        s = Strand('ACGTGGGGGGGGG')

        e = Enzyme([
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('cop'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvl'),
            AminoAcid('delete')
        ])
        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ACGTGGGGGG', 'CCCC', 'GG'])
Ejemplo n.º 7
0
    def test_delete(self):
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('delete')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['CGT'])
Ejemplo n.º 8
0
    def test_apply_longer_enzyme(self):
        s = Strand('CAAAGAGAATCCTCTTTGAT')
        e = Enzyme([AminoAcid('rpy'), AminoAcid('cop'), AminoAcid('rpu')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])

        assert (strand_strs == ['CAAAGAGAATCCTCTTTGAT', 'CAAAGAGGA'])
Ejemplo n.º 9
0
    def test_ing_cop(self):
        """
                   v
        Secondary: ....
        Primary:   ACGT
                   ^
        Copy mode: False
        cop
           v
        Secondary: T...
        Primary:   ACGT
                   ^
        Copy mode: True
        off
                   v
        Secondary: T...
        Primary:   ACGT
                   ^
        Copy mode: False
        mvr
                    v
        Secondary: T...
        Primary:   ACGT
                    ^
        Copy mode: False
        mvr
                     v
        Secondary: T...
        Primary:   ACGT
                     ^
        Copy mode: False
        cop
                     v
        Secondary: T.C.
        Primary:   ACGT
                     ^
        Copy mode: True
        ing
                     v
        Secondary: T.CC.
        Primary:   ACGGT
                     ^
        Copy mode: True
        ['ACGGT', 'CC', 'T']
        """
        s = Strand('ACGT')
        e = Enzyme([
            AminoAcid('cop'),
            AminoAcid('off'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('cop'),
            AminoAcid('ing')
        ])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ACGGT', 'CC', 'T'])
Ejemplo n.º 10
0
    def test_delete_outofbounds(self):
        s = Strand('ACGT')
        e = Enzyme([
            AminoAcid('mvr'),
            AminoAcid('delete'),
            AminoAcid('delete'),
            AminoAcid('delete'),
            AminoAcid('inc')
        ])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['A'])
Ejemplo n.º 11
0
    def test_swi_none(self):
        """
                   v
        Secondary: ....
        Primary:   ACGT
                   ^
        """
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('swi')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ACGT'])
Ejemplo n.º 12
0
    def test_cut(self):
        """
                   v
        Secondary: ....
        Primary:   ACGT
                   ^
        Copy mode: False
        cut
                   v
        Secondary: .
        Primary:   A
                   ^
        Copy mode: False
        ['A', 'CGT']
        """
        s = Strand('ACGT')
        e = Enzyme([AminoAcid('cut')])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['A', 'CGT'])
Ejemplo n.º 13
0
    def test_book_example(self):
        s = Strand('TAGATCCAGTCCATCGA')
        e = Enzyme([
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid('mvr'),
            AminoAcid(
                'mvr'
            ),  # some extra movements to lineup with the known example
            AminoAcid('rpu'),
            AminoAcid('inc'),
            AminoAcid('cop'),
            AminoAcid('mvr'),
            AminoAcid('mvl'),
            AminoAcid('swi'),
            AminoAcid('lpu'),
            AminoAcid('int')
        ])

        final_strands = apply_enzyme(s, e)
        strand_strs = sorted([strand.strand for strand in final_strands])
        assert (strand_strs == ['ATG', 'TAGATCCAGTCCACATCGA'])
Ejemplo n.º 14
0
#!/usr/bin/env python

from typogenetics.strand import Strand
from typogenetics.ribosomes import strand_to_enzymes
from typogenetics.manipulation import apply_enzyme

if __name__ == '__main__':
    # example strand
    strand = Strand('TAGATCCAGTCCACTCGA')

    # apply the ribosomes (which can produce more than one enzyme)
    enzymes = strand_to_enzymes(strand)

    # here, we'll apply all the enzymes to the original strand
    daughter_strands = []
    for enzyme in enzymes:
        print "Next enzyme:"
        print enzyme
        print
        print "Operations:"
        print
        daughter_strands.extend(apply_enzyme(strand, enzyme, verbose=True))

    print
    print "----------"
    print "Resulting strands"
    print "----------"
    print[strand.strand for strand in set(daughter_strands)]
Ejemplo n.º 15
0
 def test_apply_empty_enzyme(self):
     s = Strand('ACGT')
     e = Enzyme([])
     final_strands = apply_enzyme(s, e)
     assert (final_strands[0].strand == 'ACGT')
Ejemplo n.º 16
0
 def test_empty_strand(self):
     s = Strand('')
     e = Enzyme([AminoAcid('delete')])
     final_strands = apply_enzyme(s, e)
     assert (final_strands[0] == s)
Ejemplo n.º 17
0
 def test_no_binding(self):
     s = Strand('GGG')
     e = strand_to_enzymes(s)[0]
     final_strands = apply_enzyme(s, e)
     assert (final_strands[0] == s)