Monthly Archives: July 2011

Объединение нуклеотидных последовательностей для построения филогенетического дерева

Одна из наиболее трудоемких задач это объединение отдельных участков генома в единый файл (формат NEXUS) и подготовка т.н. блоков для моделирования филогенетического дерева (gene partitioning).

Для того, чтобы создать такой файл, мы воспользуемся программой SequenceMatrix. Эта программа замечательна не только тем, что создает правильные блоки и записывает блоки в nexus-файл со всей необходимой вспомогательной информацией, но и проверяет наличие повторяющихся видов (и исключает менее длинные последовательности), а также заменяет символ черты «-» вначале и в конце последовательности на знак «?», таким образом разделя истинные вставки (indels) от мнимых.

  1. Сначала необходимо загрузить программу SequenceMatrix http://code.google.com/p/sequencematrix/
  2. После этого запустим программу двойным кликом мыши на SequenceMatrix.jar
  3. В главном меню выбираем Import > Add sequences > и дальше добавляем один за другим все наши 4 файла в формате fasta (то, что мы создали с помощью программы Mafft). В результате мы получим следующий результат:
  4. В этой таблице мы получаем следующую информацию:
    • Имя вида
    • Общая (!) длина последовательности (сумма по 4 генам)
    • Число блоков для данного вида о которых есть данные
    • Статистика по каждому блоку (число нуклеотидов, вставок и пропущенных позиций)
  5. Теперь сохраним результирующие файлы: Export > Export sequences as NEXUS (interleaved, 1000bp) > сtenotus_full.nexus
  6. Далее сохраним в отдельный файл только ATP и NADH блоки. Для этого правой кнопкой мыши нажимаем сначала на заголовке колонки ctenotus_12S.fasta, и выбираем Delete column. Затем повторяем операцию для ctenotus_16S.fasta
  7. Cохраняем данные в файл ctenotus_ATP_NADH.nexus (nexus, interleaved, 1000 bp).
  8. Теперь мы полностью подготовили все данные для построения филогенетического дерева и в следующем занятии обсудим и протестируем различные варианты создания филогенетических деревьев, чтобы получить вот такую, например, картинку:

Выравнивание нуклеотидных последовательностей в Mafft

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

Для быстроты мы воспользуемся онлайн сервисом Mafft.

  1. Заходим на страницу http://mafft.cbrc.jp/alignment/server/index.html
  2. Нажимаем на кнопку Browse и выбираем один из файлов в формате fasta. В этом примере: ctenotus_NADH.fasta
  3. Чуть ниже выбираем Output order: same as input (можно оставить и aligned) и вписываем адрес электронной почты для уведомления о завершении задачи.
  4. Все остальные параметры оставляем по умолчанию (потом вы можете сами поэксперемнтрировать с результатами) и нажимаем Submit
  5. После этого мы будем перемещена на страницу результата, которая по мере выполенения работы будет постепенно обновлятся. Как только выравнивание будет выполнено, на странице в браузере будут показаны выравненние последовательности.
  6. Анализируем результат:

    Начало выглядит неплохо, однако, когда мы проматываем ниже, то видим:

    Это характераная особенность алгоритма в Mafft. Если хотя бы одна последовательность будет очень длинной, то быстрый алгоритм Mafft может начать «резать» все остальные. Нас это не устраивает. Так как у нас два вида Ctenotus robustus мы можем попробовать три стратегии: 

    • Удалить первую запись (которая очевидно длинее остальных – но почему это так, нам предстоит разобраться ниже)
    • Поменять настройки Mafft
    • Попробовать использовать Seaview (который в отличие от Mafft использует иной алгоритм выравнивания и не «бьет» последовательности на части).

    К сожалению, лучше всегда проверить все три варианта. Вот что дает нам Seaview

    Теже пробелы. Это невероятно важный признак того, что что-то в наших исходных данных неправильно – либо мы используем разные гены, либо направление сиквенирование было разным.
    Чтобы проверить наше предположение, открываем исходный файл Genbank и внимательно читаем описание DEFINITION для этих двух видов Ctenotus robustus


    Так и есть – для Ctenotus robustus были сиквенированы различные части NADH – subunit 1 и subunit 4. Все остальные виды у нас принадлежат subunit 4 поэтому первый вид мы удаляем и из файла Genbank и из фаста-файла. Если помните, то в начале первой части этой практической работы была упомянута необходимость внимательной проверки результатов все батч-процессов. Так, проблема с NADH состоит в том, что в поисковом запросе мы указали только NADH, без условия ND1 или ND4. Эта ошибка подчеркивает важность знания структуры генома и номенклатуры используемой в каждом конкретном случае для наименования части генетического кода.

  7. Перезапускаем файл (теперь уже без Ctenotus robustus subunit1 и получаем хороший результат (убедится в этом можно посмотрев также статистику слева на странице результата). Результат сохраняем нажав в верхней части окна на FASTA format – Save link as…
  8. Теперь мы должны повторить тоже самое для остальных трех генов. Для ATP подозрительная последовательность обнаружена для одного вида Ctenotus quattuordecimlineatus

    Нам нужно удалить эту запись и повторить выравнивание. Тоже самое мы делаем для файлов 12S и 16S (в них ошибок нет).
  9. Важное замечание. До этого мы нигде необсуждали необходимость включения т.н. внешней группы (Outgroup) в наш набор данных. Это обязательно надо не забывать делать, почему – станет ясно при обсуждении алгоритмов построения филогенетических деревьев. В этом уроке для тренировки мы опустили этот момент, однако в результирующих файлах на сайте внешние группы будут включены (Sphenomorphus muelleri и Prasinohaema virens)