Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2021

Упражнения

Упражнения обязательно нужно выполнить полностью. Если не успели во время занятия, то проделайте после. Но в отчете их отражать не нужно.

Названия команд приведены не случайно. Прочитайте задание, а потом читайте man для указанных команд и придумывайте, как упражнение можно выполнить. Часто будет нужна не команда в чистом виде, а модифицированная какой-нибудь опцией (а иногда и несколькими).

  1. (mkdir) Создать папку ~/term1/pr5, дальше все делайте в этой папке.

  2. (less) Посмотреть содержимое файла ~/term1/genome/*_feature_table.txt (далее FT), который вы получили при выполнении практикума 2.

  3. (man, less) Разобраться, что делают опции -S, -U и -N команды less, опробовать их на FT. Разобраться, как устроен этот файл.

  4. (cut) Вырезать первую колонку файла FT, сохранить её в файл col1.txt. Вырезать две первые колонки из FT, сохранить в cols.tsv.

  5. (wc) Сколько строк в файле FT? Убедитесь, что количество строк в col*.txt не отличается.

  6. (sort) Определить, какие уникальные пары значений встречаются в колонках из cols.tsv (вывести в терминал).

  7. (sort, less) Как в предыдущем, но сразу перенаправить в less.

  8. (sort, uniq) Посчитать (и вывести в терминал) количество вхождений для каждого уникального значения из файла col1.txt. Сколько в исходном файле было строчек CDS? А сколько tRNA?

  9. (sort, uniq) Аналогично предыдущему, но для файла cols.txt (то есть нужно вывести количество встреч каждой уникальной пары значений из колонок).

  10. * (sort, uniq, sort, less) Отсортируйте выдачу из предыдущего пункта (с помощью конвейера, без записи в файл) по количеству встреч пар. Посмотрите результат в less (не сохраняйте в файл и не печатайте просто так в терминал).

  11. (head) Сохраните 5 первых строк из файла FT в файл rows.tsv.

  12. (tail, less) Перенаправьте в less все строки FT, кроме первой (иногда нужно удалить строку-заголовок).

  13. (head, tr) Выведите (в терминал или в less) заголовки столбцов из FT, по одному в строке.

  14. * (cut, tr, sort, uniq) Сколько в файле FT всего строчек, для которых в первой колонке указана какая-нибудь РНК?

  15. (cut, tr) Создайте файл coords.tsv, который будет содержать табличку из трех колонок: start, end и strand, которые будут идентичны соответствующим колонкам файла FT за исключением того, что в колонке strand будут не + и -, а 1 и 0 (для прямой и обратной цепи соответственно).

  16. * (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 балла.

Результатом выполнения заданий должно быть два текстовых файла:

  1. ~/term1/credits/script_pr5.sh, этот текстовый файл должен содержать команды, описанные ниже, по одной на каждый пункт задания.

  2. ~/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+

Этот пример вполне реальный. Именно на этой геномной сборке и буду проверять ваши сценарии.

2021/1/pr5 (последним исправлял пользователь is_rusinov 2021-12-23 20:50:19)