Monthly Archives: June 2011

Парсинг данных из GENBANK

Про парсинг генетических данных написано очень много и Интернет наполнен информацией о различных библиотеках на различных языках, поэтому я не буду сейчас в деталях останавливатся на этом вопросе.  Для нашей задачи – а именно подготовка генетических данных для выравнивания и объединения в единый файл (чтобы произвести реконструкцию филогенетического дерева), мы воспользуемся готовой утилитой на Biopython на сайте: http://rocaplab.ocean.washington.edu/tools/genbank_to_fasta

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

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

Для конверации наших файлов в формате .gb мы:

  1. Заходим на сайт по ссылке выше, в разделе General Options нажимаем на кнопку Browse… и выбираем один из наших файлов в формате GB.

    Выбрать файл для обработки

  2. Прокручиваем страницу вниз до раздела Extract Whole Sequence и отмечаем Extract DNA sequence of the whole record, not individual features. The FASTA header line will be the organism.

    Загрузить целиком весь файл

  3. Нажимаем Make Fasta File! После этого мы будем перемещены на результирующую страницу, которую нужно промотать вниз и нажать на сообщение: The conversion was a success. You can download the output file by clicking here!
  4. Сохраняем файл в нашу рабочую директорию и не забываем ставить расширение файла .fasta

    Сохранить файл на локальном компьютере

  5. Повторяем операцию для трех оставшихся файлов genbank. В результате наша рабочая директория будет выглядеть примерно следующим образом:

    Результат для всех блоков генетического кода

  6. Последний и очень важный шаг. В данный момент имена видов ящериц разделены пробелом. Это недопустимо для большинства программ. Поэтому с помощью Find and replace в любом текстовом редакторе необходимо произвести замещение пробела на нижнее подчеркивание (открываем файл fasta > Find and replace> заменяем «» на «_»)

Теперь наши файлы готовы для процедуры выравнивания в Mafft.
Скачать готовые файлы в формате fasta можно отсюда

Анонс семинара: Использование R для изучения макроэволюции

Для тех, кому интересны современные методы изучения макроэволюционных процессов: лаборатория Алфаро в Университете Лос-Анджелеса объявляет набор в летнюю школу, которая состоится с 31 Июля по 5 Августа в Санта-Барбаре, США

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

Для подающих открыт конкурс (финансирование National Science Foundation) и при хорошем стечении обстоятельств можно выиграть грант, который покроет стоимость перелета и проживания.  Подача заявок от студентов, аспирантов и исследователей, которые по каким-то причинам “угнетены” (underrepresented) в науке (например, из-за национальности, языка, географического и соцально-экономического признака)  – приветствуется :)

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

Анализ статьи Derryberry et al. Диверсификация и морфологическая эволюция в семействе Печниковых

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

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

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

Rufous Hornero

Анализ статьи Derryberry et al. (Статья будет опубликована в одном из выпусков  Evolution в 2011 году, пока что доступна только онлайн).

  1. Цель статьи:
    Проанализировать эволюционные процессы, которые привели к диверсификации (видообразованию) в семействе Печниковых (Furnariidae).
  2. Наблюдения о том, как происходит процесс диверсификации:
    Обычно, процесс диверсификации (diversification), связан с тем, что сначала число видов резко возрастает (скорость видообразования превышает скорость вымирания), но с течением времени скорость видообразования-вымирания (speciation-extintion rates) стабилизируется. Таким образом, кривая, показывающая скорость образования новых видов с течением времени должна стабилизироваться на некотором фиксированном уровне, а затем, возможно, за счет повышения уровня вымирания и начать снижаться
  3. Накопление числа видов

  4. Гипотезы, почему диверсификация имеет такую закономерность:
    • Гипотеза экологических шансов (ecological opportunity) (Gavrilets and Vose 2005; Rabosky and Lovette 2008) – видообразование связано с большим числом экологических ниш, которые постепенно заполняются видами
    • Гипотеза географического (аллопатрического) видообразования (geographic speciation) (Pigot et al. 2010) – ландшафтная неоднородность (landscape heterogeniety) формирует барьеры (bariers), препятствующие потоку генов (gene flow)
    • Дополнительные факторы, постепенно балансирующие скорость видообразования:  фенотипические и геномные ограничения (“phenotypic and genomic constraints on trait evolution”)
  5. Методическое решение и протестированные модели:
    • Сиквенированы 285 из 293 видов в семействе (гены: NADH ND3, NADH ND2, RAG-1, RAG-2, Bf-7, общая длина 6,954 нуклеотидов, нуклеотидная таблица размещена в TreeBASE (Study ID S11550)
    • Филогенетическое дерево руконструировано с помощью методов : максимального правдоподобия в PAUP (модель замены нуклеотидов – GTR+G+I и HKY+G+I) и Байесовской статистики в MrBayes 3.1 (UPGMA исходное дерево, 150 миллионов поколений)
    • Морфологические признаки, измеренные для анализа  (morphological traits) были лог-трансформированы
    • Для оценки процесса диверсификации проанализированы следующие модели: pure-birth (PB), birth-death (BD), Yule model с двумя скоростями  (Y2R), линейная (DDL) и экспоненциальная (DDX) модели, а также три модели в которых варьировались скорость видообразования (SPVAR), скорость вымирания (EXVAR) или и то, и другое сразу (BOTHVAR)  (все модели реализованы в библиотеках в R: Geiger, Ape, Laser). Для оценки относительной точности моделей использован критерий AIC
    • Для оценки морфологической эволюции проанализированы следующие модели: Броуновская модель, модель Орншейна-Уленбека, Броуновская модель с дополнительным параментом для оценки скорости накопления дисперсии. В дополнение проведен анализ графиков disparity-through-time (DTT)
  6. Выводы
    • Диверсификация в группах.
      Видообразование в семействе печниковых происходило равномерно без заметного спада с течением времени. Модели диверсификации позволили идентифицировать три точки на филогенетическом дереве ассоциированных со сдвигом в скорости видообразования:
      1 мил.лет. – возможно артифакт данных или истинный сдвиг связанный с климатическим или геологическим событием
      23 мил. лет – изменения в строении черепа могли привести к изменению скорости видообразования в группе
      3.5 мил.лет – изменения в оперении у рода Cranioleuca могли приводить к репродуктивной изоляции, которая в свою очередь повлияла на скорость видообразования
    • Возраст групп – числов видов в группе
      Значимая, позитивная корреляция между возрастом групп и числом видов в группе подтверждает равномерную скорость накопления видов у Печниковых
    • Морфологическая эволюция
      Морфологическое разнообразие (disparity) в основном аккумулировано между кладами, а не внутри клад. Это означает, что  близкородственные видов морфологически схожи не более, чем виды из различных клад. Таким образом, морфологическая эволюция вероятнее всего происходила адаптивно, в зависимости от условий занимаемой экологической ниши
  7. Основной вывод
    Последовательные адаптивные радиации связанные с крупными геоклиматическими изменениями – подъем Анд, развитие системы реки Амазонки, и другие,  –  и обеспечившими условия для географического и экологического видообразования

Выпуск новостей 05.06.2011 (#1)

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

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

# Получение генетических данных из БД GENBANK
# Формат данных GENBANK (поле LOCUS)
# Выравнивание последовательностей ДНК (alignment)
# Подготовка данных для моделирования филогенетического дерева
# Батч-загрузка данных из GENBANK

Раздел “Скрипты
# Стохастические модели. Симуляция Броуновской модели

Раздел “Данные”

# Данные к упражнениям – (Сцинковые) Ctenotus (форматы fasta, genbank)

Развитие сайта

Добавлена возможность распечатки всех страниц сайта в формат PDF и на принтер,  подключен social plug-in/RSS

Батч-загрузка данных из GENBANK

Первое, о чем нужно помнить, это то, что записи в Genbank стандантизированы лишь частично, поэтому после батч-обработки последовательностей, рекомендуется проверить полученные файлы вручную (в третье части этой практической работы мы увидим к чему может привести отсутствие проверки).

Наша цель сегодня – загрузить несколько различных участков ДНК кода для всех видов Ctenotus, доступных в Genbank. Информация о том, какие участки генома были сиквенированы и с каким успехом, мы получили из статьи D. Rabosky (2007) в PRSofB .

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

  1. Имена видов
  2. все записи должны принадлежать роду Ctenotus

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

    • nuclear ATP synthetase b-subunit intron
    • mitochondrial ND4
    • tRNAs: tRNA-ser, tRNA-his, tRNA-leu
    • mitochondrial 12S rRNA
    • mitochondrial 16S rRNA
  4. Обратите внимание, что митохондриальная ND4 (NADH dehydrogenase subunit 4) идет в базе вместе с tRNA’азми, поэтому не имеет смысла обрабатывать такие последовательности отдельно друг от друга. В результате, у нас получаются 4 участка для загрузки: (1) ATP (2) ND4 + tRNA’ы (3) 12S и (4)  16S.

  5. Длина последовательности участка
  6. В случае с ящерицами, это не так важно, но в целом рекомендуется указывать границы протяженности участка ДНК (например от 300 до 5000 нуклеотидов). Но это условие подразумевает, что вы заранее знаете длину последовательности и можете поставить ограничение. Например, известно заранее, что авторы статьи сиквенировали 671 bp для ATP  – таким образом мы сразу исключаем слишком короткие последовательности, явным образом неудовлетворяющие нашей задаче. Однако если длина последовательности неизвестна – лучше это условие пропустить.

В результате, у нас образуются три поисковых правила (прочитать о структуре БД Genbank и номенклатуре и свойствах полей можно в практикуме 2):

“Ctenotus”[Organism]  AND ATP[All Fields] AND 300:20000[SLEN]

В таком запросе мы указываем, что:

  • поле Organism, обязательно должно содержать слово Ctenotus
  • другие поля должны содержать слово ATP (название интрона) хотя бы единожды
  • поле SLEN должно быть в пределах от 300 до 20000 нуклеотидов

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

Скрипт, которым мы воспользуемся, решает следующую задачу:

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

ctenotus,ATP,300:2000
ctenotus,NADH,300:20000
ctenotus,12S,300:20000
ctenotus,16S,300:20000

Это значит, что первая поисковая строка будет равнозначна следующему ручному запросу в Genbank:

ctenotus[ORGN] AND ATP[All Fields] AND 300:2000[SLEN]
Вторая:
ctenotus[ORGN] AND NADH[All Fields] AND 300:20000[SLEN]
и т.д.

Скрипт выглядит следующим образом:

#!/usr/bin/perl
use Bio::DB::GenBank;
use Bio::DB::Query::GenBank;
open (DRR, "conditions.txt");
my @alldir=<DRR>;
$num=@alldir;
print "number of searches: $num\n\n";
for ($inc = 0; $inc < $num; $inc++) {
#read line from file and split
$item = @alldir[$inc];
chomp $item; #clean line
($species,$gene,$length) = split(",", $item); #split by comma as separator
print "searching for: $species and $gene\n\n"; #print species and gene for search
#make up a query
$query_string=$species."[ORGN] AND ".$gene."[All Fields] AND ".$length."[SLEN]";
$file=$species."_".$gene.".gb"; #create output file name
print "Query: $query_string\n"; #print out query string
$query = Bio::DB::Query::GenBank->new(-db=>'nucleotide', -query=>$query_string); #form new genbank object
$count = $query->count; #get number of sequences for a query
print "Number of sequences found: $count\n"; #print it out
# get a genbank database handle
$gb = Bio::DB::GenBank->new; #(-retrievaltype=>'tempfile',-format=>'Genbank');
$stream = $gb->get_Stream_by_query($query); #returns a Bio::SeqIO stream object
$seqio=Bio::SeqIO->new(-format=>'Genbank',-file=>">$file");
$i=0;
#make a stream to write out sequences
 while ($seq = $stream->next_seq) {
$seqio->write_seq($seq);
$i++;
print "Writing entry $i out of $count\r";
}
$seqio->close();
if($count>0) {       print "\nDone.\n\n";    } #final check if something is found
else {       print "Done.\n";    } #if no sequences found
}
close (DRR); #close file
exit(); #exit

NB: Этот скрипт заслуживает внимания и аккуратной чистки (написано не в режиме strict, без exceptions, без обращения к пользователю за именем файла, и т.д.), но на данный момент мы выспользуемся этим неаккуратным вариантом.

Чтобы запустить скрипт нужно сделать несколько вещей (внимание – скрипт требует установленнго ActivePerl и библиотек Bioperl):

  1. Создаем рабочую директорию Work в удобном для вас месте
  2. В ней создаем новый текстовый файл, который называем conditions.txt и копируем туда наши поисковые условия:
  3. ctenotus,ATP,300:2000
    ctenotus,NADH,300:20000
    ctenotus,12S,300:20000
    ctenotus,16S,300:20000
  4. Также копируем туда скрипт, представленный выше и называем его genbank.pl
  5. Далее запускаем командую строку (Start > Run > cmd.exe) и перемещаемся (с помощью команды cd) в рабочую директорию Work

    Сохранение скрипта и файла с условиями в общей папке (рабочей директории)

  6. В рабочей директории Work запускаем наш скрипт:
    D:\work> perl genbank.pl 

    Запуск скрипта на языке Perl

  7. Если все идет корректно, то в окне cmd начнут появлятся наши поисковые запросы:

    Так выглядит запущенный скрипт Perl при получении данных из GENBANK

  8. И в результате в нашей рабочей директории окажутся 4 файла с расширением gb.

    Результирующая директория с загруженными файлами в формате Genbank

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

Скачать готовые файлы в формате .gb можно отсюда

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

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

Пример филогенетического дерева (из статьи doi:10.1016/j.cell.2007.04.004)

 

Для этого нам потребуется:

  1. Установленная программа Mafft (для автоматического выравнивания – загрузить отсюда)
  2. Установленная программа SequenceMatrix (для создания блоков в формате nexus – загрузить отсюда)
  3. Установленный Perl (для экстрагирования из базы последовательностей в батч-режиме) – необходим установленный ActivePerl (как установить можно узнать, например, вот здесь)
  4. Установленные библиотеки Bioperl (как установить прочитать вот здесь)

Так как это практическое руководство получилось очень большим, мы решили разбить его на 4 блока:

Раздел 1. Батч-загрузка данных из GENBANK >>>

Раздел 2. Парсинг данных из GENBANK >>>

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

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

Выравнивание последовательностей ДНК (alignment)

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

Программ, позволяющих осущелять выравнивание сиквенированных последовательносей, множество. Наиболее распостранены такие программы (большинство из них бесплатны) как:

  • MUSCLE
  • Mafft
  • KAlign
  • ClustalW

Полный список доступных программ можно найти на этой странице wikipedia

Большая часть программного обеспечения работает напрямую с форматом FASTA: как sequential так и interleaved форматы (узнать больше, откуда можно получить данные в таком формате, читайте здесь). В этом примере мы произведем выравнивание нуклеотидных последовательностей из предыдущего практического упражнения с помощью программы Seaview (которая обеспечивает более интуитивно понятный интерфейс на первых этапах работы с генетическими данными и использует алгоритм progressive alignment)

  1. Загрузите дистрибутив программы и установите на своем компьютере.
  2. Запустите программу и перетащите мышкой в главное окно программы файл ctenotus.fasta. В результате вы увидите примерно такую картинку:

    Невыровненные (исходные, not aligned) последовательности ДНК

  3. Потратье некоторое время на визуальное изучение нуклеотидных последовательностей. Обатите внимание, что например последовательности 3 и 4 уже расположены гомологично друг другу. Это можно увидеть по числу совпадающих нуклеотидов между сиквенсами, а также по похожему рисунку двух последовательностей
  4. После того, как вы визуально изучили последовательность, выберите в главном меню кнопку Align и из выпадающего меню Align all. После того, как программа закончит выравнивание, в новом окне, где представлена статистика обработки нуклеотидов, нажмите OK
  5. Выравненные последовательности будут выглядеть примерно следующим образом

    Выровненные последовательности (aligned)

  6. С помощью прокрутки внизу просмотрите полученный результат. Для нас наибольшую важность, с точки зрения корректности выравания, представляют (1) пропуски (gaps или indels) (2) сильно отличающиеся участки (большое число нуклеотидных замен).
  7. Так, в нашем случае наиболее сильно отличной от остальных по числу нуклеотидных замен записью явлется запись 30601168 (Ctenotus pantherinus). Например, рассмотрим внимательно участок начинающийся с позиции 325 (последовательность три, C. pantherinus)

    Увеличенный фрагмент кода ДНК

  8. В этом частке мы обнаруживаем дополнительные 4 нуклеотида TAAC – и разрывы в двух последовательностя (2ой и 4ой). В данном случае в первую очередь, если мы сами получали сиквенсы, нужно убедиться что у данного вида действительно пристуствует такой индел (indel) в хроматограмме получения после хроматографа. Если данные были загружены из БД Genbank проверить это мы не можем.

    Во вторых, нам надо внимательно проанализировать верхную запись. На мой взгляд (а как любое выравние, это вопрос субъективного восприятия), выравнивание второй с верху записи в данном случае представляется спорным, так как вполне возможно что нуклеотиды AA могут быть сдвинуты влево образуя гомологи с последовательностью C. Pantherinus. Однако самое главное, что мы должны проверять в кодирующих (!) последовательность, это равномерность сдвига – то есть при появлении инделов в одной из последовательстей сдвиги в остальных записях должны быть кратными 3, а также в них не должно быть STOP-кодов. Обычно неправильность выравнивания легко определить именно по внезапному появлению стоп-кодов в кодирующей части генетического кода. Стоп-кодон должен быть присутствовать в начале и в конце секвенированной части.

  9. Чтобы проверить наличие стоп-кодов переключим режим просмотра выровненных последовательностей в режим аминоклислот. Для этого нажмите Props-> View as Proteins

    Увеличенный фрагмент кода ДНК (режим просмотра - аминокислоты)

    Как видите, в наших последовательностях появилось изрядное число стоп-кодонов (обозначены знаком *), а также неполных комбинаций (1 или 2 нуклеотида вместо трех – обозначены ХХ). Это значит что нужно попытаться отыскать в каком месте последовательстей произошел неверный сдвиг влево. Чаще всего нужно с помощью линейки прокрутки перемотать сиквены до упора вправо и удалить сначала всю первую колонку нуклеотидов, опять переключится в режим аминокислот и проверить наличие стоп кодонов, далее если не помогло, сделать тоже самое со вторым нуклеотидом и опять проверить аминокислоты.

    Проверка гомологов, правильности indel’ов, reading frame для кодирующих последовательностей – одна из наиболее трудоемких частей работы с генетическими данным. Во второй части этой практической работы мы посмотрим на то, как проводить проверку на примере генетических данных видов семейства Polygonaceae (гречишные) для участка пластидного генома TRNK-UUU (где структурно  присутствуют три элемента: интрон, экзон и еще один интрон, и проверка reading frame’а неизбежна)

Получение генетических данных из БД Genbank

Основным источником генетических данных на данный момент является международная база данных GenBank. База данных открыта для всех и позволяет осуществлять и загрузку и выгрузку данных всеми пользователями. Для поиска и получения данных регистарция необязательна.

Поиск и получение данных из GB может осуществляться с помощью нескольких интерфейсов:

  1. Самый простой и интутивно понятный интерфейс для получения и поиска генетических последовательностей (нуклеотидных, аминокислотных и белковых) называется Entrez Nucleotide,  и включает в себя три основных коллекции данных:  CoreNucleotide (the main collection), dbEST (Expressed Sequence Tags), и dbGSS (Genome Survey Sequences). Через этот интерфейс удобно искать последовательности по ключевым словам (например, вид, название гена, год публикации, авторы и т.д.)
  2. Более комплексный интерфейс – BLAST (Basic Local Alignment Search Tool) – позволяет искать совпадения на основании непосредственно нуклеотидных последовательностей, а также картировать найденные последовательности и сравнивать степень их совпадения друг с другом.
  3. Наиболее продвинутый, но в тоже время гибкий, интерфейс доступа к базе NCBI e-utilities. Он позволяет на програмном уровне обратиться к базе данных и получить данные в батч-режиме (много записей единым блоком). Написание скриптов возможно в общем-то на любом языке программирования, но уже доступны библиотеки под Perl (BioPerl), Python (Biopython) и др.

Все данные в GB хранятся в двух основных форматах:

  • Нативный формат GB (который так и называется genbank)
  • Один из наиболее широко распространенных форматов хранения и передачи генетических данных – fasta.

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

.gb, .genbank, .fas, .fasta, .fs

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

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

  1. Перейти по ссылке http://www.ncbi.nlm.nih.gov/sites/entrez?db=nucleotide
  2. В главном поисковом окне ввести
  3. (*12S*) AND Ctenotus[Organism]

    и нажать кнопку Search. В данном случае мы указали, что хотим искать все записи, у которых в поле Organism стоит слово Ctenotus, а в любых других полях должно быть указано *12S* – это название митохондриального гена, который нам потребуется для дальнейшего анализа. Такая гибкость при указании названия гена очень часто является следствием нестрогих правил ввода записей в базу данных GenBank. Для построения более сложных запросов на главной поисковой странице entrez нужно перейти в раздел Advanced search.

  4. В результате поиска мы получим 6 записей из базы данных. Наиболее важная информация для нас следующая:
    • название вида
    • название гена и то, как именно он секвенирован (полностью или нет)
    • длина гена
    • accession ID – уникальный идентификатор записи в базе
  5. Пример результата поиска данных в БД Genbank

  6. Как мы видим, у нас есть три варианта просмотра записи – GenBank, Fasta и Graphics. По умолчанию, если мы нажмем на главную строчку вывода записи (с названием вида) то мы увидим запись в формате Genbank.Так как в этом практическом задании нас интересует получение последовательностей нуклеотидов в пригодном для непосредственного анализа формате, то мы выбираем опцию FASTA.  Полученная записать будет выглядеть следующим образом

    Формат записи генетических данных - FASTA

    Где собственно сама необходимая нам составляющая начинается со знака > и заканчивается в конце нуклеотидной последовательности.

  7. Скопируем эту запись в буфер и вставим в открытый пустой текстовый документ
  8. Пример записи Genbank в формате fasta

  9. Перейдем обратно на главную страницу с результатом поиска и повторим пункты 4-5 для пяти оставшихся нуклеотидных последовательностей
  10. Набор нуклеотидных последовательностей для 5 видов Ctenotus в формате fasta

    В результате все наши нуклеотидные последовательности будут сохранены в одном файле, который мы назовем Ctenotus.fasta. Важно понимать, что в данный момент наши записи находятся в невыровненном (not aligned) вложенном (Interleaved) формате. Именно он обычно является исходным форматом для всех дальнейших операций.

    Скачать данные, которые должны получится в результате этого практического упражнения

Добро пожаловать или о том, как устроен этот сайтWelcome and what this site is about

Добро пожаловать на сайт “Филогенетика и эволюционная биология”!

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

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

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

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

На сайте выделены три основных раздела – практические руководства, обзоры статей и книг и скрипты.

Практические руководства – это набор практикумов, своеобразных рецептов, пошаговым образом описывающих как решить некоторую аналитическую задачу. Обычно, мы стараемся использовать только открытое и бесплатное программное обеспечение для таких задач. В силу специализации автора очень часто решение задачи будет заточено под использование статистического пакета R, но в большинстве случаев любой вопрос можно аналогичным образом решить и в другом программном пакете удобном читателю (например, Mathematica или MatLab). Тоже самое касается скриптов: чаще всего скрипты будут написаны на Perl/Bioperl, реже на Python/Biopython, очень часто на R. Но так как очень часто нашей целью является обсуждение конкретного алгоритма, то реализация кода возможна на любых других языках.

Обзоры статей и книг – это небольшие заметки, в которых будет кратко анализироваться содержание статей и то, каким образом статья была сделана (опять же – говоря лишь о практической составляющей). Обсуждая раздел статьи “Материалы и методы” мы будем стараться давать перекрестные ссылки на практические руководства, чтобы читатели могли сами попробовать сделать тоже самое не тратя много времени на поиск того, как что-то можно реализовать.

Скрипты – как следует из названия, в этом разделе будут публиковаться скрипты и программы, для облегчения и автоматизации задач в области эволюционной биологии. Скрипты не претендуют на абсолютную универсальность, и скорее всего могут быть переписаны с использованием более эффективных алгоритмов, поэтому любые комментарии, дополнения, коррекции или даже переделки кода очень приветствуются.Welcome to “Phylogenetics and Evolutionary Biology” website!

The purpose of this site is to distribute knowledge in a form of practicals, tutorials, code blocks and programs that will allow beginners and possibly experts to become familiar with methods in phylogenetics, macroevolutionary biology and bioinformatics (the last one – at a very beginner level)

Evolutionary biology, phylogenetics, and molecular biology – a huge area of ​​scientific knowledge growing rapidly and it would be strange to try to fully consider all aspects and problems.Therefore, by the specialization of the author at this stage most of the articles and tutorials will deal with issues of comparative analysis, phylogenetics and macroevolution.

Most of the articles written on this point does not claim to infallibility – so any comments and corrections will be accepted with deep gratitude.

Of course, we invite all interested persons to participate in the development of the site, and if you suddenly found yourself having a small practical, guide, how-to, review articles, or simply interesting subject – we will gladly publish it on the site. Do not be afraid to participate – to be co-author of the site is interesting and not very hard :).

The site has three main sections – practical guidelines, reviews of articles and scripts.

Practical Guide – a collection of tutorials, original recipes, describing in a step by step manner how to solve some pracitical task related to the field. Usually, we try to use only an open and free software for such tasks. In view of the author’s expertise is often the solution will be enchanted by the use of statistical package R, but in most cases, any issue can be solved in a similar way in another software package suitable to the reader (eg, Mathematica or MatLab). The same goes for script: scripts are often written in Perl / Bioperl, at least in the Python / Biopython, very often on R. But as is often our aim is to discuss a specific algorithm, the implementation of the code can be in any other languages.

Reviews of books and articles – is a small note, which will be briefly analyzed the content of articles and the manner in which the article was made (again – speaking only of the practical component). Section of the article discussing the “Materials and Methods,” we will try to give cross-references to practice guidelines, so that readers can do to try to do the same thing without spending much time searching for how something can be realized.

Scripts – as the name implies, this section will be published scripts and programs to facilitate and automate tasks in the field of evolutionary biology. Scripts do not claim absolute universality, and most likely can be rewritten using more efficient algorithms, so any comments, additions, corrections or modifications of code are very welcome.