Answer
t.me/python_tesstОтвет:
Start
Объяснение:
На простой и практичной задаче мы сгенерировать все возможные k-меры последовательности ДНК при указанном значении k. В этом куске кода мы сгенерируем все возможные 13-мер. С точки зрения математики, здесь нужно применить метод подстановки. Следовательно, получаем ⁴¹³ (=67,108,864) возможных 13-меров. Для полноценного вывода необходимо "раскомитить" комментарий с двух строчек. Примечание. Для вывода всех k-мер потребуется много времени. При необходимости, воспользуйтесь CTRL+C для прекращения выполнения кода.
Код:
def convert(c):
if (c == 'A'): return 'C'
if (c == 'C'): return 'G'
if (c == 'G'): return 'T'
if (c == 'T'): return 'A'
print("Start")
opt = "ACGT"
s = ""
s_last = ""
len_str = 13
for i in range(len_str):
s += opt[0]
pos = 0
counter = 1
while (s != s_last):
counter += 1
# Чтобы вывести все k-меры, уберите комментарий со следующей строки.
# print(s)
change_next = True
for i in range(len_str):
if (change_next):
if (s[i] == opt[-1]):
s = s[:i] + convert(s[i]) + s[i+1:]
change_next = True
else:
s = s[:i] + convert(s[i]) + s[i+1:]
break
# Чтобы вывести все k-меры, уберите комментарий со следующей строки.
# print(s)
print("Number of generated k-mers: {}".format(counter))
print("Finish!")