Статья Автор: Деникина Н.В., Деникин А.В.

Выравнивание последовательностей

Выравнивание последовательностей и BLAST (Basic Local Alignment Search Tool) — это два ключевых алгоритма в биоинформатике, которые используются для анализа и сравнения биологических последовательностей, таких как ДНК, РНК и белки. 

1. Выравнивание последовательностей

Выравнивание последовательностей — это процесс сопоставления двух или более последовательностей, чтобы выявить их сходства и различия. Это может помочь в определении функциональных, структурных или эволюционных связей между последовательностями.

Типы выравнивания:

  • Глобальное выравнивание: Сравнивает две последовательности по всей их длине. Используется, когда последовательности имеют схожую длину и нужно сопоставить их полностью. Алгоритм Нидлмана-Вунша (Needleman-Wunsch) — один из наиболее известных алгоритмов для глобального выравнивания.

  • Локальное выравнивание: Сравнивает подчасти двух последовательностей, чтобы найти наиболее схожие участки. Используется, когда последовательности могут иметь разные длины или содержать области, которые не имеют сходства. Алгоритм Смита-Уотермана (Smith-Waterman) — один из наиболее известных алгоритмов для локального выравнивания.

Алгоритмы:

  • Алгоритм Нидлмана-Вунша:

    • Использует динамическое программирование для вычисления матрицы выравнивания.
    • Заполняет матрицу, основываясь на оценках совпадений, несовпадений и штрафов за пропуски.
    • Позволяет получить оптимальное глобальное выравнивание.
  • Алгоритм Смита-Уотермана:

    • Также использует динамическое программирование, но фокусируется на локальных выравниваниях.
    • Позволяет находить наиболее схожие участки между последовательностями, игнорируя несоответствующие области.

Пример использования: В Biopython можно использовать модуль Bio.Align для выполнения выравнивания:

from Bio import Align
from Bio.Align import PairwiseAligner

# Создание объекта выравнивателя
aligner = PairwiseAligner()

# Установка параметров
aligner.mode = 'global'  # или 'local' для локального выравнивания

# Выравнивание последовательностей
alignment = aligner.align("AGTACACTGGT", "AGTACGCTGGT")

# Вывод результатов
print(alignment) 

2. BLAST (Basic Local Alignment Search Tool)

Описание: BLAST — это алгоритм, используемый для поиска локальных выравниваний между последовательностями. Он позволяет быстро находить участки сходства между заданной последовательностью и последовательностями в базе данных. BLAST является одним из самых популярных инструментов в биоинформатике.

Принцип работы:

  1. Разбиение на слова: BLAST разбивает входную последовательность на короткие подпоследовательности (обычно длиной 11-15 нуклеотидов для ДНК и 3-5 аминокислот для белков), называемые "словами".
  2. Поиск совпадений: Алгоритм ищет совпадения этих слов в базе данных последовательностей.
  3. Расширение выравнивания: Найденные совпадения расширяются в обе стороны, чтобы создать локальные выравнивания.
  4. Оценка значимости: BLAST вычисляет статистическую значимость найденных выравниваний, используя параметры E-value (значение E) и бит-оценку.

Типы BLAST:

  • blastn: для выравнивания нуклеотидных последовательностей.
  • blastp: для выравнивания белковых последовательностей.
  • blastx: для перевода нуклеотидной последовательности в белковую и поиска в базе данных белков.
  • tblastn: для поиска белковых последовательностей в переведенных нуклеотидных базах данных.
  • tblastx: для поиска переведенных нуклеотидных последовательностей в переведенных нуклеотидных базах данных.
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать