Answer

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!")


Report Page