У меня есть функция, которая принимает две строки, представляющие ДНК (в форме "ACGT"
), причем каждая буква представляет различное основание. Я хотел бы проверить количество мутаций, которые должны были произойти, чтобы одна стала другой.
Типы мутаций, которые я хочу рассмотреть:
- Замена: где одна база заменена другой
- Вставка: где база вставлена в последовательность
- Удаление: где база удалена из последовательности
Я могу заставить каждую из этих трех вещей работать индивидуально, но проблема, с которой я сталкиваюсь, заключается в возможности протестировать все три сразу.
Например, код, который я написал для проверки замен, будет учитываться все основания в случае вставки / делеции мутации.
Какой алгоритм мне понадобится, чтобы найти минимальное количество мутаций в go между двумя последовательностями ДНК?