Общие сведения
Пакет BLAST+ доступен онлайн и локально (standalone), в виде пакета утилит для командной строки. На kodomo он уже установлен. Чтобы работать с ним на своём компьютере, скачайте и установите его согласно руководству.
Создание базы
Программа makeblastdb принимает файл с последовательностями в fasta-формате (параметр "-in") и создаёт локальную базу данных. Параметр "-dbtype" указывает на тип последовательности – в случае нуклеотидной последовательности нужно указать "-dbtype nucl".
makeblastdb -in db.fasta -dbtype nucl
Получим базу в виде файлов "db.fasta.nhr", "db.fasta.nin" и "db.fasta.nsq", по которой можно искать программами blastn и tblastn. При поиске обращайтесь к этой базе по имени "db.fasta". Если имя входного файла слишком длинное, можно дать базе удобное короткое имя с помощью параметра "-out".
Поиск: семейство BLASTN
Поиск гомологов нуклеотидной последовательности в нуклеотидной базе данных проводит программа blastn. Обязательные параметры:
-task: алгоритм, который используется при поиске. Варианты: blastn, megablast, dc-megablast. При этом алгоритмы megablast предназначены только для быстрого поиска почти совпадающих последовательностей, а не для поиска гомологичных последовательностей (для этого нужно использовать blastn).
-query: имя файла с последовательностью запроса
-db: имя базы данных
Запустим поиск:
blastn -task blastn -query query.fasta -db db.fasta
По умолчанию найденные выравнивания подаются на stdout.
Дополнительные параметры:
-out: имя выходного файла
-evalue: порог на E-value. Выравнивания с E-value большим, чем порог, не выдаются. Значение по умолчанию — 10
-word_size: длина затравки в нуклеотидах. Значение по умолчанию разное для разных алгоритмов: 11 для blastn и 28 для megablast. У локального BLAST минимально допустимое значение составляет 4, и его разумно использовать если требуется повысить чувствительность поиска для далеких гомологов.
-window_size: размер (в п.н.) окна, в котором требуется наличие как минимум двух слов-затравок указанного размера для того, чтобы программа попыталась построить выравнивание. Используется чтобы еще сильнее уменьшить время поиска, но может влиять на чувствительность. Чтобы использовать так называемый "1-hit algorithm", который применялся в первой версии BLAST, нужно выставить этот параметр = 0, тогда наличие второго слова не будет проверяться (и алгоритм будет работать сильно медленнее).
-outfmt: формат выходного файла. Значение по умолчанию — 0. Популярно также значение 7 — таблица с комментариями
-max_target_seqs: число лучших хитов, которые будут показаны (если выбран -outfmt ≥ 5). Значение по умолчанию – 500. Если находок больше, что может быть актуально для больших баз данных, то все остальные будут просто отброшены!
-num_alignments: максимальное число последовательностей базы данных, для которых приводятся выравнивания. Значение по умолчанию – 250. Указывать нужно что-то одно - или num_alignments, или -max_target_seqs, опции между собой несовместимы.
Пример:
blastn -task blastn -query query.fasta -db test.fasta -out blast.out -evalue 0.001 -word_size 7 -outfmt 7
Полный список опций можно получить, набрав:
blastn -help
Могут понадобиться, в частности, параметры -penalty, -reward, -gapopen, -gapextend.
Программа blastn, как и другие программы поиска (blastp, blastx, tblastn) может принимать в качестве входа (query) файл, содержащий не одну, а много последовательностей. Выходной файл в этом случае будет содержать результаты поиска для каждой входной последовательности. Особенности алгоритма BLAST таковы, что получение результата в этом случае занимает меньше времени, чем сумма времён поисков по отдельным последовательностям. Если входных последовательностей много, то часто удобно в качестве выходного формата выбрать "-outfmt 6" – таблицу без комментариев.
TBLASTN
Для поиска гомолога белка в формальной трансляции нуклеотидного банка программой tblastn нужна база данных в той же форме (те же индексные файлы), что и для программы blastn. Опция -task у данной программы отсутствует; нужны опции -query и -db. Другие полезные параметры: -out, -evalue, -outfmt. Опция -word_size также существует, но менее важна, чем для blastn; по умолчанию её значение равно 3 (имеется в виду длина слова в аминокислотных остатках) и менять её особого смысла обычно нет. Список всех опций можно получить, набрав
tblastn -help
Как и для blastn, значительная часть опций носит чисто технический характер и при обычном использовании не нужна.
BLASTP и BLASTX
Программы blastp и blastx ищут в белковой базе данных. Локальную белковую базу делает та же программа makeblastdb, но, во-первых, из аминокислотных последовательностей, а во-вторых, без опции "-dbtype nucl" (по умолчанию эта опция имеет значение "prot"). В качестве query программа blastp принимает файл с белковыми последовательностями, а программа blastx – с нуклеотидными (которые перед поиском транслируются в шести рамках). Поскольку по сути три программы blastp, blastx и tblastn делают одно и то же (сравнение аминокислотной последовательности с аминокислотной же базой), набор опций у них почти одинаковый.
Обратите внимание, что опция word_size для blastp и прочих программ тоже есть, но не обязательно наличие абсолютно идентичного слова заданной длины - достаточно чтобы его вес подходит под другой параметр -threshold (точное его значение по умолчанию можно узнать посмотрев в актуальный код программы; для blastp оно равно 11, для blastx = 12, для tblastn = 13).
Опция -window_size у blastp и прочих программ этого типа тоже есть (см. описание выше)
TBLASTX
Эта программа похожа на tblastn, но принимает на вход нуклеотидную последовательность, которую транслирует в 6 рамках. В связи с этим ее рабочее время сильно повышается.
Удаленный бласт
Локальный бласт (все поисковые программы: blastn, blastp, blastх, tblastn, tblastx) может обращаться не только к локальным, но и "удалённым" (remote) базам, то есть доступным по сети на сайте NCBI. Для этого укажите флаг "-remote" и как значение параметра "-db" – базу на сайте NCBI (выберите из списка баз онлайн-бласта), например:
blastn -task blastn -query query.fasta -db refseq_rna -out blast.out -evalue 0.001 -word_size 7 -outfmt 7 -remote
Чтобы при удалённом поиске ограничить поиск каким-либо организмом, например, "Arabidopsis", нужно добавить опцию:
-entrez_query 'arabidopsis[orgn]'
BLAST двух последовательностей
Все программы blastn, blastp, blastх, tblastn, tblastx могут использоваться не только для быстрого поиска, но и для локального выравнивания двух последовательностей. Для этого нужно положить последовательности в fasta-формате в два файла, например seq1.fasta и seq2.fasta и выполнить команду, например:
blastn -task blastn -query seq1.fasta -subject seq2.fasta
— результатом будет выравнивание последовательности seq1.fasta с последовательностью seq2.fasta, причём обе последовательности будут обработаны как нуклеотидные. От реализаций алгоритма Смита – Уотермена, например "water" пакета EMBOSS, результат будет отличаться двумя вещами: во-первых, помимо самого выравнивания и его веса будет посчитана и его статистическая значимость (E-value); во-вторых, в отличие от water, программы BLAST не гарантируют нахождение оптимального по весу выравнивания – используется обычный для BLAST быстрый эвристический алгоритм.