Описания программ
EMBOSS
Описание команды infoseq.
Команда выдает на экран информацию об интересующей нас последовательности белка или ДНК.
Синтаксис команды: infoseq [сокращенное название базы данных]:[идентификатор последовательности в этой базе]
В случае белка с которым я работаю (CRH), запрос выглядит следующим образом: infoseq sw:crh_bacsu
Где sw - сокращенное название базы данных SwissProt, а CRH_BACSU - идентификатор последовательности в этой базе.
Информация о последовательности организована в виде таблицы со следующими колонками: полный адресс последовательности
(Uniform Sequence Address - USA), название базы данных, в которой храниться последовательность (Database),
название последовательности (Name), идентификатор последовательности в бд Uniprot (Accession number), тип последовательности -
белок(P)/ДНК(N)(type),
длина (length), организм из которого она была получена (organism) и краткое описание последовательности (description).
С помощью дополнительных аргументов команды можно получить любую комбинацию из названных колонок. Также,
полученную информацию можно записать в файл в виде текста или форматированную в html-таблицу.
Пример1:
Запишем полную информацию о последовательности CRH_BACSU в html-файл: infoseq -html sw:crh_bacsu > [путь к файлу]
Результат:
USA | Database | Name | Accession | Type | Length | Organism | Description |
sw-id:CRH_BACSU | sw | CRH_BACSU | O06976 | P | 85 | Bacillus subtilis (strain 168) | HPr-like protein Crh (Catabolite repression HPr) |
Для получения текстового файла необходим дополнительный аргумент [ -outfile]
Пример 2
Запишем ту же самую информацию, что и в прмере 1, но в виде текста:
infoseq -outfile [путь к файлу] sw:crh_bacsu
USA Database Name Accession Type Length Organism Description
sw-id:CRH_BACSU sw CRH_BACSU O06976 P 85 Bacillus subtilis HPr-like protein
(strain 168) Crh (Catabolite repression HPr)
Текстовая таблица выглядит довольно кривовато, но ничего не поделаешь.
Для дифференцированного вывода необходимых колонок можно использовать дополнительные аргументы:
-usa Обращается к колонке USA
-database Обращается к колонке Database
-name Обращается к колонке name
-accession Обращается к колонке accession
-gi Обращается к колонке GI
-seqversion Обращается к колонке version
-type Обращается к колонке type
-length Обращается к колонке length
-pgc Обращается к колонке percent GC content
-organism Обращается к колонке organism
-description Обращается к колонке description
-no[название колонки] не будет отображаться указанная колонка
Пример 3
infoseq -nodescription -outfile [путь к файлу] sw:crh_bacsu
Результат: не отображается колонка с описанием (description).
USA Database Name Accession Type Length Organism
sw-id:CRH_BACSU sw CRH_BACSU O06976 P 85 Bacillus subtilis (strain 168)
Часто бывает проще не исключать колонки, а перечислить только те, которые мы хотим увидеть:
-only Отображаются только перечисленные далее колонки
Пример 4 (из задания 6)
infoseq -only -name -accession -description -length -html sw:crh_bacsu > [путь к файлу]
Т.е. отберем только 4 колонки и сразу запишем все в html-файл.
Name | Accession | Length | Description |
CRH_BACSU | O06976 | 85 | HPr-like protein Crh (Catabolite repression HPr) |
Надо заметить, что если вводить команду без указания адресса последовательности:
infoseq -only -name -accession -description -length -html > [путь к файлу]
То следующим шагом адресс будет переспрошен.
Пример 5
infoseq -only -usa -html sw:crh_bacsu > [путь к файлу]
Выберем только колонку с USA и запишем информацию в файл в виде html-таблицы.
Обсудим, что же такое USA. Структура этого адресса идентична структуре запроса,
который мы направляем для получения информации об интересующей
нас последовательности. Она состоит из сокращенного названия базы данных и из идентификатора данной последовательности в этой базе.
Возникает вопрос, что же такое Accession number (или просто Accession)? В случае с последовательностями CISY_BACSU и CRH_BACSU,
Accession совпадает с идентификатором последовательности в базе данных Uniprot и не совпадает с идентификатором из sw.
Однако, в примере предлагаемом в описании команды infoseq (tfm infoseq) оба идентификатора совпадают. (?Возможно, Accession есть ни что иное,
как идентификатор последовательности в бд Uniprot?)
Для получения дополнительной информации, можно использовать команду tnf infoseq или воспользоваться ссылкой:
http://trane.evsc.virginia.edu/inquiry/doc/EMBOSS/html/emboss/apps/infoseq.html#input.1
На данной странице представлены
те же самые данные.
bash
Каждая программа, с которой можно работать из командной строки
имеет дело с тремя потоками: stdin, stdout и stderr.
Поток stdin или стандартный поток ввода по умолчанию содержит то,
что вы набираете на клавиатуре во время работы программы (например, в ответ на вопросы программы).
Содержание двух других потоков по умолчанию отображается в консольном окне.
Поток stdout или стандартный поток вывода являет пользователю результат работы программы.
А stderr или стандартный поток ошибок, как следует из названия, выводит ошибки допущенные при работе программы.
Таким образом, хотя это два разных потока,
различить их при обычной работе программы нельзя. Однако можно перенаправить stdout на stdin другой
программы или в файл, при этом stderr будет продолжать выводиться на экран.
Кроме того, в bash можно дифференциально перенаправлять потоки, например в файл:
для этого служат символы [>], [>>] и [2>].
Символ > позволяет перенаправить stdout в файл, где он будет записан.
Символ >> дописывает стандартный поток вывода в конец всего, уже существующего, в выбрыном нами файле.
Символ 2> позволяет записать в файл только stderr.
Для направления stdout одной команды на вход (stdin) другой команды используется "pipe" (конвейер), задаваемый знаком | .
Пример:
Посчитаем количество студентов, имеющих собственные директории в разделе y12.
Для этого достаточно посчитать количество строк в списке директорий, т.е. сначала создадим этот список командой ls -l,
а затем посчитаем их командой wc -l, перенаправив stdout первой команды в stdin второй.
И того:
ls -l | wc -l
Спецсимволы bash
Ряд символов вопринимается интерпретатором командной строки bash
не буквально, а как указания произвести некоторые операции. Это следующие
символы:
пробел (а также табулятор и перенос строки); |
кавычки (" и '),
обратная косая черта ( \ ) |
* ? [ ] { } |
> < | ; & |
$ ! ( ) ` ~ # |
Примеры использования специальных символов:
Предположим, что мы имеем дело со следующим набором файлов:
1.txt, 24.txt, 1wjf.txt, tsju.txt, jwoi123.txt, s.txt
И в нашей работе мы хотим каким-то образом дифференцировать их друг от друга. Понятное дело, что количество таких файлов
может быть настолько большим, что нам никак не удасться сделать это вручную.
Вместо этого, можно использовать так называемые маски имени файлов, которые позволяют акцентировать внимание
программы только на определенные сочетания символов в названии.
Для этого используются несколько символов:
Символ * обозначает практически любое количество любых символов.
Т.е. команда cat *.txt откроет все наши текстовые документы из списка.
Символ ? обозначает 1 любой значек.
Т.е. команда ls ?.txt выдаст нам список, состоящий из двух файлов с однобуквенными названиями: 1.txt и s.txt
С помощью квадратных скобок можно ограничить количество разных символов, стоящих в определенной позиции:
команда ls [1-9]*.txt выдаст нам список файлов, названия которых начинаются с цифры.
Аналогично, если названия начинаются с буквы: ls [a-z].txt
Внутри скобок можно и перечислят элементы вручную: команда ls [t,s]*.txt выдаст только файлы tsju.txt и s.txt
Иногда бывает удобно не выбирать а отбрасывать: например, мы решили выбрать только те файлы, названия которых начинаются не с букв,
а с чего-то другого (с цифры или с некоторого символа).
Для этого можно использовать символ ^ который является исключающим элементом:
команда ls [^a-b]*.txt выведет как-раз нужный список.
Рассмотрим более сложный случай: кроме цифр и букв, в названии файла могут фигурировать и другие символы, например
по-совместимости являющиеся к тому же еще и спецсимволами. Это может затруднить их распознавание той или иной программой.
В таких случаях можно использовать двойные кавычки, в них символы $ и ` (обратные кавычки) сохраняют специальное значение
(вызов содержания переменной и подстановка вывода другой команды соответственно);
кроме того, сочетание \$ превращается в (буквальный) символ $, \" — в символ ", а \` — в символ ` (обратная кавычка).
Все остальные символы воспринимаются буквально.
Одинарные кавычки действуют более сторго: в них все символы (кроме, естественно, самой одинарной кавычки) воспринимаются буквально.
Обратная черта \ в сочетание с любым символом превращается в этот символ (т.е. он воспринимается буквально).
Примеры:
Пусть наш расширеный список файлов выглядит следующим образом:
1.txt, 24.txt, 1wjf.txt, tsju.txt, jwoi123.txt, s.txt, $.txt, *.txt, *?.txt, ?.txt
И мы хотим прочитать только файл *.txt
Просто так набрать cat *.txt мы не можем, так как откроются все файлы. Для этого нам надо указать, что * это не маска имени,
а конкретный символ: указываем cat \*.txt и все получается.
Аналогично действуем, если мы хотим открыть только файл ?.txt : cat \?.txt (иначе откроются все файлы с однобуквенными названиями)
Для работы с файлом *?.txt нам потребуются кавычки: cat '*?'.txt и нет проблем.
© 2012; Sutormin Dmitry