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'])
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'])
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'])
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')
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
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'])
#!/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)]
def test_apply_empty_enzyme(self): s = Strand('ACGT') e = Enzyme([]) final_strands = apply_enzyme(s, e) assert (final_strands[0].strand == 'ACGT')
def test_empty_strand(self): s = Strand('') e = Enzyme([AminoAcid('delete')]) final_strands = apply_enzyme(s, e) assert (final_strands[0] == s)
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)