Пример 3
В этом примере мы собираемся изменить схему оценки и назначить значения для совпадений, несовпадений и пропусков. Мы будем рассматривать те же две последовательности, что и раньше. Мы хотим узнать все возможныеглобальные выравниванияс максимальной оценкой сходства.
Соответствующие символы получают 2 балла, 1 балл вычитается за каждый несовпадающий символ. 0,5 балла вычитаются при открытии зазора, и 0,1 балла вычитаются при его расширении.
Фрагмент кода 3: Парное выравнивание последовательностей (глобальное с пользовательской оценкой)
Запустив код, мы можем получить все возможные глобальные выравнивания, как показано ниже на рисунке 7.
Рисунок 7: Вывод парной последовательности (глобальный с пользовательской оценкой)
Biopython — инструменты Python для вычислительной молекулярной биологии
Рисунок 4: Биопион (http://biopython.org)
В этой статье я собираюсь познакомить вас с набором инструментов, которые мы будем использовать для работы с биологическими данными с этого момента.Biopythonэто набор инструментов, написанных на Python, которые можно использовать для различных биологических вычислений, моделирования и анализа.
Вы можете скачать и установить Biopython сВот, Убедитесь, что у вас естьPython 2.7, 3.4, 3.5 или 3.6уже установлено. Вы можете отослатьБиопайт Учебник и Поваренная книгадля получения более подробной информации о том, что мы можем сделать и как использовать эти инструменты.
Алгоритм Нидлмана-Вунша
Одним из алгоритмов, который использует динамическое программирование для получения глобального выравнивания, являетсяАлгоритм Нидлмана-Вунша, Этот алгоритм был опубликованNeedlemanа такжеВунчв 1970 году для выравнивания двух белковых последовательностей, и это было первое применение динамического программирования для анализа биологических последовательностей. Алгоритм Нидлмана-Вунша обнаруживает наилучшее глобальное выравнивание между двумя последовательностями.
Местное выравнивание
В этом методе мы рассматриваем подпоследовательности в каждой из 2 последовательностей и пытаемся сопоставить их, чтобы получить наилучшее выравнивание.
Например, рассмотрим 2 последовательности как X = GGTCTGATG и Y = AAACGATC. Символы, выделенные жирным шрифтом, являются подпоследовательностями, которые необходимо учитывать. Лучшее местное выравнивание,
CTGAT (in X)| |||C-GAT (in Y)
Здесь одинразрыввводится для того, чтобы соответствовать 2 подпоследовательности
Если мы установим схему оценки каксчет матча = 1,оценка несоответствия = 0а такжештраф за пробел = 0, тогда общая оценка для вышеупомянутого выравнивания будет,
Score = nMatch x 1 + nMismatch x 0 + nGap x 0 = 4x1 + 0x0 + 1x0 = 4
Bio.pairwise2 — Pвыравнивание последовательности по воздуху с использованием динамического программирования
Давайте попробуем немного кодирования для симуляции парного выравнивания последовательностей с использованием Biopython. Я буду использоватьpairwise2модуль, который можно найти вBioпакет. Этот модуль обеспечиваетфункции выравниваниячтобы получить глобальные и локальные выравнивания между двумя последовательностями.
Имена функций выравнивания следуют соглашению;
<alignment type>XX
гделибоГлобальныйилиместныйа такжеXX2-х символьный код, обозначающий необходимые параметры Первый символ указывает параметры для совпадений (и несоответствий), а второй — параметры для штрафов за пропуски.
параметры соответствияявляются:
CODE DESCRIPTIONx No parameters. Identical characters have score of 1, else 0.m A match score is the score of identical chars, else mismatch score.d A dictionary returns the score of any pair of characters.c A callback function returns scores.
параметры штрафного зазораявляются:
CODE DESCRIPTIONx No gap penalties.s Same open and extend gap penalties for both sequences.d The sequences have different open and extend gap penalties.c A callback function returns the gap penalties.
Давайте попробуем несколько примеров выравнивания парных последовательностей, используяBio.pairwise2модуль.