Практикум 9: Выравнивание последовательностей

Мисюрёва Анастасия | Факультет биоинженерии и биоинформатики МГУ

Задание 1. Программа подсчёта инделей

Назначение программы

Программа indels.py предназначена для анализа результатов глобального (needle) или локального (water) выравнивания двух последовательностей. Она подсчитывает количество инделей — непрерывных блоков гэпов (-) — в каждой из двух выровненных последовательностей и выводит суммарный результат.

Использование

python indels.py <файл с выравниванием>

Программа не требует дополнительного ввода от пользователя.

Исходный код

import sys

def count_indels(seq):
    count = 0
    in_gap = False
    for c in seq:
        if c == '-':
            if not in_gap:
                count += 1
                in_gap = True
        else:
            in_gap = False
    return count

with open(sys.argv[1]) as f:
    lines = [line.strip() for line in f if line.strip()]

name1, seq1 = lines[0], lines[1]
name2, seq2 = lines[2], lines[3]

i1 = count_indels(seq1)
i2 = count_indels(seq2)

print(f"{name1} {i1}")
print(f"{name2} {i2}")
print(f"Total {i1 + i2}")

Алгоритм работы

  1. Чтение файла: Программа открывает файл, переданный в командной строке, и считывает все непустые строки.
  2. Извлечение данных: Предполагается, что в файле строки расположены в строгом порядке:
    • Строка 0 — название первой последовательности
    • Строка 1 — выровненная последовательность 1
    • Строка 2 — название второй последовательности
    • Строка 3 — выровненная последовательность 2
  3. Подсчёт инделей: Функция count_indels проходит по символам последовательности:
    • При встрече символа - (гэп) и если это начало блока гэпов, счётчик увеличивается на 1
    • При встрече не-гэпа флаг "внутри гэпа" сбрасывается
    • Таким образом, каждый непрерывный блок гэпов считается как один индель
  4. Вывод результатов: Программа печатает три строки:
    • Название первой последовательности и число инделей в ней
    • Название второй последовательности и число инделей в ней
    • Слово Total и суммарное число инделей

Задание 2. Глобальное и локальное выравнивание гомологичных белков

Глобальное выравнивание (needle)

Protein NameID 1ID 2Score% Identity% SimilarityGapsIndels
Chaperone protein DnaKDNAK_ECOLIDNAK_BACSU1767.055.4%72.9%333
DNA gyrase subunit AGYRA_ECOLIGYRA_BACSU2227.050.7%68.6%725
DNA-directed RNA polymerase subunit betaRPOB_ECOLIRPOB_BACSU3034.042.5%55.5%4337

Локальное выравнивание (water)

Protein NameID 1ID 2Score% Identity% SimilarityGapsIndelsCoverage 1Coverage 2
Chaperone protein DnaKDNAK_ECOLIDNAK_BACSU1767.055.8%73.3%30299.7%99.2%
DNA gyrase subunit AGYRA_ECOLIGYRA_BACSU2228.052.6%71.3%38296.1%98.9%
DNA-directed RNA polymerase subunit betaRPOB_ECOLIRPOB_BACSU3039.043.7%57.0%396699.5%96.5%

Задание 4. Комментарии к выравниваниям

Введение

В рамках выполнения задания были проведены глобальное (программа needle) и локальное (программа water) выравнивания трёх пар гомологичных белков: DNAK, GYRA и RPOB из Escherichia coli (штамм K12) и Bacillus subtilis (штамм 168).

1. Пара DNAK (шаперон DnaK)

Гомологичны ли белки по всей длине? Да, белки демонстрируют высокую степень гомологии по всей длине. Глобальное выравнивание покрывает 100% обеих последовательностей, локальное — 99.7% и 99.2% соответственно. Идентичность последовательностей составляет около 55%, что характерно для консервативных белков теплового шока.

Информативно ли локальное выравнивание? Локальное выравнивание даёт практически идентичные результаты глобальному. Различия минимальны: идентичность выше на 0.4%, количество гэпов меньше на 3. Оба метода одинаково информативны.

2. Пара GYRA (ДНК-гираза, субъединица A)

Гомологичны ли белки по всей длине? Не полностью. Глобальное выравнивание показывает наличие 72 гэпов (8.1% от длины выравнивания). Локальное выравнивание покрывает только 96.1% белка E. coli, около 4% последовательности не участвует в выравнивании.

Информативно ли локальное выравнивание? Да, локальное выравнивание значительно информативнее. Оно позволяет отбросить плохо выравнивающиеся концевые участки и сфокусироваться на консервативных доменах.

3. Пара RPOB (РНК-полимераза, субъединица beta)

Гомологичны ли белки по всей длине? Частично. Это самый большой и наименее консервативный белок из трёх. Глобальное выравнивание показывает огромное количество гэпов — 433 (29.2% от длины выравнивания).

Информативно ли локальное выравнивание? Крайне информативно. Разница в количестве гэпов составляет 37, что является существенным сокращением.

Общие выводы

Все три пары белков являются гомологичными. Локальное выравнивание наиболее информативно для белков с выраженной доменной структурой (GYRA, RPOB). Глобальное выравнивание предпочтительно для оценки общей гомологии и эволюционных расстояний. Чем больше белок и чем выше его вариабельность, тем больше разница между двумя методами.

Задание 5. Результат применения программ выравнивания к неродственным белкам

Выбор пары: DNAK_ECOLI (шаперон DnaK) и GYRA_BACSU (ДНК-гираза). Эти белки выполняют разные функции и не имеют эволюционного родства.

Результаты глобального выравнивания (needle)

Score% Identity% SimilarityGaps
93.515.5%28.5%419/939 (44.6%)

Результаты локального выравнивания (water)

Score% Identity% SimilarityGaps
108.018.6%34.9%206/565 (36.5%)

Сравнение с гомологичными парами

ПараметрГомологичная пара (DNAK)Неродственная пара (DNAK vs GYRA)
Score (needle)1767.093.5
% Identity (needle)55.4%15.5%
Gaps (needle)33 (5.1%)419 (44.6%)

Выводы

  1. Глобальное выравнивание хорошо отличает родственные белки от неродственных: у родственных белков Score ~1700, идентичность ~55%, гэпы ~5%; у неродственных Score ~90, идентичность ~15%, гэпы ~45%.
  2. Положительный score не означает гомологию: у неродственных белков score тоже положительный, но на порядок ниже.
  3. Простые критерии: Score > 500, идентичность > 25%, гэпы < 15% — вероятно родственны.
  4. Локальное выравнивание может обманывать: water показал для неродственных белков результаты лучше, чем needle, так как ищет только лучший кусок.

Задание 6. Множественное выравнивание

(а) Мнемоника и информация о белках

Мнемоника: DNAK
Рекомендованное полное имя белка из ECOLI: Chaperone protein DnaK (Heat shock protein 70)
Количество найденных белков: по запросу id:DNAK* AND reviewed:true найдена 801 запись (включая изоформы и фрагменты). Уникальных белков с разными суффиксами организмов – около 25.

Выбранные 5 белков (помимо DNAK_ECOLI и DNAK_BACSU):

IDОрганизм
1DNAK_MYCTUMycobacterium tuberculosis
2DNAK_AQUAEAquifex aeolicus
3DNAK_BORBUBorrelia burgdorferi
4DNAK_HELPYHelicobacter pylori
5DNAK_STAA8Staphylococcus aureus

(б) Как делалось выравнивание

Семь последовательностей в формате FASTA были объединены в один файл. Множественное выравнивание выполнено с помощью программы Muscle из командной строки:

muscle -align dnaK_7.fasta -output alignment_pr9.fa

Полученное выравнивание в формате FASTA загружено в программу Jalview через File → Input Alignment → From File. В Jalview закрыты все лишние окна, применена раскраска колонок по проценту идентичности (Colour → Percentage Identity).

(в) Гиперссылка на файл с проектом Jalview

Ссылка на файл выравнивания alignment_pr9.fa (Google Диск)

(г) Комментарии к выравниванию

Все ли белки хорошо выровнялись? Да, все 7 последовательностей выровнялись хорошо. Белок DnaK (Hsp70) является высококонсервативным, поэтому даже эволюционно далёкие представители имеют чёткую структуру выравнивания.

Все ли они гомологичны? Да, все представленные белки являются гомологичными. Они принадлежат к одному семейству белков теплового шока 70 кДа.

Выраженная структура выравнивания:


Практикум 9. Выравнивание последовательностей | Мисюрёва Анастасия | 2026