На главную


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

1. Подготовка к обработке

Для построения филогенетических деревьев можно использовать пакет PHYLIP [1], установленный на kodomo. Для начала выровненные последовательности нужно обработать с помощью fprotdist и fneighbor, параметры которых можно варьировать с помощью командной строки.

Программа fprotdist на вход получает файл, содержащий выровненные последовательности, а на выход выдает файл с матрицей расстояний. Дополнительные опции включают в себя возможность задания параметров для построения замещающей модели ( число категорий, коэффициент замещения и другие), матрицу весов, алгоритм подсчета (JTT, PMB, PAM, Kimura formula, Similarity table, Categories model). Кроме того можно выбрать таблицу генетического кода (если последовательности нуклеотидные), а также задать базые частоты встречаемости нуклеотидов. Во время работы программа выводит на экран информацию о протекающем процессе, что позволяет следить за его протеканием.

Программа fneighbor на вход получает матрицу расстояний, полученную предыдущей программой, а на выход файл, содержащий скобочную формулу дерева. В дополнительных параметрах можно задать тип входной матрицы (-matrix; s -квадратная, u и l - треугольные), алгоритм построения (n - Neighbor-joining, u - UPGMA, по умолчанию стоит параметр n). Также можно задать число сестринских групп (-outgrno) и перемешать входной порядок видов (-jumble). По умолчанию программа на выходе выдает два файла: один с отчетом о работе, его название мы задаем и второй - в формете .treefile, содержащий скобочную формулу дерева. Если поставить флаг -notrout, то файла со скобочной формулой дерева выдаваться не будет.

2. Построение деревьев

Для визуализации скобочной формулы можно использовать программы fdrawtree и fdrawgram. Их так же можно вызывать с помощью командной строки, однако важно помнить, что нужно поставить значение флага -previewer n если работаешь дистанционно. Этот флаг позволяет варьировать выбор программы, с помощью которой происходит предпросмотр получаемой картинки. Значение флага "n" позволяет не предпросматривать эскиз картинки, а сразу получать файл с рисунком.

Fdrawtree (она строит неукорененные деревья). На вход получает файл со скобочной формулой дерева, а на выход выдает графическую визулизацию этого дерева. Флаг -plotter позволяет указать, в каком формате должен быть выдан файл (PPF, PICT, PCL и прочие). Кроме того, можно добавить свой формат файла (если вставить свой код). По умолчанию картинка выдается в формате ps. Эти файлы можно либо открывать с помощью специальный программ, либо конвертировать, например в pdf программой ps2pdf.
а) Подписи картинки. С помощью флага -labeldirection можно настроить положения подписей (a около ветвей, f фиксированный, r по кругу, m посередине), а с помощью флага -labelrotation - величину их поворота. Кроме того можно использовать другой шрифт для подписей на рисунке, если добавить с помощью флага -fontfile ссылку на файл, содержащий шрифт (см. Рисунок 1).

Рисунок 1. Пример изображений, полученных с помощью программы fdrawtree. А - фиксированное расположение подписей, В - по длине ветвей. Также варьировались параметры arc и treeangle

б) Расположение дерева на рисунке. Флаг -treeangle позволяет настроить величину углов между ветвями деревьев (по умолчанию стоит параметр 90.0). Флаг -arc позволяет настроить величину угла, который занимает дерево (по умолчанию -все пространство, 360.0). С помощью флага -treedepth можно настроить отношение высоты к ширине дерева (принимаются значения от 0.100 до 100.00). Также настраиваются вертикальные и горизонтальные отступы (-xmargin, -ymargin в сантиметрах, -xrayshade и yrayshade в пикселях). Кроме того общий вид дерева может быть построен с помощью двух алгоритмов (флаг -iterate, пример: Рисунок 2): Equal-Daylight algorithm (e, стоит по умолчанию), в основе которого лежит перемещение по узлам получаемого дерева и настраивание "поддеревьев" таким образом, чтобы все видимые ветви были одинаковыми и n-Body algorithm (b, он представляет все объекты как "электрические заряды", сила притяжения которых пропорциональна площади между ними, алгоритм работает до тех пор, пока силы не будут уравновешены). Автор пакета предпочитает первый вариант второму, так как во втором алгоритме возможно перекрещивание ветвей дерева.
в) Размер рисунка. С помощью флагов -paperx и -papery настраиваются высота и ширина картинки.
г) Расположение нескольких деревьев на одном рисунке.Если в входном файле расположено несколько деревьев, то можно настроить то, как они будут расположены на рисунке (сколько деревьев по горизонтали и по вертикали с помощью флагов -pageswidth и -pagesheight).

Рисунок 2. Реализация различных алгоритмов построения изображения. А - Equal-Daylight algorithm,
В - n-Body algorithm


Для построения укорененных деревьев используется программа fdrawgram . Она имеет параметры, аналогичные предыдущей программе и несколько дополнительных.
а) Внешний вид дерева.Можно вырастит дерево горизонтально (по умолчанию) или вертикально, поставив флаг -nogrows. Кроме того с помощью флага -style можно настроить стиль дерева, с - V-образное, p - квадратное, e - расходящееся, s - возвращающееся и o - круглое (cм. Рисунок 2).
б) Относительная длина ветвей. С помощью флага -bscale можно задать длину условного отрезка длины ветвей в сантиметрах. С помощью флага -stemlength можно задать то, какую часть от длины дерева будут составлять "гроздья".
в) Расположения узлов. Флаг -nodespace задает размер узла (как долю от размера верхушки), а флаг -nodeposition позволяет варьировать параметры внутренних узлов (i - посередине между ближайшими потомками, w - взевешнно относительно верхушесных позиций, с - отцентрированно относительно последних потомков, n - глубоко относительно ближайщих потомков, v - v образное дерево).

Рисунок 3. Пример изображений, полученных с помощью программы fdrawgram. А - квадратные ветви, В - eurogram, углы идут сначала наружу, потом вверх, С - ветви представляют собой 1/4 эллипса, D - ветви расположны по кругу


Кроме того у этих двух программ есть общие опции: -auto (параметры по умолчанию), -filter (принимать входной файл как стандартный входной поток и выводить в выводной поток результат), -options (спросить о значении всех возможных опций в интерактивном формате), флаги -watning, -error, -die выдают информацию о разного рода ошибках, возникающих при выполнении программы. Флаг -version позволяет узнать версию программы.

Если вы используете графический интерфейс программ (установив PHYLIP себе на компьютер), то исходный файл со скобочной формулой дерева необходимо назвать "intree". Также перед началом работы программы необходимо выбрать шрифт, используемый для подписей на рисунке. Базовый комплект шрифтов прилагается при скачивании PHYLIP.

Рисунок 4. Графический интерфейс програм fdrawtree и fdrawgram

3. Сравнение работы программ

На рисунке 5 представлено сравнение деревьев, полученных методом присоединения соседей (the Neighbor-Joining method) [2] с помощью PHYLIP и MEGA. Видно, что деревья топологически одинаковые, но есть различия в длинах ветвей. Кроме того PHYLIP предлагает неразрешенное дерево (3 элемента в узле). Ниже приведены скобочные формулы деревьев, построенных этими программами

PHYLIP
((BRADU:0.41097,RHIEC:0.38568):0.11382,((NEIMA:0.43145,RALSO:0.43608):0.23501, (PASMU:0.25614,(ECOLI:0.18274,VIBCH:0.19083):0.03721):0.27283):0.52885,RHOS4:0.54951);
MEGA
(((ECOLI:0.16958477,VIBCH:0.17636621):0.05268579,PASMU:0.22024742):0.20155787,(NEIMA:0.38154433,RALSO:0.35006913):0.16534751,(RHOS4:0.40911092,(BRADU:0.36452100,RHIEC:0.36709246):0.05717001):0.32554851);


Рисунок 5. Деревья, полученные методом NJ с помощью А - PHYLIP, B - MEGA

4. Источники

[1] http://emboss.sourceforge.net/apps/cvs/embassy/phylipnew/
[2] https://ru.wikipedia.org/wiki/Метод_присоединения_соседей