Биоинформатический пакет EMBOSS и командная оболочка Bash

Bash EMBOSS

Команда InfoSeq биоинформатического пакета EMBOSS

EMBOSS - акроним от European Molecular Biology Open Software Suite. EMBOSS - это свободное програмное обеспечение с открытым кодом, пакет, специально разработанный для нужд молекулярной биологии и биоинформатического сообщества.

Мною приведено описание команд/программ:

1. Открываю терминал linux.

В Linux, используя gnome-terminal, подключаюсь к серверу kodomo:

ssh eugeniaprokhorova@kodomo.fbb.msu.ru

2. Создаю директорию Pr1.

Командой mkdir в своей домашней директории создаю директорию Term2, в ней - директорию Block1, в ней - директорию Practices, в ней - директорию Pr1:

mkdir Term2, mkdir Term2/Block1, mkdir Term2/Block1/Practices,mkdir Term2/Block1/Practices/Pr1.

Перехожу в эту директорию:

cd Term2/Block1/Practices/Pr1

3. Получаю информацию о своем белке.

Попробовав команду:

infoseq sw:rs3_ecoli

выдавшую на терминал информацию о записи RS3_ECOLI банка SwissProt, записываю информацию о своем белке в файл с именем '1WPV'.info:

infoseq sw:hutp_bacsu > '1WPV'.info

Символ > перенаправляет стандартный вывод (stdout) команды в файл.

Проверяю результат:

more 1WPV.info

На всякий случай: гиперссылки выделены голубым.

USA Database Name Accession Type Length Organism Description
sw-id:HUTP_BACSU sw HUTP_BACSU P10943 P 148 Bacillus subtilis Hut operon positive regulatory protein

4. Записываю информацию о программе infoseq в файл.

Команда infoseq -help (а также man infoseq) выдает на терминал информацию о программе "infoseq". На терминал выдаются и stdout, и stderr. Но команда infoseq -help > infoseq.help приводит к созданию пустого файла. Символ > перенаправляет в файл только stdout, следовательно, информация о программе "infoseq" на терминале представляла собой stderr поток. Отправляю его в файл командой:

infoseq -help 2> infoseq.help

Существуют следующие файловые дескрипторы:

0 - stdin - стандартный поток ввода;

1 - stdout - стандартный поток вывода;

2 - stderr - стандартный поток ошибок.

Для операций с этими дескрипторами, используют символы:

> (перенаправление вывода, используемое и в пункте 3),

>> (добавление вывода в конец файла),

< (перенаправление ввода),

& указывает на дескриптор stdout (&>myfile - перенаправление вывода и ошибок в myfile; 2>&1 - перенаправление вывода ошибок на стандартный вывод).

5. Используя "*" в имени последовательности нахожу такие же белки в других видах рода Bacillus.

В идентификаторе HUTP_BACSU, код вида: BACSU образован из BACillus SUbtilis. Поэтому использую команду:

infoseq sw:hutp_bac* > bac.info

Число строк в ответе равно 20. Вприципе, вместо звездочки можно было использовать, например, ??. Звездочка *, вопросительный знак ? и квадратные скобки [ ] используются для "масок" имен файлов. * - любой объект, ? - один любой символ, [...] - любой символ из указанных в скобках, например, [а-z] - любая строчная буква, а [a-z0-9A-Z] - любая буква или цифра.

6. Повторяю команду из предыдущего задания, используя разные опции изменения выдачи результата.

[-sequence] - стандартный определитель - показывает имя последовательности, различные параметры и примечания (заданные США).

Команда:

infoseq -sequence sw:hutp_bac*

дает тот же результат, что и infoseq sw:hutp_bac*.

Дополнительные определители:

-outfile - при вводе имени файла программа записывает в него детали последовательности.

Например, при вводе команды:

infoseq -outfile sw:hutp_bac*

запрашивается ввод последовательности (2 попытки). При вводе:

sw-id:hutp_bacac

создается файл sw:hutp_bac* с информацией о hutp_bacac.

-html - данные выводятся как html-таблица.

Команда:

infoseq -html sw:hutp_bac*

приводит к выводу таблицы (которая после немного отформатирована мной):
USADatabaseNameAccessionTypeLengthOrganismDescription
sw-id:HUTP_BACA2swHUTP_BACA2A7ZAE3P148Bacillus amyloliquefaciens (strain FZB42)Hut operon positive regulatory protein
sw-id:HUTP_BACAAswHUTP_BACAAC3P4M3P146Bacillus anthracis (strain A0248)Hut operon positive regulatory protein
sw-id:HUTP_BACACswHUTP_BACACC3L981P146Bacillus anthracis (strain CDC 684 / NRRL 3495)Hut operon positive regulatory protein
sw-id:HUTP_BACAHswHUTP_BACAHA0RH40P146Bacillus thuringiensis (strain Al Hakam)Hut operon positive regulatory protein
sw-id:HUTP_BACANswHUTP_BACANQ81Y44P146Bacillus anthracisHut operon positive regulatory protein
sw-id:HUTP_BACC0swHUTP_BACC0B7JI81P146Bacillus cereus (strain AH820)Hut operon positive regulatory protein
sw-id:HUTP_BACC1swHUTP_BACC1Q733H7P146Bacillus cereus (strain ATCC 10987)Hut operon positive regulatory protein
sw-id:HUTP_BACC2swHUTP_BACC2B7ISJ3P146Bacillus cereus (strain G9842)Hut operon positive regulatory protein
sw-id:HUTP_BACC3swHUTP_BACC3C1EN94P146Bacillus cereus (strain 03BB102)Hut operon positive regulatory protein
sw-id:HUTP_BACC4swHUTP_BACC4B7HCD1P146Bacillus cereus (strain B4264)Hut operon positive regulatory protein
sw-id:HUTP_BACC7swHUTP_BACC7B7HKJ2P146Bacillus cereus (strain AH187)Hut operon positive regulatory protein
sw-id:HUTP_BACCEswHUTP_BACCEQ8GCJ0P132Bacillus cereusHut operon positive regulatory protein (Fragment)
sw-id:HUTP_BACCNswHUTP_BACCNA7GR01P146Bacillus cereus subsp. cytotoxis (strain NVH 391-98)Hut operon positive regulatory protein
sw-id:HUTP_BACCQswHUTP_BACCQB9IUH1P146Bacillus cereus (strain Q1)Hut operon positive regulatory protein
sw-id:HUTP_BACCRswHUTP_BACCRQ81AC5P146Bacillus cereus (strain ATCC 14579 / DSM 31)Hut operon positive regulatory protein
sw-id:HUTP_BACCZswHUTP_BACCZQ637H7P146Bacillus cereus (strain ZK / E33L)Hut operon positive regulatory protein
sw-id:HUTP_BACHDswHUTP_BACHDQ9KBE7P147Bacillus halodurans (strain ATCC BAA-125 / DSM 18197 / FERM 7344 / JCM 9153 / C-125)Hut operon positive regulatory protein
sw-id:HUTP_BACHKswHUTP_BACHKQ6HFE8P146Bacillus thuringiensis subsp. konkukian (strain 97-27)Hut operon positive regulatory protein
sw-id:HUTP_BACSUswHUTP_BACSUP10943P148Bacillus subtilisHut operon positive regulatory protein
sw-id:HUTP_BACWKswHUTP_BACWKA9VPT9P146Bacillus weihenstephanensis (strain KBAB4)Hut operon positive regulatory protein

Продвинутые определители:

-[no]columns - настройка вывода информации в виде четких, выровненных колонок, либо в виде записей с разделителями, которые настраиваются опцией -delimeter.

Командой:

infoseq nocolumns sw:hutp_bac* > nocolumns.txt

получаю запись в виде строк, не разделенную на колонки.

-delimeter - [| - по умолчанию] обычно один символ, используемый для разделения индивидуальных записей в файле вывода.

-only - помогает сократить файл вывода. Можно также использовать -nohead, -noname, -nolength, -noacc, -notype, -nopgc, -nodesc и др., что позволяет исключить выбранный параметр.

Например, используя команду

infoseq -only -length sw-id:hutp_bac*

получаю колонку с длинами последовательностей.

-[no]heading - настройка показа заголовков колонок.

Общий определитель:

-help.

7. Создаю описание infoseq и ее параметров (см. пункт 6).

Команда entret - получает записи из неструктурированных баз данных и файлов. Читает одну или более полных последовательностей из базы данных или файла и записывает их в текстовый файл.

Например, чтобы получить документ для моего белка, задаю команду:

entret sw:hutp_bacsu

Далее необходимо ввести имя файла:

Full text of a sequence database entry output file [hutp_bacsu.entret]: hutp_bacsu

В итоге в моей дирректории появился файл hutp_bacsu.entret.

Команда showdb - выдает информацию из доступных баз данных. Не требует обязательных аргументов. Отображает таблицу с названиями, содержимым и методами доступа к последовательностям, доступных для установленного пакета EMBOSS.

Командой:

showdb -html

получаю вывод информации в виде html-таблицы:

NameTypeIDQryAllComment
ref100ProteinOK OK OK UniProt Reference Clusters - UniRef100
ref50ProteinOK OK OK UniProt Reference Clusters - UniRef50
ref90ProteinOK OK OK UniProt Reference Clusters - UniRef90
swProteinOK OK OK UniProtKB/Swiss-Prot Release 2011_12 of 14-Dec-2011
tremblProteinOK OK OK UniProtKB/TrEMBL Release 2011_12 of 14-Dec-2011
emblNucleotideOK OK - EMBL from EBI SRS server
genbankNucleotideOK OK OK GenBank from MRS on CMBI

Командой:

showdb -database ref50 -html

получаю информацию о базе данных ref50:

NameTypeIDQryAllComment
ref50ProteinOK OK OK UniProt Reference Clusters - UniRef50

С помощью -only можно сократить файл вывода, использовав необходимые параметры: -heading, -type, -id, -query, -all, -comment (-full отображает всю информацию).

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

Программы парного выравнивания

В EMBOSS есть четыре программы, выдающие парное выравнивание: needle, water, stretcher и matcher. Все четыре программы можно запустить (с параметрами по умолчанию) примерно одинаковым образом. Например, чтобы выровнять программой stretcher последовательности, находящиеся в файлах seq1.fasta и seq2.fasta, нужно выполнить команду:

stretcher seq1.fasta seq2.fasta alignment.stretcher -auto

Здесь alignment.stretcher — имя файла, в котором окажется результат. Общий синтаксис:

program usa1 usa2 outfile -auto

(если "-auto" опустить, то needle и water спросят, какие применять штрафы за пробелы). Здесь usa1 и usa2 — адреса двух последовательностей, outfile — имя выходного файла.

Программы needle и stretcher выдают оптимальное полное выравнивание.

Программа needle.

Стандартные определители:

[-asequence] - имя последовательности, дополнительный формат или адрес (США).

[-bsequence] - имя последовательности(тей), дополнительный формат или адрес (США).

-gapopen - штраф за открытие гэпа (по умолчанию равен 10.0), может быть от 1.0 до 100.0.

-gapextend - штраф за продление гэпа (по умолчанию равен 0.5), может быть от 0.0 до 10.0.

[-outfile] - название выходного файла с выравниванием.

Дополнительные определители:

-datafile - матрица весов (по умолчанию используется EBLOSUM62 для белков и EDNAFULL для ДНК).

-endweight - применение штрафа за концевой геп.

-endopen - штраф за открытие конечного гэпа (по умолчанию равен 10.0), может быть от 1.0 до 100.0.

-endextend - штраф за продление конечного гэпа (по умолчанию равен 0.5), может быть от 0.0 до 10.0.

Используя команду:

needle sw:p10943 sw:C0NJU0 prot.needle -gapopen 11 -gapextend 1

Получаю файл prot.needle с полным выравниванием, применяя матрицей весов замен BLOSUM62, штраф за открытие гэпа, равным 11, а за продолжение - 1 (параметры, используемые по умолчанию в BLASTp).

Программа stretcher.

Стандартные определители:

[-asequence] - имя последовательности, дополнительный формат или адрес (США).

[-bsequence] - имя последовательности, дополнительный формат или адрес (США).

[-outfile] - название выходного файла с выравниванием.

Дополнительные определители:

-datafile - матрица весов (по умолчанию используется EBLOSUM62 для белков и EDNAFULL для ДНК).

-gapopen - штраф за открытие гэпа (по умолчанию равен 12 для белков, 16 - для нуклеиновых кислот).

-gapextend - штраф за продление гэпа (по умолчанию равен 2 для белков, 4 - для нуклеиновых кислот).

Используя команду:

stretcher shortseq1.fasta shortseq2.fasta shortseqs.stretcher

Получаю выравнивание shortseqs.stretcher.

Программа water выдает оптимальное частичное выравнивание.

Стандартные определители:

[-asequence] - имя последовательности, дополнительный формат или адрес (США).

[-bsequence] - имя последовательности, дополнительный формат или адрес (США).

[-outfile] - название выходного файла с выравниванием.

Дополнительные определители:

-datafile - матрица весов (по умолчанию используется EBLOSUM62 для белков и EDNAFULL для ДНК).

Используя команду:

water sw:p10943 sw:C0NJU0 prot.water -gapopen 11 -gapextend 1

Получаю файл prot.water с частичным выравниванием, применяя матрицей весов замен BLOSUM62, штраф за открытие гэпа, равным 11, а за продолжение - 1 (параметры, используемые по умолчанию в BLASTp).

Программа matcher выдаёт несколько (по умолчанию три) частичных выравниваний с наибольшим весом.

Стандартные определители:

[-asequence] - имя последовательности, дополнительный формат или адрес (США).

[-bsequence] - имя последовательности, дополнительный формат или адрес (США).

[-outfile] - название выходного файла с выравниванием.

Дополнительные определители:

-datafile - матрица весов (по умолчанию используется EBLOSUM62 для белков и EDNAFULL для ДНК).

-alternatives - количество альтернативных выравниваний (по умолчанию строится одно).

-gapopen - штраф за открытие гэпа (по умолчанию равен 14 для белков, 16 - для нуклеиновых кислот).

-gapextend - штраф за продление гэпа (по умолчанию равен 4).

Используя команду:

matcher sw:p10943 sw:c5d4k0 aligns.matcher -alternatives 4

Получаю файл aligns.matcher, содержащий 4 локальных выравнивания.

Программа seqret читает и записывает запрошенные последовательности в файл.

Стандартные определители:

[-sequence] - имя последовательности, дополнительный формат или адрес (США).

[-outseq] - имя и формат выходного файла.

Продвинутые определители:

-feature - использование дополнительной информации.

-firstonly - остановка после чтения одной последовательности.

Используя команду:

seqret sw:hutp_bacsu hutp_bacsu.seqret

Получаю файл hutp_bacsu.seqret.

Программы множественного выравнивания

Программа consambig создает неоднозначную согласованную (консенсусную) последовательность из множественного выравнивания.

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

Стандартные определители:

[-sequence] - файл, содержащий последовательность выравнивания.

[-outseq] - имя и формат выходного файла с последовательностью.

Дополнительные определители:

-name - название консенсусной последовательности (любая строка).

Использую команду:

consambig delta_aligned.fasta delta_consambig.fasta

Получаю файл delta_consambig.fasta.

Программа distmat создает матрицу эволюционных расстояний для последовательности множественного выравнивания.

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

Описание программы довольно большое, включает ряд параметров.

Использую команду:

distmat delta_aligned.fasta delta.distmat -protmethod 0

Получаю файл delta.distmat.

Программа plotcon характеризуется графической выдачей, строит консервативность выравнивания последовательностей, вычисляя схожесть в определённых участках выравнивания с учётом весов замен, взятых из матрицы схожести.

Описание программы довольно большое, включает ряд параметров.

По умолчанию программа выдает картинку на экран монитора, но связь посредством Putty этого не позволяет, поэтому на вопрос "Graph type" нужно отвечать не по умолчанию ("x11"), а указать один из возможных форматов выходного файла: "data", "ps", "gif", "png", "pdf". Если указать "data", программа сформирует текстовый файл с таблицей, пригодный для импорта в Excel. В остальных случаях будет создан графический файл соответствующего формата.

Использую команду:

plotcon delta_aligned.fasta -graph gif -winsize 4

Получаю файл plotcon.1.gif, представляющий собой график:

Командная оболочка Bash

Bash (от Bourne Again Shell, усовершенствованная и модернизированная вариация командной оболочки Bourne shell) - одна из наиболее популярных современных разновидностей командной оболочки UNIX; основная облочка для работы в командной строке в большинстве Linux-систем.

8. Нахожу у себя файл имя которого содержит "bash_history".

C помощью команды find нахожу в своей домашней директории файл, содержащий в своем имени строку "bash_history":

find ~ -name '*bash_history*'

Здесь ~ - указанная директория (плюс ее субдиректории), '*bash_history*' - соответственно, имя потернного файла, -name - используемый параметр поиска (по имени файла).

По поводу кавычек:

".." - выражение объединяется и интерпретируется;

'..' - выражение объединяется, но не интерпретируется;

`..` - выражение выполняется.

В итоге получаю путь к данному файлу:

/home/students/y11/eugeniaprokhorova/.bash_history

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

В файл .bash_history, находящийся в домашнем каталоге, bash записывает историю команд, чтобы она сохранялась между сеансами работы пользователя. Делается это в момент завершения оболочки: накопленная за время работы история дописывается в конец этого файла. При следующем запуске bash считывает .bash_history целиком. Количество запоминаемых команд в .bash_history по умолчанию обычно ограничено 500-ми командами. Просмотреть историю можно, выполнив команду history. Символ ! можно использовать для вызова выполненной ранее команды. Например !14 запускает 14-ую команду из листа истории, а !! - последнюю команду.

Чтобы включить скрытые директории и файлы (начинающиеся с точки) в список можно использовать команду:

ls -a

Ну или же:

ls -al(l)

для просмотра списка со скрытыми каталогами и файлами и некоторой информацией о них.

9. Нахожу у себя файл с пробелом в имени.

Воспользовалась командой find, находясь в домашней директории:

find . -name '* *'

. указывает на текущую дирректорию и ее субдиректории, с ней пути к файлам выглядят более компактно. Оказалось, у меня довольно много файлов с пробелами. Чтобы не испортить ничего нужного, выберу файл из Term1:

find ./Term1 -name '* *'

Например:

./Term1/Block1/Credits/new 2.txt

Переименовываю:

cd Term1/Block1/Credits

mv new\ \ 2.txt new2.txt

Проверяю, файл переименовался.

Команда wc - счетчик символов, слов и строк. По умолчанию результатом выполнения команды является отображение количества символов, слов и строк в заданном файле. Если файл не указан или указано значение -, то команда считывает стандартный ввод.

Некоторые опции:

-c (--bytes) - подсчитывает количество байтов;

-m (--chars) - подсчитывает количество символов;

-l (--lines) - подсчитывает количество строк;

-L (--max-line-length) - подсчитывает длину самой длинной строки;

-w (--words) - подсчитывает количество слов.

Например команда:

wc hutp_bacsu

Результат:

224 1434 11030 hutp_bacsu, где 224 - число строк, 1434 - число слов, 11030 - число букв в файле.

Bash EMBOSS


© Eugenia Prokhorova 2011