Monthly Archives: September 2011

Выпуск новостей 29.30.2011 (#2)

После летнего перерыва, публикуем второй выпуск новостей нашего сайта. Этим выпуском мы начинаем серию статей, посвященную непосредственно алгоритмам, методам и программам для реконструкции филогенетического дерева.

Кроме того, мы открываем раздел “Обзоры статей и книг”, где проводим анализ статьи Derryberry et al. , опубликованной в журнале Evolution и посвященной диверсификации и морфологической эволюции в семействе Печниковых.

РазделПрактические руководства”

# Парсинг данных из GENBANK
# Выравнивание нуклеотидных последовательностей в Mafft
# Объединение нуклеотидных последовательностей для построения филогенетического дерева
# Построение филогенетического дерева в RAxML – часть 1
# Построение филогенетического дерева в RAxML – часть 2

Раздел “Обзоры статей и книг”

# Диверсификация и морфологическая эволюция в семействе Печниковых

Построение филогенетического дерева в RAxML – часть 2

В данном упражнении мы рассмотрим быстрый и стандартный варианты бутстреппинга и односложной параметризацией для разных генов при использование метода максимального правдоподобия в программе RaxML

Быстрый бутстрэп с односложной параметризацией:

  1. Пункты  1 и 2 аналогичны пунктам предыдущего упражнения (то есть имя входного файла с выровненными нуклеотидными последовательностями задается через символ –s, имя выходного файла через –n, и модель – через –m)
  2. Укажем желаемое число бутстрэпов равным 100 через символ –x. Обратите внимание, увеличение числа бутсрэпов линейно увеличивает время требуемого для проведения анализа. Если число видов велико, то лучше попробовать провести анализ для 10-100 бутстрэпов и лишь затем, примерно оценив время, увеличивать расчеты для 1000. Для оценки времени можно также воспользоваться небольшим калькулятором, разработанным автором программы RaxML (http://sco.h-its.org/exelixis/software.html)
  3. Для быстрого бутстрепа нам нужно указать еще один дополнительный параметр –f с дополнением a. Кроме того, нам нужно указать число для случайного генератора цифр – в нашем случае это будет 1234. Таким образом полная команда (для онлайн-сервиса типа Vital_IT) будет выглядеть следующим образом:
    raxml –f a  –s  ctenotus_4genes.phy -n estim_tree_GTRG_100boot.raxml -m GTRGAMMA -x 123456 -# 100
  4. Для консольного приложения она будет выглядеть так:
    ./raxml –f a  –s  ctenotus_4genes.phy -n estim_tree_GTRG_100boot.raxml -m GTRGAMMA -x 123456 -# 100
  5. Программа проведет анализ с 100 бустрапами, осуществит поиск оптимального дерева по значениям правдоподобия и затем пропишет значения поддержки бутстрапа для каждого узла филогнетического дерева. В результате мы получим 4 файла:
    • Информация о ходе анализа: RAxML_info. <приставка>
    • Все деревья по числу бутстрэпов: RAxML_bootstrap. <приставка>
    • Оптимальное дерево: RAxML_bestTree. <приставка>
    • Оптимальное дерево со значениями поддержки в ходе бутсрэпка: RAxML_bipartitions.<приставка>

Стандартный бутстрэп с односложной параметризацией:

  1. Наиболее важной является изменение спецификации символа –f, который теперь нужно использовать с параметром i. Кроме того, число бутстрэпов будет задаваться через символ –b,  а не –х как в быстром бутстрэпе. Пропишем 100 бутстрэпов (хотя, конечно, нужно понимать, что в реальных условиях минимальное число бутстрэпов не может быть меньше 1000)
    raxml –f i  –s  ctenotus_4genes.phy -n estim_tree_GTRG_100boot.raxml -m GTRGAMMA -b 123456 -# 100
  2. В результате анализа будут получены 2 файла:
    • RAxML_info.<приставка>  – в нем будет записана вся информация о ходе процесса (в нашем случае RAxML_info.estim_tree_GTRG_100boot)
    • RAxML_bootstrap. <приставка>  – файл с набором реконструированных филогенетических деревьев (в нашем случае RAxML_bootstrap.estim_tree_GTRG_100boot)
  3. Проведем анализ данных – суммируем информацию из бутстрепов в единое дерево с числами поддержки (bootstrap probabilities, BP). Для этого используем команду –f b  использования спецификации –z (файл с деревьями полученными в ходе бутстрэпа) и –t (прописывать BP на указанную топологию)
    raxml -f b -t ctenotus_result.tre -z RAxML_bootstrap.estim_tree_GTRG_100boot -m GTRGAMMA -s ctenotus_4genes.phy -n boottree
    Обратите внимание, назваение файла ctenotus_result.tre может отличаться в зависимости от того, какой именно файл с топологией нужно будет использовать (!)

Построение филогенетического дерева в RAxML – часть 1

В сегодняшнем упражнении мы рассмотрим один из основных методов реконструкции филогенетического дерева – метод максимального правдоподобия (maximum likelihood) с использованием программы RaxML.  Второй наиболее распорстраненный метод – метод на основе теоремы Байеса (Bayesian inference) – мы проанализируем в одной из следующих статей.

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

Для реконструкции филогенетического дерева методом максимального правдоподобия мы воспользуемся программой RAxML. Она удобна по нескольким причинам: во-первых, разработчиками Raxml реализован быстрый алгоритм поиска оптимальной топологии дерева (rapid hill climbing), во-вторых, программа эффективно использует возможности параллелизации вычислений ( parallel computing), в-третьих она установлена на ряде открытых серверов в скомпилированном виде и позволяет воспользоваться мощностями намного превышающими возможности отдельного персонального компьютера.  Одним из таких серверов мы воспользуемся сегодня в упражнении (по желанию, можно будет также использовать установленную на локальной машине версию программы)

RAxML – программа работающая из командной строки, синтаксис которой напоминает многие другие программы работающие в среде UNIX, однако на многих онлайн серверах разработчки предоставляют доступ к программе через браузерное приложение, упрощающее взаимодействие с приложением.

Raxml позволяет реконструировать филогенетические деревья на основе нуклеотидных, аминокислотных последовательностей, а также на основе их комбинации. Для нуклеотидных последовательностей реализованы такие модели как GTR, GTR + Gamma и GTR + Gamma + Invariable sites, для аминокислотных последовательностей – 10 матриц замен. Начиная с версии 7.х есть возможность отдельно оценивать параметры для разных блоков нуклеотидных или аминокислотных матрицы (то есть учитывать различие параметров между отдельными генами). Кроме того, на конфереции Evolution2011 разработчки обещали скорую реализацию возможности датирования филогенетического дерева, что до сих пор методом максимального правдоподобия было невозможно.

Рассмотрим пример команды Raxml для построения филогенетического дерева

raxml -s nucleotide_alignment.phy -n estim_tree_GTRG_100boot.raxml -m GTRGAMMA -b 123456 # 100

raxml – обращение к программе

-s название входного файла с выровненными нуклеотидными и/или аминонокислотными последовательностями (формат phylip, тип sequential)

-n название выходного файла (в зависимости от установленных параметров содержание выходного файла или файлов будет отличаться)

-m модель нуклеотидных замен, используемая при поиске оптимальной топологии (если модель на основе аминокислотных последовательностей, то параметр будет начинаться со слов PROT…)

-b random seed для проведения бутрэппинга

# 10 – количество бутстрэпов

Теперь остановимся подробнее на различных параметрах, которые можно устаналивать в raxml (мы обсудим в основном нуклеотидные последовательности, а не аминокислотные, для которых параметризация команды отличается)

-m

Описание модели нуклеотидных/аминокислотных замен
пример: -m PROTWAGF или –m GTRGAMMA

-c

количество категория для дискритизации гамма-распределения (релевантно и для нуклеотидных и для аминокислотных замен)
пример: -c 4

-n

число бутстреэпов
пример: -N 100

-f

алгоритм используем при расчете топологии дерева
примеры:
“-f d” – параметры по умолчанию
“-f b” – подписывать ветви дерева частотами, с которым эти ветви появляются на других деревьях

-s

имя входного файла
пример: -s infile.phy

-n

базовая приставка для имен выходных файлов
пример: -n infile_RAxML

-b

случайный номер для бутстрэпа (для повторимости расчетов параметров модели)
пример: -b 3566122

-z

имя для файлов в форматах NEWICK/PHYLIP с множественными деревьями
пример: -z multipleBootstrappedTrees.phy

-t

имя файла с пользовательским деревом в формате Newick (не учитывает длину ветвей дерева). Используется в качестве отправной точки при поиске корректной топологии.
пример: -t userTree.phy

Перейдем теперь к практической части упражнения. Первое действие, которое необходимо сделать это зарегистрироваться на одном из открытых онлайн сервисивов, где установлена программа raxml (это могут быть ресурсы предоставляемые, например, Швейцарской Vital-it или любыми другими онлайн-серверами), либо скачать дистрибутив и установить программу отсюда.

Далее нам необходимо иметь подготовленный файл с выровренными нуклеотидными (или аминокислотными) последовательностями. Мы выспользуемся данными, которые были подготовлены в предыдущих упражнениях по роду Ctenotus (скачать; для скачки потребуется пароль и логин). Затем нужно решить, какую модель нуклеотидных замен мы будем использовать при поиске оптимальной топология дерева и будем ли мы оценивать параметры отдельно для различных генов или нет. В заключении мы должны определить будет ли использован бутстрэп и какой его тип будет использован – быстрый или стандартный. В данном упражнении мы рассмотрим вариант без бутстреппинга и односложной параметризацией для разных генов

Вариант с односложной параметризацией для разных генов без бустрэпа:

  1. Для данных Ctenotus мы используем модель нуклеотидных замен GTR+Gamma. Подробнее выбор модели нуклеотидных замен будет рассмотрен в отдельной статье.
  2. Данные Ctenotus уже подготовлены для использования в Raxml и находятся в формате phylip. Так как мы объединили несколько генов в одном файле, то у нас есть две возможности – либо оценивать парамеры модели GTR+Gamma отдельно для каждого гена, либо считать всю матрицу нуклеотидов единым блоком и оценивать только один набор параметров. Сначала для простоты мы расчитаем один набор параметров для всей матрицы нуклеотидов без бутстрэпов. Наша команда будет выглядеть так:
    ./raxml –s  ctenotus_4genes.phy -n estim_tree_GTRG_0boot.raxml -m GTRGAMMA -#10
  3. В результирующем файле нас интересуют значения log-likelihood (правдоподобия). В самом простом случае, для 10 повторов анализа (replicates) значения будут очень близкими, в более сложных – отличными. Сильно отличающиеся значения правдоподобия сигнализируют, что поиск оптимального дерева сложен и необходимо увеличить число повторов . То дерево, которое получает максимальный счет (score) будет записано в результирующий файл. Само дерево можно визуализировать с помощью программы FigTree. О визуализации деревьев мы также в скором времени напишем отдельную статью