Monthly Archives: February 2012

Реконструкция филогенетических деревьев. Некоторые выводы из практического опытаReconstructing phylogenies: some practical advises from practical experience

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модели замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватной мерой точности моделирования.

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

Надеюсь, этим советы помогут определиться с выбором стратегии при реконструкции деревьев.  

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модели замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватной мерой точности моделирования.

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

Надеюсь, этим советы помогут определиться с выбором стратегии при реконструкции деревьев. 

 

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модели замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватной мерой точности моделирования.

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модели замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модель замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модель замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

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

Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов. Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модель замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

Реконструкция филогенетических деревьев, будь то реконструкция дерева видов или генов, – задача нетривиальная. Поэтому в этой заметке я обобщу некоторые наблюдения за время практической работы с деревьями. Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов.

Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модель замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

Реконструкция филогенетических деревьев, будь то реконструкция дерева видов или генов, – задача нетривиальная. Поэтому в этой заметке я обобщу некоторые наблюдения за время практической работы с деревьями. Итак, представим, что перед вами стоит цель – реконструировать филогенетическое дерево для некоторой группы организмов.

Что нужно учесть, чтобы дерево было публикуемым в научном журнале?

Garbage in – Garbage out

Очень важно уделить время выбору генов и их выравниванию, потому что к филогенетическим реконструкциям как ко многим другим аналитическим задачам подходит фраза – garbage in – garbage out.

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

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

Обязательно потратье время на то, чтобы правильно выравнить последовательности (аминокислотные или нуклеотидные). Хуже, чем неправильное выравнивание, может быть только неправильное определение вида. 

Сколько данных (генов) достаточно?

Разумеется, это зависит от задачи и от того, насколько хорошее разрешение топологии вы хотите получить. В среднем, по моими наблюдениям, средняя длина матрицы (data matrix) в научных статьях  сейчас составляет от 3500 до 7000 нуклеотидов (3.5-7 кб данных) и это должны быть разные гены (желательно и мтДНК, и яДНК). По числу генов данные варьируются, но обычно от 3 до 10 на анализ считается удовлетворительным. Хочу особенное внимание обратить на тот факт, что сейчас мы находимся в переходном периоде, когда классическое qPCR заменяется на high-throughput sequencing и объем данных возрастает экспоненциально, поэтому надо быть готовым к тому, что через несколько лет требования по объемам данных будут сильно отличаться от сегодняшних. Важно понимать, что показателем “достаточности” данных является конечное разрешение дерева – то есть поддержка узлов (постериорные вероятности или бутстрап) – поэтому именно на них нужно ориентироваться при написании и отправлении статьи в научный журнал. 

Выбор эволюционной модели

Для того, чтобы убедить рецензентов статьи в том, что вами была выбрана правильная эволюционная модель достаточно провести простой тест либо в программе Phyml, либо в программе jModelTest. Обе эти программы позволяют протестировать поочередно все модель замен нуклеотидов, начиная от самой простой – Джукса-Кантора, и заканчивая самая сложной, обобщенной реверсивной  моделью (Generalised time reversible) с Gamma-распределением. Выбор подходящей модели осуществляет по значению AIC – минимальное значение сигнализирует о том, что модель описывает данные наилучшим образом. Не рекомендую ориентироваться на значения LogLikelihood, так как это значение не учитывает число параметров в модели и соотвественно не может служить адекватное мерой. 

Внешняя группа

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

Априорные распределения

Априорные распределения очень важны при датировке дерева (мы пока не рассматривали на сайте как это делается, но упомянуть об этом нужно уже сейчас). В остальных случая, если вы не знаете ничего специального про данные, то лучше не очень сильно экспериментировать с априорными распределениями. 

Цепочки и конвергенция параметров

Помните, самое важно, в чем требуется убедиться самому (и убедить после рецензента статьи) это в том, что параметры и топология дерева действительно достигли уровня конвергенции, а не застряли на т.н. локальном минимуме. Переводя на более понятный язык это значит, что если параметры, которые после некоторого времени выдает алгоритм, это параметры локального минимума, то топология филогенетического дерева НЕверна. Как убедиться в том, что параметры корректны?

  • Всегда используйте два метода – метод Байеса и метод максимального правдоподобия (МП) для реконструкции деревьев. Топологии выданные этим двумя алгоритмами должны совпадать.
  • Запускайте как минимум 4 паралеллельные цепочки при использовании таких программ как MrBayes или BEAST(*), кроме того, запускайте поиск топологий как минимум дважды по отдельности (лучше больше)
  • Чем сложнее дерево (т.е. чем больше видов), тем больше поколений должно быть в MCMC запусках в MrBayes или BEAST(*). Тоже самое касается, данных с разделением на блоки по типам ДНК (т.н. partitioning). Например, для дерева из 500 видов и матрицей длинной 7000 нуклеотидов, два блока может потребоваться примерно 800 000 000 поколений в BEAST. 
  • Проверяйте сходимость между цепочками в таких программах как Tracer и внимательно проверяйте параметры по значениям effective sizes (они должны быть нормально распределены!). 
  • Используйте такую программу как AWTY для того, чтобы убедиться в том, что количество поколений MrBayes или BEAST(*) было достаточным для достижения конвергенции параметров. 

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

Моделирование эволюции морфологических признаков – макроэволюционный подход. Пример скриптаEstimating continuous trait evolution with Brownian motion and Ornstein–Uhlenbeck proccesses

При макроэволюционном сравнительном анализе очень часто возникает необходимость обработки большого числа филогенетических деревьев в батч-режиме: например, при тестировании различных гипотез относительно эволюции морфологических признаков (статья Smith, Harmon et al. 2011) или при анализе скорости диверсификации (статья Rabosky and Lovette, 2007). Кроме того, нередко морфологический или экологический признак, эволюция которого оценивается с помощью филогенетического сравнительного анализа, бывает представлен более чем одним значением для каждого вида.  В результате, нужно не только проверить модель для каждого варианта топологии филогенетического дерева, но и многократно повторить создание уникальной выборки из наборов значений для каждого вида.

Как пример представим, что мы хотим проанализовать эволюцию некоторого морфологического признака группы растений. У нас есть файл с реконструированными филогенетическими деревьями (в формате nexus. пример дерева на картинке ниже), а также описание морфопризнака для каждого вида.

Пример филогенетического дерева для 5 видов

Морфопризнак вида – это непрерывная величина, например, диаметр листовой пластинки или размер семени. При этом каждый вид представлен не одним значением, а некоторым списком значений (таблица ниже)

Пример таблицы со значениями морфологического признака

Каким образомы мы можем быстро обработать такие данные? Для этого нам потребуется установленная программа R, а также ряд специальных пакетов для филогенетического анализа (APE, Geiger). Далее, в качестве образца используем следующий скрипт:

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

  • trees – название переменной, в формате multiPhylo
  • biomatrix – фрейм данных, в котором находятся значения морфологического признака
  • nameVar – индекс колонки, в которой записаны имена видов
  • whichVar – индекс колонки, в которой записаны значения морфологического признака
  • samples – определяет число образоцов (samples) для каждого вида, которые будут браться из  колонки со значениями морфологического признака

Протестируем функцию:

В результате получим таблицу с тремя колонками, где в первых двух колонках будут записаны значения AIC для каждой из наших двух моделей, а в третье колонке будет записан индекс модели-победителя (то есть модели с наименьшим AIC). Кроме того, мы получим небольшую табличку, обобщающую результаты эксперимента.При макроэволюционном сравнительном анализе очень часто возникает необходимость обработки большого числа филогенетических деревьев в батч-режиме: например, при тестировании различных гипотез относительно эволюции морфологических признаков (статья Smith, Harmon et al. 2011) или при анализе скорости диверсификации (статья Rabosky and Lovette, 2007). Кроме того, нередко морфологический или экологический признак, эволюция которого оценивается с помощью филогенетического сравнительного анализа, бывает представлен более чем одним значением для каждого вида.  В результате, нужно не только проверить модель для каждого варианта топологии филогенетического дерева, но и многократно повторить создание уникальной выборки из наборов значений для каждого вида.

Как пример представим, что мы хотим проанализовать эволюцию некоторого морфологического признака группы растений. У нас есть файл с реконструированными филогенетическими деревьями (в формате nexus. пример дерева на картинке ниже), а также описание морфопризнака для каждого вида. Морфопризнак вида – это непрерывная величина, например, диаметр листовой пластинки или размер семени. При этом каждый вид представлен не одним значением, а некоторым списком значений (таблица ниже)

Пример филогенетического дерева для 5 видов

Пример таблицы со значениями морфологического признака

Каким образомы мы можем быстро обработать такие данные? Для этого нам потребуется установленная программа R, а также ряд специальных пакетов для филогенетического анализа (APE, Geiger). Далее, в качестве образца используем следующий скрипт:

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

  • trees – название переменной, в формате multiPhylo
  • biomatrix – фрейм данных, в котором находятся значения морфологического признака
  • nameVar – индекс колонки, в которой записаны имена видов
  • whichVar – индекс колонки, в которой записаны значения морфологического признака
  • samples – определяет число образоцов (samples) для каждого вида, которые будут браться из  колонки со значениями морфологического признака

Протестируем функцию:

В результате получим таблицу с тремя колонками, где в первых двух колонках будут записаны значения AIC для каждой из наших двух моделей, а в третье колонке будет записан индекс модели-победителя (то есть модели с наименьшим AIC). Кроме того, мы получим небольшую табличку, обобщающую результаты эксперимента.

При макроэволюционном сравнительном анализе очень часто возникает необходимость обработки большого числа филогенетических деревьев в батч-режиме, как, например, при тестировании различных гипотез относительно эволюции морфологических признаков (статья Smith, Harmon et al. 2011) или при анализе скорости диверсификации (статья Rabosky and Lovette, 2007). Кроме того, нередко морфологический или экологический признак, эволюция которого оценивается с помощью филогенетического сравнительного анализа, бывает представлен более чем одним значением для каждого вида.

Как пример представим, что мы хотим проанализовать эволюцию некоторого морфологического признака группы растений. У нас есть файл с реконструированными филогенетическими деревьями (в формате nexus. пример дерева на картинке ниже), а также описание морфопризнака для каждого вида. Морфопризнак вида – это непрерывная величина, например, диаметр листовой пластинки или размер семени. При этом каждый вид представлен не одним значением, а некоторым списком значений (таблица ниже)

Каким образомы мы можем быстро обработать такие данные? Для этого нам потребуется установленная программа R, а также ряд специальных пакетов для филогенетического анализа (APE, Geiger). Далее, в качестве образца используем следующий скрипт:

#MODEL SELECTION EXAMPLE on nexus multiPhylo format

#15-02-2012

#by Anna Kostikova

#trees – a sample of trees in multiPhylo format

#biomatrix – a dataframe with taxa names column and variables columns

#nameVar – index of a column with taxa names

#whichVar – index of a column with variable to apply models to

#samples – define how many times each species will be sampled for a value <- should=”” be=”” big=”” if=”” used=”” with=”” bioclim=”” samples=”” p=””>

model_selection<-function(trees, biomatrix=”” namevar=”1,” whichvar=”4,” samples=”2){

if(class(trees)!=”multiPhylo”){

return(“Tree is not a ‘multiPhylo’ class”)}

matrix_trees<-data.frame() create=”” an=”” empty=”” data=”” frame=”” to=”” store=”” model=”” s=”” outputs=”” for=”” each=”” tree=”” in=”” nexus=”” file=”” p=”” i=”” 1:length=”” trees=”” -trees=”” sample=”” a=”” from=”” multi=”” phylo=”” object=”” model_results=”” -matrix=”” nrow=”samples,ncol=3)” matrix=”” sampling=”” results=”” k=”” 1:samples=”” traits=”” -vector=”” make=”” vector=”” trait=”” value=”” run=”” m=”” tip=”” label=”” -sample=”” biomatrix=”” which=”” namevar=”1, for each tree in nexus file>

>for (i in 1:length(trees)){>

>  tree<−trees[[i]] # sample a tree from multi.phylo object  >

>    model_results<−matrix(nrow=samples,ncol=3) # create an empty matrix to store sampling results
/>
/>

    for (k in 1:samples){>

>     traits<−vector() # make an empty vector to store trait value for each sampling run
/>
/>

     for(m in 1:length(tree$tip.label)){>

>   traits[m]<−sample(biomatrix[which(biomatrix[,nameVar]==tree$tip.label[m]),whichVar],1) # randomly select 1 value for each species from a dataset>

>      }>

>     names(traits)<−tree$tip.label # name trait vector
/>
/>

     modelBM<−fitContinuous(tree, traits, model=”BM”) # run model 1
/>
/>

     modelOU<−fitContinuous(tree, traits, model=”OU”) # run model 2>

>     model_results[k,1]<−modelBM$Trait1$aic # get AIC estimates for model 1
/>
/>

     model_results[k,2]<−modelOU$Trait1$aic # get AIC estimates for model 2
/>
/>

 index<−which(model_results[k,]==min(model_results[k,1:2])) # select the model with the smallest AIC value < if LogLik then it must be maximum
/>
/>

 model_results[k,3]<−index # store index of the winniding model>

>    }>

>matrix_trees<−rbind(matrix_trees,model_results) #bind results for all trees>

>}>

>names(matrix_trees)<−c(“BM_AIC”,”OU_AIC”,”Winner”) # assign names>

>#just a small piece of code to make a frequency table
/>
/>

print(paste(“Model frequencies for: “,colnames(biomatrix[whichVar]), sep=””))
/>
/>

tmp<−matrix(table(matrix_trees$Winner))
/>
/>

rownames(tmp)<−c(“BM”,”OU”)
/>
/>

colnames(tmp)<−c(“Freq”) # model with higher frequency has more support
/>
/>

print(tmp)>

>return(matrix_trees) # return results
/>
/>

}
/>
/>

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

Например представим, что мы хотим проанализовать эволюцию некоторого морфологического признака некоторой группы растений. У нас есть файл с реконструированными филогенетическими деревьями, а также описание морфопризнака для каждого вида. Морфопризнак вида – это некоторая непрерывная величина, например, диаметр листовой пластинки или размер семени. При этом каждый вид представлен не одним значением, а некоторым списком значений.

Каким образомы мы можем обработать такие данные? Для этого нам потребуется установленная программа R, а также ряд специальных пакетов для филогенетического анализа (APE, Geiger, Phytools).

Введение в эволюционные модели. Скрытые замещения и модель Джукса-Кантора

Мы уже неоднократно в разных упражнениях на сайте ссылались на такое понятие, как эволюционная модель. В этом тексте мы начинаем рассказ о том, что же это значит.

Все мы хорошо знаем, что существуют 4 нуклеотида, кодирующих ДНК. Кроме того, мы знаем, что эволюционный процесс на генетическом уровне – это череда случайных мутаций, то есть замен одних нуклеотидов на другие (substitution), а также их удаление (deletion) и добавление (insertion). Для простоты представим, что весь мутационный процесс состоит только из нуклеотидных замен. Если принять условие, что нуклеотидных замены происходят случайным образом, равномерно во времени с некоторой независящей от окружающих условий частотой, то легко догадаться, что чем больше различий между нуклеотидными последовательностями, то больше должно было пройти времени с момента начала аккумуляции таких вот изменений. Обычно, началом аккумуляции изменений между ДНК последовательностями мы можем считать, например, момент видообразования или (генетической) изоляции популяций друг друга. Разумеется, это идеализированное описание мутационного процесса сильно отличающиеся от реальности, и, тем не менее, такая апроксимация хороша для многих случаев.

Итак, допустим у нас есть нуклеотидных последовательности для 3 видов и мы хотим выяснить вероятную историю разделения этих видов. Как было сказано выше, в первую очередь мы должны посчитать число отличий (мутаций) между каждой парой последовательностей. Итак:

Покажем число замен относительно вида 1

Посчитаем число отличий между каждой парой последовательностей (1-2,1-3,2-3) и представим результат в виде симметричной матрицы

Из этого расчета очевидно, что последовательсти 2 и 3 отличаются друг от друга меньше всего (одна замена), затем идут последовательности 1 и 3 (две замены), и лишь затем, наиболее отличные последовательности, с тремя заменами – 1 и 2 (три замены). Какой можно сделать вывод?

Мы можем сделать вывод, что предполагаемое дерево отношений между видами, должно быть таким:

Разумеется, сделать такую реконструкцию мы можем лишь зная какой из видов был предковым по отношению к остальным в группе (в нашем случае мы считаем таким видом Вид 1)

Теперь вспомним, что эволюционный процесс занимает сотни тысяч и миллионы лет, и, в среднем, частота мутаций на поколение на геном составляет примерно 0.003 (учтите, частота мутаций очень варьируется между группами, поэтому эта цифра дана лишь для понимания порядков явления). Не сложно подсчитать, что 1 мутация на 5-нуклеотидный геном однолетнего растения будет возникать с частотой раз в ~ 333 года. Таким образом, уже через несколько тысяч лет мы окажемся в ситуации, когда все нуклеотиды хотя бы раз, но будут замещены, изменения начнут происходить по кругу и разница между двумя последовательностями окажется невидимой «на глаз». В силу таких «скрытых» мутаций будет казаться, что накопление мутаций замедляется со временем как показано на графике ниже

Для того, чтобы учесть скрытые мутации в 1969 году была предложена специальная математическая «коррекция» Джукса-Кантора (Jukes-Cantor correction/model). Она расчитывается по формуле:

 D=-3/4ln(1-(4p/3))

где p – пропорция нуклеотидных позиций с замещениями в одной последовательности относительно другой, референсной. Очень интересно то, как именно она выводится математически, но об этом в другой статье или, например, вот здесь (fr) или здесь (en) или здесь (ru).

Попробуем используя элементарные данные приведенные выше и программу R посмотреть, как работает коррекция Джукса-Кантора.

Итак, у нас есть 5 нуклеотидов, пропорции замещений составляют соответственно:

Для вида 1-2 – 3/5 = 0.6

Для вида 1-3 – 2/5 = 0.4

Для вида 2-3 – 1/5 = 0.2

Запустим вот такой код в программе R


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

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

Мы уже неоднократно в разных упражнениях на сайте ссылались на такое понятие, как эволюционная модель. В этом тексте мы начинаем рассказ о том, что же это значит.

Все мы хорошо знаем, что существуют 4 нуклеотида, кодирующих ДНК. Кроме того, мы знаем, что эволюционный процесс на генетическом уровне – это череда случайных мутаций, то есть замен одних нуклеотидов на другие (substitution), а также их удаление (insertion) и добавление (deletion). Для простоты представим, что весь мутационный процесс состоит только из нуклеотидных замен. Если принять условие, что нуклеотидных замены происходят случайным образом, равномерно и с некоторой независящей от окружающих условий частотой, то легко догадаться, что чем больше различий между нуклеотидными последовательностями, то больше должно было пройти времени с момента начала аккумуляции таких вот изменений. Обычно, началом аккумуляции изменений между ДНК последовательностями мы можем считать, например, момент видообразования или изоляции популяций друг друга, – то есть условия, связанные с прекращением генетического дрейфа. Разумеется, это идеализированное описание мутационного процесса, и, тем не менее, такая апроксимация хороша для многих случаев.

Итак, допустим у нас есть нуклеотидных последовательности для 3 видов и мы хотим выяснить вероятную историю разделения этих видов. Как было сказано выше, в первую очередь мы должны посчитать число отличий (мутаций) между каждой парой последовательностей. Итак:

Покажем число замен относительно вида 1

Посчитаем число отличий между каждой парой последовательностей (1-2,1-3,2-3) и представим результат в виде симметричной матрицы

Из этого расчета очевидно, что последовательсти 2 и 3 отличаются друг от друга меньше всего (одна замена), затем идут последовательности 1 и 3 (две замены), и лишь затем, наиболее отличные последовательности, с тремя заменами – 1 и 2 (три замены). Какой можно сделать вывод?

Мы можем сделать вывод, что предполагаемое дерево отношений между видами, должно быть таким:

Теперь вспомним, что эволюционный процесс занимает сотни тысяч и миллионы лет, и, в среднем, частота мутаций на поколение на геном составляет примерно 0.003 (учтите, частота мутаций очень варьируется между группами, поэтому эта цифра дана лишь для понимания порядков явления). Не сложно подсчитать, что 1 мутация на 5-нуклеотидный геном однолетнего растения будет возникать с частотой раз в ~ 333 года. Таким образом, уже несколько тысяч лет мы окажемся в ситуации, когда все нуклеотиды хотя бы раз, но будут замещены и процесс замещения будет происходить по кругу. В результате, уже скоро мы можем получить ситуацию в которой разница между двумя последовательностями окажется невидимой «на глаз» в силу таких «скрытых» мутаций и будет казаться, что накопление мутаций замедляется со временем как показано на графике ниже

Для того, чтобы учесть скрытые мутации в 1969 году была предложена специальная математическая «коррекция» Джукса-Кантора (Jukes-Cantor correction/model). Она расчитывается по формуле:

 D=-3/4ln(1-(4p/3))

где p – пропорция нуклеотидных позиций с замещениями в одной последовательности относительно другой, референсной. Очень интересно то, как именно она выводится математически, но об этом в другой статье или, например, вот здесь (fr) или здесь (en) или здесь (ru).

Попробуем используя элементарные данные приведенные выше и программу R посмотреть, как работает коррекция Джукса-Кантора.

Итак, у нас есть 5 нуклеотидов, пропорции замещений составляют соответственно:

Для вида 1-2 – 3/5 = 0.6

Для вида 1-3 – 2/5 = 0.4

Для вида 2-3 – 1/5 = 0.2

Запустим вот такой код в программе R


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

JCmodel

p_JC = -3/4*log(1-((4*p)/3))

return(p_JC)

}

#make matrix with raw substitutions and proportions

data

#apply correction to proportions

JCcor

#plot in red color corrected values

plot(data[,2],JCcor, col=”red”, type=”l”, xlab=”Raw substitutions”, ylab=”Evolutionary distance”)

#plot in green color initial proportions

lines(data[,2],data[,1], col=”green”)

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

Выпуск новостей 02.02.2012 (#4)Выпуск новостей 02.02.2012 (#4)

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

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

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

#Априорные распределения в MrBayes: практическая часть
#Теорема Байеса и априорные распределения при реконструкции филогенетических деревьев
#MrBayes для реконструкции филогенетических деревьев. Введение.

Раздел “Скрипты”

#Использование биопитона для батч-обработки фаста-файлов с помощью Mafft
#Чтение fasta-файлов, их разбивка и объединение
#Использование LocalBlast (или BLAST+) для поиска и загрузки генетических данныхПубликуем очередной выпуск статей, в которых мы опять рассказываем о методах и программах для реконструкции филогенетических деревьев.  Наиболее подробно в данном выпуске мы осветили особенности (начала!) работы с программой MrBayes. Важно понимать, что реконструкция филогенетических деревьев имеет целый ряд особенностей, поэтому наиболее важному аспекту – оценке качества реконструкции топологии дерева – мы уделим много внимания в ближайшем будущем. Пока что приводим только самые общие и базовые представления о том, как устроены методы и программы по филогенетике.

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

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

#Априорные распределения в MrBayes: практическая часть
#Теорема Байеса и априорные распределения при реконструкции филогенетических деревьев
#MrBayes для реконструкции филогенетических деревьев. Введение.

Раздел “Скрипты”

#Использование биопитона для батч-обработки фаста-файлов с помощью Mafft
#Чтение fasta-файлов, их разбивка и объединение
#Использование LocalBlast (или BLAST+) для поиска и загрузки генетических данных

Априорные распределения в MrBayes: практическая часть

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

Обычно, после того, как мы установили параметры эволюционной модели, необходимо выбрать установки для априорных распределений. Всего мы оцениваем 6 типов параметров: топологию дерева (то есть то, как расположены ветви дерева), длины ветвей, частоты нуклеотидов (их 4 штуки, следовательно столько же будет и частот), 6 параметров для замены нуклеотидов (для матрицы GTR), часть позиций нуклеотидных последовательностей без мутаций и коэффециент масштаба для гамма-распределения, которое в нашей модели аппроксимирует распределение скорости замен нуклеотидов.

Параметры, установленные по умолчанию в MrBayes, являются в общем-то неплохими и подходят для большой части исходных данных. Тем не менее, для того, чтобы лучше понимать суть метода и особенности параметризации рекомендуется хотя бы ознакомится с установками по умолчанию. Это можно сделать набрав help prset в рабочем окне MrBayes. В результате мы получим таблицу вида:

Установка априорных распределение в MrBayes

Рассмотрим основные параметры упомянутые выше.

  • Revmatpr – 6 параметров для замены нуклеотидов
  • Statefreqpr – частоты нуклеотидов
  • Shapepr – коэффециент масштаба для гамма-распределения
  • Pinvarpr – часть позиций в последовательностях ДНК без мутаций
  • Topologypr – топология дерева
  • Brlenspr – длины ветвей

Для Revmatpr и Statefreqpr в качестве априрорного распределения используется распределение Дирихле (все значения равны единице). Такое предположения разумно, если мы не знаем никаких дополнительных сведелений о стационарных частотатах и параметрах замены нуклеотидов (т.н. substitution matrix). В некоторых случае, бывает необходимо зафиксировать данные параметры – это возможно, но делать не рекомендуется. Тем не менее, если например, мы хотим поменять тип эволюционной модели мы можем зафиксировать часто параметров набрав prset statefreqpr=fixed(equal). Это бывает нужным, если мы хотим использовать в качестве типа эволюционной модели модель Джукса-Кантора (JC) или Симметричную модель (SYM)

Для того,чтобы частоты нуклеотидов были распределены более равномерно относительно друг друга, мы можем усились эффект прописав параметры prset statefreqpr = Dirichlet(10,10,10,10) или даже prset statefreqpr = Dirichlet(100,100,100,100). Важно понимать, что четыре значения в скобках определеяют относительные пропорции частот встреч каждого нуклеотида, а абсолютная величина – градиент изменения распределения. Чем порядок величин больше, тем резче градиент. Удобство MrBayes заключается также и в том, что мы можем переписать команду выше в более сжатой форме: например, так: prs st = Dir(1,1,1,1)

Значение в Shapepr определяет распределение параметра альфа гамма-распределения. Обычно это распределение устанавливается равным равномерному распределению – опять же, если у нас нет никаких изначальных предпосылок к тому, чтобы этот параметр менять. Точно таким же, равномерным, распределением описывается и параметр Pinvarpr, значение которого варьируется от 0 до 1.

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

Важный параметр – длины ветвей дерева Brlenspr. Мы можем установить его либо предполагая молекулярные часы, либо без этого допущения. Обычно, если мы убираем допущение о молекулярных часах, то длины ветвей берутся либо из экспоненциального, либо из равномерного распределений. По ряду причин связанных с алгоритмом расчета параметров модели и особенностями молекулярных данных, рекомендуется устанавливать это априорное распределение экспоненциальным.

При подготовке данной статьи использовались вот эти материалы с сайта MrBayesNow, after we figured out a little so, why and how to use a priori distribution methods based on Bayes’ theorem, let us return to the peculiarities of their use in the program MrBayes.

Usually, after we set the parameters of evolutionary models to choose plants for a priori distributions. In total, we estimate the six types of parameters: tree topology (that is, how are the branches of a tree), the length of branches, frequency of nucleotides (of 4 pieces, so the same will and frequencies), 6 parameters for the replacement of nucleotides (for the matrix GTR), part of the position of the nucleotide sequences without mutations and koeffetsient scale for the gamma distribution, which in our model approximates the velocity distribution of substitutions of nucleotides.

Parameters set by default in MrBayes, are in general quite good and suitable for a large part of the original data. However, in order to better understand the features of the method and the parameterization is recommended at least acquainted with the default settings. You can do this by typing help prset in the working window MrBayes. The result is a table of the form:

Установка априорных распределение в MrBayes

 

Установка априорных распределение в MrBayes

Consider the basic parameters mentioned above.

Revmatpr – 6 parameters for nucleotide substitutions
Statefreqpr – the frequency of nucleotide
Shapepr – koeffetsient scale for the gamma distribution
Pinvarpr – some positions in DNA sequences with no mutations
Topologypr – the topology of the tree
Brlenspr – the length of the branches
For Revmatpr and Statefreqpr aprirornogo distribution as used by the distribution of the Dirichlet (all values ​​are equal to unity). This assumption is reasonable if we do not know any more about the stationary svedeleny chastotatah and parameter nucleotide substitution (eg substitution matrix). In some case, it is necessary to fix these parameters – this is possible but not recommended. However, if for example we want to change the type of evolutionary model, we can often fix the parameters by typing prset statefreqpr = fixed (equal). This is necessary if we are to be used as a type of evolutionary model of Jukes-Cantor model (JC) or the symmetric model (SYM)

In order to nucleotide frequencies were more evenly distributed relative to each other, we can usilis effect of prescribing options prset statefreqpr = Dirichlet (10,10,10,10), or even prset statefreqpr = Dirichlet (100,100,100,100). It is important to understand that the four values ​​in parentheses opredeleyayut relative proportions of each nucleotide frequency of meetings, and the absolute magnitude – change in the gradient distribution. What is the order of magnitude greater, the sharper the gradient. Ease of MrBayes is also in the fact that we can rewrite the above command in a more concise form: for example, as: prs st = Dir (1,1,1,1)

The value in Shapepr parameter determines the distribution of the alpha-gamma distribution.Typically, this distribution is set to a uniform distribution – again, if we do not have any original premises to ensure that this option is changed. Exactly the same as the uniform distribution is described by the parameter Pinvarpr, whose value ranges from 0 to 1.

Further, the parameter Topologypr we also set a uniform distribution, which in this case means that we give equal probability to all topologies with a fully permitted sites. On the other hand, if we know that some of the treasure should be in a certain configuration, you can set zheskom parameters defining the root of this clade, respectively, and in all topologies, this treasure is present it is in this configuration. To do this, however, is not recommended because it is a very strong dopopuschenie, which can not be supported by data.

An important parameter – the length of the branches of a tree Brlenspr. We can set it either assuming the molecular clock, with or without this assumption. Usually, if we remove the assumption of a molecular clock, the length of the branches are taken from either exponential or out of uniform distributions. For various reasons related to the calculation algorithm of the model parameters and characteristics of molecular data, it is recommended to establish an a priori distribution of the exponential.

In the preparation of this article used here these materials from the site MrBayes

 
 

Теорема Байеса и априорные распределения при реконструкции филогенетических деревьев

(картинка для featured image взята отсюда)

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

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

Для того, чтобы понять, как именно теорема используется при реконструкции филогенетических деревьев вспомним, что при поиске корректной (или наиболее вероятной) топологии дерева нам необходимо оптимизировать большое число параметров: длины ветвей дерева. Длины ветвей дерева пропорциональны двум основным параметрам – времени и скорости нуклеотидных замен. Для простоты мы можем представить себе ветви дерева своебразным эволюционным маршрутом, длина которого зависит от двух величин – времени, потраченном на данный маршрут и скорости “пешехода”. Разумеется, это простая аналогия и никакого пешехода в реальности нет, а есть лишь время, прошедшее с момента образования вида, гена или разделения популяций, и скорость мутаций ДНК. Тем не менее, удобно представлять себе ветви дерева именно таким вот образом – это позволит точнее представлять пространство и сложность оцениваемых параметров. Каждая ветвь дерева имеет свою длину маршрута, так как скорость пешехода и время которое этот пешеход потратил на маршрут могут существенно отличаться. Соответственно, чем больше размерность реконструируемого дерева, тем больше параметров нам надо оценить (как минимум 2 на каждую ветвь, а на самом деле и больше).

Исходными данными, относительно которых мы оцениваем вероятность параметров, являются нуклеотидные или аминокислотные последовательности и число мутаций в них.  Нам необходимо подобрать наиболее вероятные параметры, при которых могли возникнуть наблюдаемые ДНК последовательности. Как это сделать?

Теорема Байеса. Расчет априорных и постериорных вероятностей.

Если мы выбираем для использования теорему Байеса, то нам необходимо предположить значения параметров или, говоря точнее, предположить вероятностные распределения параметров для подстановки в формулу. Например, если мы считаем, чтобы средняя скорость нуклеотидных замен для наших последовательностей равна 0.00015 с дисперсией -/+0.00001 (то есть фактически это нормальное распределение), то мы можем задать это распределение в качестве начальной априорной оценки (обозначено зеленой линией на схеме). Далее, случайным образом, будет выбрано новое значения для скорости нуклеотидных замен (максимальное правдоподобие обозначено синей линией на схеме). Это новое значение , а также наша исходная вероятность, будут подставлены в формулу Байеса. На выходе мы получаем то, что называется постериорные вероятности (обозначено красной линией на схеме): то есть фактически мы перемножаем наше предположение и вероятности из максимального правдоподобия для случайного значения параметра.

Именно поэтому при использовании таких программ как MrBayes/BEAST/BEAST* и многих других мы задаем априорные распределения. Разумеется, в большинстве пакетов, этот шаг максимально упрощен, тем не менее, очень важно помнить, что наши априорные предположения очень существенно влияют на значения конечных параметров филогенетического дерева.