Учебная страница курса биоинформатики,
год поступления 2021
Упражнения
Упражнения обязательно нужно выполнить полностью. Если не успели во время занятия, то проделайте после. Но в отчете их отражать не нужно.
Названия команд приведены не случайно. Прочитайте задание, а потом читайте man для указанных команд и придумывайте, как упражнение можно выполнить. Часто будет нужна не команда в чистом виде, а модифицированная какой-нибудь опцией (а иногда и несколькими).
(mkdir) Создать папку ~/term1/pr5, дальше все делайте в этой папке.
(less) Посмотреть содержимое файла ~/term1/genome/*_feature_table.txt (далее FT), который вы получили при выполнении практикума 2.
(man, less) Разобраться, что делают опции -S, -U и -N команды less, опробовать их на FT. Разобраться, как устроен этот файл.
(cut) Вырезать первую колонку файла FT, сохранить её в файл col1.txt. Вырезать две первые колонки из FT, сохранить в cols.tsv.
(wc) Сколько строк в файле FT? Убедитесь, что количество строк в col*.txt не отличается.
(sort) Определить, какие уникальные пары значений встречаются в колонках из cols.tsv (вывести в терминал).
(sort, less) Как в предыдущем, но сразу перенаправить в less.
(sort, uniq) Посчитать (и вывести в терминал) количество вхождений для каждого уникального значения из файла col1.txt. Сколько в исходном файле было строчек CDS? А сколько tRNA?
(sort, uniq) Аналогично предыдущему, но для файла cols.txt (то есть нужно вывести количество встреч каждой уникальной пары значений из колонок).
* (sort, uniq, sort, less) Отсортируйте выдачу из предыдущего пункта (с помощью конвейера, без записи в файл) по количеству встреч пар. Посмотрите результат в less (не сохраняйте в файл и не печатайте просто так в терминал).
(head) Сохраните 5 первых строк из файла FT в файл rows.tsv.
(tail, less) Перенаправьте в less все строки FT, кроме первой (иногда нужно удалить строку-заголовок).
(head, tr) Выведите (в терминал или в less) заголовки столбцов из FT, по одному в строке.
* (cut, tr, sort, uniq) Сколько в файле FT всего строчек, для которых в первой колонке указана какая-нибудь РНК?
(cut, tr) Создайте файл coords.tsv, который будет содержать табличку из трех колонок: start, end и strand, которые будут идентичны соответствующим колонкам файла FT за исключением того, что в колонке strand будут не + и -, а 1 и 0 (для прямой и обратной цепи соответственно).
* (tail, cut, tr, sort, wc) Посчитайте, сколько уникальных координат (начала или конца участка генома) в файле FT. На выходе должно быть одно число.
Упражнения с * сложнее, чем остальные. Наверно, они получатся не у всех. Но попытаться стоит.
Программа tr ничего не знает о структуре текста, она умеет только заменять (и удалять) все вхождения символа на другой символ. Можно заменять сразу несколько разных символов, но это не значит, что можно заменять конкретные слова! А еще можно заменять управляющие символы (типа переноса строки), какие обозначения понимает tr описано в мануале.
А у uniq есть одна важная особенность, из-за которой эту программу можно использовать почти исключительно в связке с sort. Про это тоже можно прочитать в man uniq.
Внимательно читайте вывод man, иногда для понимания важно каждое слово.
После выполнения упражнений можете переходить к домашним заданиям.
Задания практикума 5
Настоятельно рекомендую выполнить задания ДО следующего занятия. Потому что эти знания вам потребуются на контрольной.
Мягкий дедлайн продлеваю для того, чтобы вы могли на занятии задать возникшие вопросы и успеть доделать вечером задания без потери баллов. А не для того, чтобы вы еще на день оттягивали их выполнение.
Окончательная версия заданий, можно приступать к выполнению.
Не нужно делать wiki-страницу с "отчетом". Проверять буду только файлы на kodomo. При записи в очередь вместо URL указывайте прочерк.
Мягкий дедлайн – 23:59 8 октября, жесткий дедлайн – 01:00 15 октября. После мягкого дедлайна штраф 0.5 балла, после жесткого – 2 балла.
Результатом выполнения заданий должно быть два текстовых файла:
~/term1/credits/script_pr5.sh, этот текстовый файл должен содержать команды, описанные ниже, по одной на каждый пункт задания.
~/term1/credits/script_pr5.out – файл, содержащий выдачу сценария из предыдущего пункта, запущенного для таблицы локальных особенностей вашей бактерии/археи.
У bash есть неинтерактивный режим работы, в котором он исполняет команды, прочитанные из текстового файла. Такие файлы с набором команд называют сценариями (или, в разговорном стиле, скриптами). Чтобы запустить скрипт на исполнение нужно передать его команде bash в качестве аргумента.
bash script_pr5.sh
Все строчки файла bash будет интерпретировать в качестве команд. Поэтому в файле не должно быть постороннего текста! Допускаются только пустые строки для визуального разделения команд.
Крайне важно, чтобы сценарий имел разделители строк в формате Unix!
Все команды сценария должны будут работать с таблицей локальных особенностей вашей бактерии или археи. Они должны предполагать, что к файлу можно получить доступ по маске ../genome/*_feature_table.txt. Это позволит вам тестировать сценарий прямо в папке ~/term1/credits. А я смогу проверить его на тестовой таблице, предварительно скопировав к себе. То есть, например, в сценарии может быть команда head -1 ../genome/*_feature_table.txt
Команда 1
Эта команда (на самом деле, конечно, конвейер из команд) должна выводить идентификатор сборки генома (то, что содержится в столбце assembly). Пример выдачи:
GCF_000005845.2
Команда 2
Эта команда должна выводить длины 3х самых длинных продуктов генов (столбец product_length), отсортированные по убыванию длины без повторений. Пример выдачи:
2358 1653 1538
Команда 3
Эта команда должна печатать две строки, в которых содержится число участков генома (т.е. строк в таблице локальных особенностей) на каждой из двух цепей ДНК. Пример выдачи (в выдаче не должно быть пробелов):
4616- 4482+
Команда 4 (доп.)
Как команда 3, но строчки с повторяющимися координатами нужно считать только один раз. Пример формата выдачи:
2340- 2278+
Результат
Таким образом, содержимое файла ~/term1/credits/script_pr5.out в данном конкретном случае будет следующим:
GCF_000005845.2 2358 1653 1538 4616- 4482+
Или (если выполнено дополнительное задание):
GCF_000005845.2 2358 1653 1538 4616- 4482+ 2340- 2278+
Этот пример вполне реальный. Именно на этой геномной сборке и буду проверять ваши сценарии.