A | B | C | D | E | F | |
α | . | * | * | . | . | . |
β | . | . | . | * | * | * |
γ | . | . | . | . | * | * |
Исходный ген (my_gen.fasta) - 621 нуклеотидов
Пересчет эволюционных растояний на число мутаций в моем гене был осуществлен по формуле:
(X/100)*621,
где X - длина ветви.
Для создания мутантов используется программа msbar:
msbar infile outfile -point 4 -count n -auto,
где n - число мутаций, характеризующее какую-либо ветвь дерева, в пересчете на мой ген.
Команды получения всех необходимых последовательностей описаны в скрипте:
msbar my_gen.fasta ABC.fasta -point 4 -count 248 -auto msbar ABC.fasta BC.fasta -point 4 -count 81 -auto msbar ABC.fasta A.fasta -point 4 -count 311 -auto msbar BC.fasta B.fasta -point 4 -count 230 -auto msbar BC.fasta C.fasta -point 4 -count 230 -auto msbar coae_gen.fasta DEF.fasta -point 4 -count 248 -auto msbar DEF.fasta EF.fasta -point 4 -count 93 -auto msbar DEF.fasta D.fasta -point 4 -count 373 -auto msbar EF.fasta E.fasta -point 4 -count 279 -auto msbar EF.fasta F.fasta -point 4 -count 279 -auto cat A.fasta >> allmut.fasta cat B.fasta >> allmut.fasta cat C.fasta >> allmut.fasta cat D.fasta >> allmut.fasta cat E.fasta >> allmut.fasta cat F.fasta >> allmut.fastaКоманда "cat" дописывает содержимое файлов *.fasta в конец выбранного файла (allmut.fasta).
Использовалась команда:
fdnaml allmut.fasta -ttratio 1 -auto
В результате мы получили неукорененное дерево следующего вида:
+-----------F +---4 +-----------------3 +----------E | | | +-----------D | | +--------B 2--1 | +---------C | +------------A
Для проведения операции требовалось посчитать попарные расстояния между последовательностями программой fdnadist:
fdnadist allmut.fasta -ttratio 1 -auto
Получившийся файл уже даем на вход непосредственно программе реконструкции дерева:
fneighbor allmut.fdnadist -auto
Результаты приведены ниже:
+--------B +-3 ! +----------C ! ! +-----------D 4-------------------2 ! ! +----------E ! +---1 ! +-----------F ! +------------A
Для работы данной программы также необходим файл подсчета попарных расстояний.
Работа программы по заданному алгоритму осуществляется с данной команды:
fneighbor allmut.fdnadist -treetype u -auto
Результат:
+-----------------------A +--------------------3 ! ! +------------------B ! +----1 --5 +------------------C ! ! +--------------------------D +-----------------4 ! +----------------------E +---2 +----------------------F
В качестве сравнения эффективности работы программ приводится таблица, где показано наличие тех или иных ветвей в различных вариантах
построения одного (правильного) дерева. Звездочками и точками обозначены множества ветвей, которые представлены
во всех 4-х деревьях. Плюсиком отмечается наличие данного множества ветвей у дерева.
A | B | C | D | E | F | правильное дерево | I дерево | II дерево | III дерево |
. | . | . | * | * | * | + | + | + | + |
. | * | * | . | . | . | + | + | + | + |
. | . | . | . | * | * | + | + | + | + |
Программы полностью справились с задачей. Результаты оказались максимальными. Все три дерева по топологии совпали с реальным.
Необходимо провести бутстреп-анализ выравнивания мутированных последовательностей,
соответствующих листьям моего (правильного) дерева.
Сначала с помощью команды:
fseqboot allmut.fasta -auto
программой fseqboot создаю 100 бутстреп-реплик выравнивания. Затем подаю эти выравнивания на вход
программе fdnaml:
fdnaml allmut.fseqboot -ttratio 1 -auto.
После всего вывожу результаты бутстреп-анализа с помощью программы fconsense:
fconsense allmut.treefile.
Результаты.
Множества ветвей и число их встречаемости:
A B C D E F . . . * * * 100.00 . . . . * * 90.00 * . . * * * 45.00Консенсусное дерево:
+------F +-90.0-| +100.0-| +------E | | +-45.0-| +-------------D | | +------| +--------------------A | | | +---------------------------B | +----------------------------------CРезультаты полностью подтверждают структуру и расположение множеств ветвей реального дерева. Очень хорошие показатели выявлены для множеств (ABC/DEF) и (ABCD/EF). Они встретились в 100 и 90 бутстреп-репликах выравнивания соответственно. Для множества (ADEF/BC) данный показатель имеет среднее значение.
Изображение получено с помощью команды:
fdrawtree sk.form sk_form.ps,
где sk.form - скобочная формула дерева.
Данное изображение топологически полностью соответствует дереву, которое нужно было нарисовать
вручную.