Monthly Archives: January 2012

MrBayes для реконструкции филогенетических деревьев. Введение.

Метод Байеса – один из основных методов используемых в филогенетике для реконструкции и поиска оптимальной топологии филогенетического дерева. Более того, в настоящее время методы на основе теоремы Байеса – Bayesian inference (далее по тексту BI) – набирают все большую популярность в различных научных областях, и в том числе и в эволюционной биологии. Использование методов на основе теоремы Байеса дает особое преимущество при разработке и анализе комплексных моделей с большим числом параметров.

Так как целью данного упражнения является объяснение основных этапов работы с MrBayes для реконструкции филогенетического дерева, мы не приводим теоретические выкладки, необходимые для понимания смысла метода. Однако, этим вопросам будут посвящены специальные, теоретические, статьи на сайте. Основным отличием BI анализа методом максимального правдоподобия является необходимость задания априорных распределений (priors) для различных параметров модели. Сокращая необходимое теоретическое введение до минимума, уточним, что согласно теореме Байеса оценивается вероятность гипотезы относительно данных и некоторого априорного предположения в отличие от метода максимального правдоподобия, где рассматривается вероятность получения наблюдаемых данных при фиксированной гипотезе. На данный момет мы рекомендуем обратиться к списку англоязычной литературы, упомянутой в конце статьи.

Для построения филогенетических деревьев на основе BI мы воспользуемся наиболее популярной на данный момент программой MrBayes. Входным и рабочим форматом данной программы является формат NEXUS (sequential). Нуклеотидные или аминокислотные последовательности должны быть выровнены (ознакомиться с тем, что такое выравнивание и как его делать).

Работу с MrBayes можно разбить на следующие основные блоки:

  • необходимо выбрать входной файл (каждая запись nexus файла должна иметь уникальный идентификатор или имя – например, имя вида или порядковый номер записи в базе Genbank)
  • далее необходимо указать тип эволюционной модели – и в данном случае это может быть либо модель замены нуклеотидов, либо аминокислот
  • затем необходимо задать различные априрорные распределения (priors) для всех параметров модели (или оставить эти априрорные распределения по умолчанию)
  • выбрать число поколений для MCMC, а также параметры сэмплинга этих поколений
  • запустить модель
  • суммировать результаты и оценить качество реконструкции филогенетического дерева

В этой статье мы рассмотрим все шаги, кроме третьего, в самом общем варианте.

Перед тем, как запустить программы MrBayes, поместите файл с выровненными нуклеотидными последовательностями в ту же директорию, где расположен исполняемый файл программы MrBayes (MrBayes.exe).
Запустите двойным щелчком программу MrBayes

  1. В окне MrBayes> введите execute ctenotus_4genes.nexus. Таким образом, вы загрузите данные в программу. Если кроме имени файла не указаны никакие дополнительные пути к файлу (ctenotus_4genes.nexus), программа MrBayes предполагает, что файл находится в текущем каталоге. Если файл находится в другой директории необходимо прописать полный путь или относительный путь к файлу, например, execute ../mrbayes_work/ctenotus_4genes.nexus.

    Запуск MrBayes

  2. В окне MrBayes> введите lset nst = 6 rates= gamma. Этой командой вы устанавливаете тип эволюционной модели – GTR с гамма-распределенных для апроксимации скорости замены нуклеотидов.

    Установка параметров эволюционной модели MrBayes

  3. В окне MrBayes> введите mcmcp ngen=10000 samplefreq=10. Эта команда позволяет задать длительность MCMC процесса – то есть определит число поколений (ngen) и частоту записи параметров поколений в файл (samplefreq). Обычно 10000 поколений не достаточно для реконструкции дерева, потому что параметры MCMC не успевают достичь уровня конвергенции. Поэтому в рабочих условиях минимальное число поколений составляет 10 000 000 с частотой сэмплирования каждое тысячное поколонение.

    Установка параметров MCMC цепи - число поколений

  4. В окне MrBayes> введите mcmcp Nruns=4. Этой командой вы устанавливаете число параллельных цепочек MCMC. Цель этого действия – убедиться, что параметры всех цепочек в результате сходяться (конвергируют) в одной точке

    Число паралелльных цепочек MCMC MrBayes

  5. В окне MrBayes> введите mcmcp starttrees=random startvals=reset. Это позволяет обозначить, каким образом будет задана первоначальная топология дерева и параметры. В данном случае, мы указали, что для каждой цепочки параметры и топология дерева будут новым и случайными.
  6. В окне MrBayes> введите mcmcp relburnin=yes and burninfrac=0.25. Таким образом, мы задаем параметры отжига – то есть какая часть поколений MCMC цепи не будет рассматриваться при конечной оценке параментров и топологии дерева
  7. В окне MrBayes> введите mcmc. Эта команда запускает анализ

    Завершение анализа в MrBayes

  8. После окончания анализа, суммируйте значения параметров модели, набрав sump burnin = 250 (25% отжиг от выборки). Программа выдаст таблицу резюмирующую параметры модели, в том числе и 95% интервал достоверности каждого параметра. Убедитесь, что значения PSRF достаточно близки к 1,0 по всем параметрам. Если эти значения отличаются от 1, запустите анализ с большим числом поколений MCMC.
  9. Обобщим деревья набрав sumt burnin = 250. Программа выведет кладограммы с постериорными вероятностями для каждого узла дерева и филограмму с усредненными длинами ветвей. Филогенетические деревья также будут распечатны в выходные файлы, которые можно визуализировать в TreeView, MacClade и Mesquite.

    Создание филогенетического дерева в MrBayes

Разумеется полученное дерево будет иметь очень низкую поддержку узлов и плохое разрешение. Для того, чтобы получить более удовлетворительный результат необходимо провести анализ как минимум в течении 10 000 000 поколений. Проведите самостоятельно такой анализ, поменяв установки в ngen = 10 000 000. Учтите, такой анализ может занять от нескольких часов до нескольких дней в зависимости от мощности компьютера. Анализ полученных деревьев будет рассмотрен в следующем упражнении.

Использование биопитона для батч-обработки фаста-файлов с помощью Mafft

При обработке больших массивов генетических данных очень часто возникает необходимость провести выравнивание последовательностей для отдельных генов в батч-режиме разными методами. Чтобы ускорить такой процесс был написан скрипт на биопитоне, позволяющий автоматизировать эту задачу. В данном скрипте используется пример с программой MAFFT, но при необходимости скрипт можно запускать и с использованием иных программ для выравнивания нуклеотидных последовательностей (Muscle, EMBOSS, ClustalW). Более детальная информация о обертках для внешних программ реализованных на биопитоне доступна здесь

 При обработке больших массивов генетических данных очень часто возникает необходимость провести выравнивание последовательностей для отдельных генов в батч-режиме разными методами. Чтобы ускорить такой процесс был написан скрипт на биопитоне, позволяющий автоматизировать эту задачу. В данном скрипте используется пример с программой MAFFT, но при необходимости скрипт можно запускать и с использованием иных программ для выравнивания нуклеотидных последовательностей (Muscle, EMBOSS, ClustalW). Более детальная информация о обертках для внешних программ реализованных на биопитоне доступна здесь


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

path = sys.argv[1]


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

При обработке больших массивов генетических данных очень часто возникает необходимость провести выравнивание последовательностей для отдельных генов в батч-режиме разными методами. Чтобы ускорить такой процесс был написан скрипт на биопитоне, позволяющий автоматизировать эту задачу. В данном скрипте используется пример с программой MAFFT, но при необходимости скрипт можно запускать и с использованием иных программ для выравнивания нуклеотидных последовательностей (Muscle, EMBOSS, ClustalW). Более детальная информация о обертках для внешних программ реализованных на биопитоне доступна здесь


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

path = sys.argv[1]


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

Чтение fasta-файлов, их разбивка и объединение

Очень часто возникает задача разбивки и слияния фаста-файлов. Например, это может потребоваться при создание файлов с внешними группами (outgroups), при слияние нескольких фаста-файлов и т.д. Ниже приводяться два небольших скрипта, позволяющих автоматизировать эти две задачи. Первый скрипт позволяет добавить данные из одного фаста-файла в другой (аналог операции append), второй скрипт позволяет разбить фаста-файл с большим числом записей на несколько файлов, каждый из которых будет содержать всего одну запись.

И второй скрипт

Очень часто возникает задача разбивки и слияния фаста-файлов. Например, это может потребоваться при создание файлов с внешними группами (outgroups), при слияние нескольких фаста-файлов и т.д. Ниже приводяться два небольших скрипта, позволяющих автоматизировать эти две задачи. Первый скрипт позволяет добавить данные из одного фаста-файла в другой (аналог операции append), второй скрипт позволяет разбить фаста-файл с большим числом записей на несколько файлов, каждый из которых будет содержать всего одну запись.


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

Использование LocalBlast (или BLAST+) для поиска и загрузки генетических данных

Для ускорения процесса поиска данных через BLAST в скрипт для поиска и загрузки данных с помощью интерфейсов BLAST/Entrez.  добавлен небольшой блок кода, который позволяет обращаться непосредственно к локальной базе данных BLAST через интерфейс BLAST+.  При использовании локальной базы данных время поиска сокращается в ~4 раза.

Для запуска скрипта и поиска в локальной базе данных потребуется установленная на вашем компьютере (или на сервере организации) база БЛАСТ (инструкцию по установке базы на локальном компьютере можно найти здесь), а также скаченные файлы с данными NCBI (скачать с ftp-сервера NCBI). Кроме того, если база будет установлена на компьютере с OS Windows для корректной работы скрипта потребуется прописывание переменных среды path к исполняемым файлам (папка bin) и создание новой переменной BLASTDB к директории с файлами базы (папка db).

При использовании скрипта (скачать полный скрипт здесь; логин: public, пароль: cornus) будут предоставлены два варианта запуска: интерактивный и командная строка. Интерактивный режим будет запущен, если скрипт будет запущен без каких-либо параметров:

 Для ускорения процесса поиска данных через BLAST в скрипт для поиска и загрузки данных с помощью интерфейсов BLAST/Entrez.  добавлен небольшой блок кода, который позволяет обращаться непосредственно к локальной базе данных BLAST через интерфейс BLAST+.  При использовании локальной базы данных время поиска сокращается в ~4 раза.

Для запуска скрипта и поиска в локальной базе данных потребуется установленная на вашем компьютере (или на сервере организации) база БЛАСТ (инструкцию по установке базы на локальном компьютере можно найти здесь), а также скаченные файлы с данными NCBI (скачать с ftp-сервера NCBI). Кроме того, если база будет установлена на компьютере с OS Windows для корректной работы скрипта потребуется прописывание переменных среды path к исполняемым файлам (папка bin) и создание новой переменной BLASTDB к директории с файлами базы (папка db).

При использовании скрипта (скачать полный скрипт здесь; логин: public, пароль: cornus) будут предоставлены два варианта запуска: интерактивный и командная строка. Интерактивный режим будет запущен, если скрипт будет запущен без каких-либо параметров:

python genbank_2_fasta_local.py

#Do blastn search against local database and return results in xml file


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)

fasta_file = organism+’_’+seq_id+’.fasta’

#a quick and dirty way to run blastdbcmd – should be used a wrapper instead (but
request_blastdbcmd = ‘blastdbcmd -db ‘ + db_name + ‘ -entry ‘ + seq_id + ‘ -out ‘ + fasta_file

print request_blastdbcmd
return_code = os.system(request_blastdbcmd)


GeSHi Error: GeSHi could not find the language pythonlines (using path /home8/phyloge1/public_html/wp-content/plugins/codecolorer/lib/geshi/) (code 2)