[ЗАСТАВКА] И вот мы приступаем к первому шагу, а именно к выравниванию коротких последовательностей на геном. Давайте попробуем представить логику процесса или в некотором смысле алгоритма. Первое. У нас есть набор наших секвенированных последовательностей, которые лежат в отдельном файле или файлах, можно их изобразить — просто такую большую кучу коротких фрагментов. Кроме того... естественно, это просто файл со строками, кроме того, у нас есть другой файл, в котором находится одна большая последовательность, если у нас есть сразу геном, но далеко не все организмы имеют счастье быть собранными до полного генома, часто это просто скэффолды, то есть фрагменты полного генома или контиги — ещё более мелкие фрагменты. Вот. И задача сводится к тому, что нам нужно найти позицию каждого из этих ридов, желательно каждого на нашем геноме, то есть из какого именно фрагмента он был получен. Процесс называется, собственно, выравниванием, и множество биологов уже широко использует его, и обычно они используют локальное выравнивание, а именно логарифм BLAST. Кроме того, есть варианты глобального выравнивания, и логика, на самом деле, точно такая же, и процесс очень схож. Те, кто использовал BLAST до этого, им будет совсем всё понятно, остальным, я думаю, станет понятно. И всё выглядит хорошо и красиво, но, на самом деле, сразу так работать не будет. Если мы попробуем использовать какие-то стандартные программы для выравнивания, у нас ничего не получится, потому что они не предназначены просто для выравнивания таких огромных массивов. И первое, что нам нужно сделать — нам нужно... как на самом деле, как нужно, как делается перед тем, как запустить выравнивание BLAST, нам нужно сделать базу. В случае с выравниванием коротких ридов на геном мы говорим о том, что нам нужно построить индекс. Построить индекс, то есть у нас на базе файла FAST-ы, которые имеют очень простую форму, это у нас последовательность генома линейно записана. Строится некоторый другой файл, я покажу как, который называется индекс. Делается это, опять же, специальной программой. Вот именно уже для выравнивания используется набор наших ридов и полученный индекс. Две самые, наверное, популярные программы на текущий момент, которые используются, одна называется BWA, вторая называется Bowtie-2. Почему не используется Bowtie-1? Потому что он уже морально, в общем-то, устарел, и основное отличие в Bowtie-2 от Bowtie первого в том, что он может выравнивать риды с учётом инделов, то есть если у нас длина рида будет немножко не совпадать с тем, что есть в геноме, он всё равно сможет выровнять, в отличие от Bowtie первого, который просто вам наделает кучу мисмэтчей. Вот. Обе программы работают приблизительно одинаково, есть сторонники как первой, так и второй, но вы можете как сами посмотреть, так и решить, чем вам пользоваться удобней, потому что здесь, скорее, выбор будет в зависимости от того, чей интерфейс покажется удобнее или чьи команды интуитивней и так далее. Мне нравится Bowtie-2, потому что мне нравится, как он даёт ответ, мне нравится, насколько быстро он работает, и, надеюсь, вам это тоже понравится. Отдельная статья есть, статьи по сравнению их эффективности, производительности, здесь может решать каждый сам, но, в общем-то, работают они хорошо, и та и другая. Как вы увидите в дальнейшем, здесь есть множество различных задач, которые могут быть решены одновременно несколькими методами. Какой из них лучше, сказать трудно, поскольку результаты будут у них совпадать, но совпадать, например, не до конца, и какие-то крайние варианты будут ошибочны как в первом случае, так и во втором. Давайте посмотрим, как работать с Bowtie-2. И первое, что нам нужно сделать перед тем, как начать работать — нам нужно проверить, всё ли у нас есть для того, чтобы сделать выравнивание. И первое, что нам очень нужно — это нужно установить программу [ПИШЕТ] или проверить, что она работает корректно, если уже установлена. Пункт второй. Нам нужно скачать геном, с которым мы будем работать. [ПИШЕТ] Формат FASTA или MultiFASTA. Пункт третий. Нам необходимо найти наши риды и проверить, что с ними всё в порядке, что они почищены и в хорошем качестве. [ПИШЕТ] Проверить риды. На самом деле, не так много вещей. И давайте попробуем что-нибудь сделать. Во-первых, проверим, всё ли у нас есть. Нам нужна программа под названием Bowtie-2, и она должна работать. Я просто попробую её вызвать, и вы на экране должны увидеть некоторый список сообщений. Поскольку я не дал никаких аргументов программе, она просто высветила справку по использованию — значит, работает. Кроме самой программы Bowtie, у неё в пакете идёт Bowtie-build, это именно то, что используется для построения индекса. С ним тоже всё в порядке. Хорошо, значит, пункт первый выполнен. Дальше проверим, что у нас с файлами. У нас три файла. Один из них геномный в формате FASTA, вот, и два файла с ридами, как мы помним, они у нас парные. Давайте заглянем в файл с FASTA, то есть в файл с геномом. Да, всё нормально, у нас есть корректный заголовок для FASTA-файла, и дальше идёт сама последовательность. Прекрасно. Посмотрим на наши файлы с ридами. Да, и с ними всё тоже замечательно. Как мы помним, внутри находится описание ридов в формате FASTA Q, и отличается от обычной FASTA только тем, что в каждой строке у нас добавлена ещё строка с качеством. Давайте посмотрим, как это обычно выглядит. Вот у нас есть имя рида, в котором по большому счёту кроме его имени бывает заложена дополнительная техническая информация, в том числе, когда он был получен, на каком приборе, а может этого и не быть. Из интересного тут у нас указана, например, его длина. Дальше, после заголовка у нас идёт сама последовательность. После того как последовательность заканчивается, у нас идёт плюс, после которого, на самом деле, может ничего не стоять или, опять же, может быть повторена некоторая техническая информация, и после плюса будет идти строка с качеством для нашего рида. Вот, собственно парность ридов будет определяться их положением в файлах... в файле с одним набором ридов и с другим. И таким образом, есть одно очень важное свойство — если мы хотим использовать их именно парность, мы должны проверить, что там одинаковое количество ридов. Мы это можем сделать очень легко, пересчитав... пересчитав строки в каждом файле. Это можно сделать с помощью команды в Linux-е Word count с параметром −l, то есть нам нужны только строки. Вот, да, как мы видим, каждый файл содержит одинаковое количество строк, то есть файлы с ридами у нас тоже корректны, и мы можем их использовать. И давайте попробуем наконец-то построить индекс. Опять запускаем его без параметров, и он нам выдаст подсказку. Он нам говорит, что не работает по той причине, что мы ему не дали сиквенс. Вот эта ошибка, мы это сейчас исправим. Индекс строится очень легко, нам нужно вписать название команды, после этого есть набор опций, которые нам совершенно необязательны, там не так их даже и много, после которого через пробел идёт два имени файла, то есть нужно указать путь к файлу, если он не в текущей папке, и имя файла. То есть первое — это будет имя генома, с которым мы будем работать, имя FASTA-файла. И второй — это будет имя будущих файлов, которые программа создаст. Да, программа создаст несколько файлов, на самом деле я их называл просто индексом, на самом деле там будет несколько файлов, но тоже не пугайтесь, ничего страшного. Вот, давайте попробуем это сделать. И, собственно, Bowtie-build. Дальше, указываем FASTA-файл, который у нас есть, и после этого дадим название будущему файлу с индексом, это будет просто beta-2 бактерия. И Enter. Программа должна отработать достаточно быстро, и, по крайней мере на бактериальном геноме, и мы увидим, что у нас получится дальше. Как видите, здесь уже даже всё закончилось, у вас это может занять чуть больше времени, всё будет зависеть от мощности отдельно взятого компьютера. И снова проверяем, что у нас получилось в нашей директории. О, в директории стало значительно больше файлов. У нас получилось аж шесть дополнительных файлов, все начинаются с нашего имени, которое мы дали — beta-2 бактерия. Именно эти файлы будут использоваться в дальнейшем для выравнивания. [ЗАСТАВКА]