Алгоритмы филогенетической реконструкции

В предыдущем практикуме мною были выбраны 15 организмов. Для них было построенно филогенетическое дерево, основанное на таксономии.

В рамках этого практикума разными способами были построены ещё 3 дерева, основанные на последовательности белка цитохрома b.

Подготовка данных

Первым делом были получены последовательности белков выбранных организмов:

# Получение последовательностей белка цитохрома b
seqret @cyb.list cyb.fasta

Тут файл cyb.list состоит из строк вида:

sw:cyb_brapc
sw:cyb_pargo
sw:cyb_loxaa
...

Далее белки последовательности (файл cyb.fasta) были выровнены с помощью программы muscle:

# Выравнивание с помощью muscle
muscle -align cyb.fasta -output cyb-alignment.fasta

Далее я посмотрел выравнивания с помощью less, и они оказались нормальными.

Далее необходимо было перевести формат файла в .phy для построения дерева. Для этого был использован скрипт:

# Содержимое файла fasta2phy.py
from Bio import AlignIO
in_file = open("cyb-alignment.fasta", "r")
out_file = open("cyb.phy", "w")
alignment = AlignIO.parse(in_file, "fasta")
AlignIO.write(alignment, out_file, "phylip-relaxed")
in_file.close()
out_file.close()
# Приминение скрипта
python fasta2phy.py

В итоге был получен файл cyb.phy с выравниваниями в нужном формате.

Построение дерева с помощью модели p-distance

Для начала было построено дерево алгоритмом fastme с расчётом расстояний через модель p-distance (число ошибок делить на длину):

# Дерево с помощью p-distance
fastme -i cyb.phy -o cyb_p_dist.tree -pp-distance

Было получено дерево (рис. 1)

p-dist
Рисунок 1. Дерево, построенное с помощью алгоритма fastme, модели p-distance. Укоренение проводилось вручную, опираясь на таксономическое дерево. Зелёные горизонтальные линии говорят о правильности состава клад. Красным и оранжевым прямоугольниками показаны организмы, которые оказались не в той кладе, в которой должны были быть. Фиолетовым отмечен организм, который располагается не в своей кладе и более базально, чем должен.

Это дерево похоже на таксономическое, однако есть ряд различий:

Построение дерева с помощью модели MtREV

Модель MtREV (Mitochondrial Reverse) используется для расчёта эволюционных расстояний и построения филогенетических деревьев митохондриальных белков. Она учитывает специфические частоты аминокислотных замен, характерные для митохондрий. Алгоритм построения - fastme.

# Дерево с помощью MtREV
fastme -i cyb.phy -o cyb_p_dist.tree -pMtREV

Было получено дерево (рис. 2)

MtREV
Рисунок 2. Дерево, построенное с помощью алгоритма fastme, модели MtREV. Укоренение проводилось вручную, опираясь на таксономическое дерево. Зелёные горизонтальные линии говорят о правильности состава клад. Красным и оранжевым прямоугольниками показаны организмы, которые оказались не в той кладе, в которой должны были быть. Фиолетовым отмечены организм, которые перепутаны местами. Салатовым обозначено "условно" правильная клада.

Дерево полученное этим способом кажется более правильным, он также есть неточности:

Построение дерева с помощью программы IQ-Tree

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

# Дерево с помощью IQ-Tree
iqtree -s cyb.phy

Было получено дерево (рис. 3)

IQ-Tree
Рисунок 3. Дерево, построенное с помощью программы IQ-Tree. Укоренение проводилось вручную, опираясь на таксономическое дерево. Зелёные горизонтальные линии говорят о правильности состава клад. Красным, оранжевым, фиолетовым, голубым, синим прямоугольниками показаны организмы, которые оказались не в той кладе или не в том месте.

Это дерево, по моему мнению, самое неудачное:

Во всех случаях наблюдается проблема с LOXAA и RHISA, а также часто проблемы с PARGO. Интересно изучить, почему это так.