Kodomo

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

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

Упражнения

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

Названия команд приведены не случайно. Прочитайте задание, а потом читайте 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? Убедитесь, что количество строк в col1.txt и cols.tsv не отличается.

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

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

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

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

  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. На выходе должно быть одно число.

Упражнения с * сложнее, чем остальные. Наверно, придумать конвейер самостоятельно получится не у всех. Но попытаться стоит! Ответы на упражнения есть в подсказках.

После выполнения упражнений можете переходить к домашним заданиям.

Задания практикума 5

Не нужно делать wiki-страницу с отчетом. Проверять буду только файлы на kodomo. При записи в очередь вместо URL указывайте прочерк.

Мягкий дедлайн – 01:00 AM 11 октября, жесткий дедлайн – 01:00 AM 18 октября. После мягкого дедлайна штраф 0.5 балла, после жесткого – 2 балла.

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

  1. ~/term1/credits/pr5.sh – bash-сценарий (см. подсказки), содержащий конвейеры команд, по одному на каждый пункт задания.

  2. ~/term1/credits/pr5.out – файл, содержащий выдачу сценария pr5.sh, запущенного для таблицы локальных особенностей вашей бактерии/археи.

Все команды сценария должны будут работать с таблицей локальных особенностей генома. Они должны предполагать, что к файлу можно получить доступ по маске *_feature_table.txt. То есть, файл должен располагаться в той папке, которая является активной при запуске сценария. Это позволит вам тестировать сценарий с нужной таблицей локальных особенностей. Например, при запуске из папки ~/term1/genome будет использоваться таблица локальных особенностей вашего прокариота. А я смогу проверить сценарий на тестовой таблице, предварительно скопировав его к себе. Например, в сценарии может быть команда head -1 *_feature_table.txt

Каждый конвейер должен выводить результат в STDOUT! Файл ~/term1/credits/pr5.out вы должны создать с помощью перенаправления выдачи скрипта при запуске после того, как допишите и проверите его на тестовом примере. Иначе у меня не будет нормального способа проверять эти скрипты, если каждый из них будет норовить создать файл в моей домашней папке (или уж тем более в вашей). Скрипты, которые читают неправильный файл или пытаются создать файл с выдачей, проверять не буду.

Конвейер 1

Должен выводить идентификатор сборки генома (то, что содержится в столбце assembly). Все значения в этом столбце в вашем файле должны быть одинаковыми (можете в этом убедиться, на всякий случай), поэтому можете вырезать нужное поле из любой строки, кроме заголовка. Пример выдачи:

GCF_000008865.2

Конвейер 2

Должен выводить длины пяти самых коротких продуктов генов (столбец product_length), отсортированные по возрастанию без повторений. Примерно половина строк таблицы содержит пустое значение в этой колонке. Не требуется от них избавляться, вы пока не сможете этого сделать простым способом. Просто считайте, что как минимум одно пустое значение будет обязательно. А от заголовка нужно избавиться. Пример выдачи (обратите внимание, первая строка пустая):

<пустая строка>
14
15
16
24
27

Конвейер 3

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

5438+
5260-

Конвейер 4 (доп.)

Аналогично предыдущему конвейеру, но локальные особенности для каждой последовательности в составе генома (их легко различить по идентификатору в столбце genomic_assession) должны быть посчитанны независимо. Кроме того, строчки с повторяющимися координатами (start, end, strand) нужно считать только один раз. Выдача должна быть отсортирована по убыванию количества участков. Кроме количества участков и цепи должен быть указан идентификатор последовательности. Значения в строке должны быть разделены запятой. Пример формата выдачи:

2673,NC_002695.2,+
2656,NC_002695.2,-
73,NC_002128.1,+
13,NC_002128.1,-
2,NC_002127.1,-
1,NC_002127.1,+

Результат

Таким образом, содержимое файла ~/term1/credits/pr5.out в данном конкретном случае будет следующим:

GCF_000008865.2

14
15
16
24
27
5438+
5260-

Или (если выполнено дополнительное задание):

GCF_000008865.2

14
15
16
24
27
5438+
5260-
2673,NC_002695.2,+
2656,NC_002695.2,-
73,NC_002128.1,+
13,NC_002128.1,-
2,NC_002127.1,-
1,NC_002127.1,+

Этот пример вполне реальный. На этой геномной сборке нужно проверить ваши сценарии. Таблица локальных особенностей для указанной геномной сборки есть на kodomo, файл /P/y24/term1/GCF_000008865.2_ASM886v2_feature_table.txt.

2024/1/pr5 (последним исправлял пользователь is_rusinov 2024-10-03 23:49:21)