Выравнивание последовательностей — это процесс сравнения двух биологических последовательностей (например, ДНК, РНК или белков) для выявления областей сходства, которые могут указывать на функциональные, структурные или эволюционные связи.
Существует два основных типа выравнивания:
- Глобальное выравнивание: Сравниваются последовательности по всей их длине. Применяется, если последовательности примерно одинаковой длины и ожидается их полное соответствие.
- Локальное выравнивание: Выравниваются наиболее похожие подстроки внутри двух последовательностей. Используется для поиска областей сходства внутри длинных или сильно различающихся последовательностей.
2. Модуль pairwise2
Модуль pairwise2
из библиотеки Biopython предоставляет инструменты для выполнения как локального, так и глобального выравнивания последовательностей с использованием матричного подхода.
3. Глобальное выравнивание
В глобальном выравнивании обе последовательности сравниваются по всей длине, включая вставки и пропуски (гэпы), чтобы добиться наилучшего совпадения.
Пример задачи
Основной алгоритм
Для глобального выравнивания часто используется алгоритм Нидлмана-Вунша. Он строит матрицу баллов, где сравниваются все возможные пары символов, и выбирается оптимальный путь.
Применение
- Анализ эволюционной связи между видами.
- Сравнение генов с высокой степенью консервативности.
4. Локальное выравнивание
В локальном выравнивании идентифицируются самые похожие участки двух последовательностей. Несовпадающие участки вне этих областей игнорируются.
Пример задачи
Основной алгоритм
Для локального выравнивания используется алгоритм Смита-Ватермана. Он аналогичен алгоритму Нидлмана-Вунша, но в результате возвращает только те области, которые показывают наибольшее сходство.
Применение
- Поиск гомологичных областей в геномах.
- Анализ функциональных доменов белков.
5. Взвешивание совпадений, гэпов и замен
Оба алгоритма используют систему весов для определения качества выравнивания:
- Совпадение (match): Положительный балл, если символы совпадают.
- Замена (mismatch): Отрицательный балл за несовпадение.
- Гэп (gap): Отрицательный балл за вставку или удаление символа.
Баллы задаются пользователем или берутся из стандартных таблиц (например, матрицы PAM или BLOSUM для белков).
6. Использование pairwise2
Основные функции модуля:
pairwise2.align.globalxx(seq1, seq2)
: Глобальное выравнивание с фиксированным весом для совпадений и замен.
pairwise2.align.globalms(seq1, seq2, match, mismatch, gap_open, gap_extend)
: Глобальное выравнивание с заданными весами.
pairwise2.align.localxx(seq1, seq2)
: Локальное выравнивание с фиксированным весом.
pairwise2.align.localms(seq1, seq2, match, mismatch, gap_open, gap_extend)
: Локальное выравнивание с заданными весами.
7. Примеры
Пример 1: Глобальное выравнивание
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
seq1 = "GATTACA"
seq2 = "GCATGCU"
# Глобальное выравнивание
alignments = pairwise2.align.globalxx(seq1, seq2)
# Печать всех выравниваний
for alignment in alignments:
print(format_alignment(*alignment))
Пример результата:
G-ATTA-CA-
| | | |
GCA-T-GC-U
Score=4
Пример 2: Локальное выравнивание
from Bio import pairwise2
from Bio.pairwise2 import format_alignment
seq1 = "GATTACA"
seq2 = "TAGACCA"
# Локальное выравнивание
alignments = pairwise2.align.localxx(seq1, seq2)
# Печать всех выравниваний
for alignment in alignments:
print(format_alignment(*alignment))
Пример результата:
4 TA--C-A
|| | |
1 TAGACCA
Score=4