Одна идея состоит в том, чтобы проверить, были ли предыдущие 5 нуклеотидов равны AACGT
, в этом случае выбрать только от ["A", "C", "G"]
.
from random import choice
def generate_seq(length, enzyme, bad_prefix="AACGT"):
list_dna = []
nucleotides = ["A", "C", "T", "G"]
i = 0
while i < 1000:
if list_dna[-5:] != bad_prefix:
nucleotide = choice(nucleotides)
else:
nucleotide = choice(["A", "C", "G"])
list_dna.append(nucleotide)
i = i + 1
dna = ''.join(str(nucleotide) for nucleotide in list_dna)
return dna
seq = generate_seq(1000, "AACGTT")
if len(seq) == 1000 and seq.count("AACGTT") == 0:
print(seq)