def test_pattern_and_reverse(): bsmbi = "CGTCTC" bsmbi_rev = "GAGACG" sequence = 10 * bsmbi + 25 * bsmbi_rev + 15 * bsmbi + 15 * bsmbi_rev problem = DnaOptimizationProblem(sequence, constraints=[AvoidPattern('BsmBI_site')], objectives=[AvoidChanges()]) problem.resolve_constraints() problem.optimize() assert sum(problem.sequence_edits_as_array()) < 70
def test_AvoidRareCodons_as_constraint(): numpy.random.seed(123) sequence = "ATG" "TTT" "ATA" "CCA" "CTT" "TAG" problem = DnaOptimizationProblem( sequence=sequence, constraints=[EnforceTranslation(), AvoidRareCodons(0.11, "e_coli")], ) assert problem.all_constraints_pass() assert problem.sequence_edits_as_array().sum() == 4 assert translate(problem.sequence) == translate(sequence)
def test_AvoidRareCodons_as_constraint_reversed(): numpy.random.seed(123) sequence = "ATG" "TTT" "ATA" "CCA" "CTT" "TAG" rev_sequence = reverse_complement(sequence) location = (0, len(sequence), -1) problem = DnaOptimizationProblem( sequence=rev_sequence, constraints=[ EnforceTranslation(location=location), AvoidRareCodons(0.11, "e_coli", location=location), ], ) assert problem.all_constraints_pass() assert problem.sequence_edits_as_array().sum() == 4 new_sequence = reverse_complement(problem.sequence) assert translate(new_sequence) == translate(sequence)