Учебная страница курса биоинформатики,
год поступления 2018
Задания практикума 8
- Создайте папку pr8 в правильном месте дерева директорий
- В каждом задании указано сколько баллов (максимум) присуждается за его выполнение.
Для получения зачета по практикуму 8 необходимо набрать 5 или более баллов.
Обязательно прочитайте Правила оформления выполненных заданий!
Имена программ должны быть такими: pr8_mnemonic.py
- Обязательно проверьте работает ли программа, прежде чем отправлять ее в credits!
- После выполнения достаточного для зачета числа заданий запишитесь в очередь на проверку.
- Сроки выполнения см. в ведомости. Дедлайны - мягкий и жесткий - стоят в строках 2 и 3 колонки "Штраф за опоздание", как обычно.
См. советы и подсказки.
1. Пурин или пиримидин
Мнемоника: nucleobase.
Баллы: 1 или 2.
Программа принимает в качестве первого аргумента командной строки одну из букв: A, T, G или C. Можно использовать как строчные, так и заглавные буквы. Программа определяет, является ли основание производным пурина или пиримидина. Напоминание: аденин и гуанин являются производными пурина, а тимин и цитозин — пиримидина. Если введённое основание является производным пурина, программа печатает "purine", а если пиримидина — "pyrimidine".
Два балла и бонусы сверх одного балла, если программа: правильно понимает буквы не только в верхнем, но и в нижнем регистре; выдает ответ для урацила; проверяет корректность аргумента.
В случае ошибки с сообщении об ошибке должно присутствовать слово "error" в любом регистре.
2. Среднее по больнице
Мнемоника: average.
Баллы: 1.
Программа принимает в качестве первого аргумента командной строки имя файла, каждая строка которого содержит число (целое или вещественное). Программа печатает на стандартный вывод среднее этих чисел, с точностью до двух знаков после запятой, объясняя что это такое. Пример содержимого входного файла:
10 20 30 3.142
Пример выхода:
Average is 15.79
8.Медиана
Мнемоника: median.
Баллы: 2
Статистика учит, что иногда медиана гораздо лучше характеризует выборку, чем среднее. (К примеру, если человек ищет работу, то средняя зарплата в организации не особенно полезна, в отличие от медианы.)
Задание аналогично предыдущему, но программа печатает не среднее, а медиану. Пример расчёта медианы.
3. Простое число
Мнемоника: prime.
Баллы: 2.
Простое число — это натуральное (целое положительное) число, имеющее ровно два различных натуральных делителя. Другими словами, число p простое, если оно больше 1 и делится только на 1 и на p. (Внимание: числа 0 и 1 простыми не являются; никакие отрицательные числа не считаются простыми).
Написать программу, которая просит ввести целое число; получив его, программа сообщает, является ли введённое число простым. Если число является простым, программа выводит слово "Prime", иначе выводит "Not prime".
Пример входа:
100
Пример выхода:
Not prime
4. Сложение чисел
Мнемоника: sum.
Баллы: 1
Пользователь через стандартный ввод вводит числа, когда заканчивает, печатает end. Программа складывает все числа и выводит результат в стандартный вывод. Пример ввода:
Введите число:
1
Введите число:
2
Введите число:
end
Пример вывода:
3
5. Имена последовательностей
Мнемоника: fasta.
Баллы: 3-6.
Программа принимает в качестве первого аргумента командной строки имя файла в формате fasta. Выход - файл sequence_names.txt такого формата: строка = имя_последовательности табулятор описание последовательности
Пример: файл my_sequences.fasta содержит:
>seq1 virus1 ATGCCCCGGGTA CACACAGGGTTTTAAAA GGGGGGGGGACGAC >seq2 virus2 AAAAAAAAAAAAAAAAAAAAA GGGTTTTCACATGGTGACC ACC >seq3 vrusA TTT
команда
python3.6 pr8_fasta.py my_sequences.fasta
должна создать файл sequence_names.txt, который содержит строки
sequence name \t sequence description seq1 \t virus1 seq2 \t virus2 seq3 \t virusA
Здесь "\t" обозначает символ табулятора. python понимает такое обозначение правильно. Первая строчка - заголовки колонок таблицы
Примеры fasta-файлов есть в папке /P/y18/term1/block3/pr8/fasta на kodomo
Для получения 6-и баллов вычислите длину каждой последовательности и поместите ее в следующую колонку выходного файла.
6. Кодирующие последовательности в файле, формата .gbk ('''GenBank''')
Мнемоника: cds
Баллы: 3-5.
Написать программу, считающую число последовательностей, кодирующих белок (CDS), которые аннотированны в файле формата GenBank (расширение gbk). Имя файла вводится в командной строке.
Указание: откройте (в редакторе) какой-нибудь gbk-файл и посмотрите, в каком виде там аннотированы CDS, в частности в каких позициях находятся ключевые буквы. Примеры gbk-файлов есть в папке /P/y18/term1/block3/pr8/gbk на kodomo.
Чтобы получить дополнительные баллы программа должна создать файл cds_report.txt с длинами кодирующих последовательностей (координаты CDS "от - до" указаны в строке CDS)
Пример входа:
NC_022517.gbk
Пример выхода:
400
и, для дополнительных баллов, файл cds_report.txt
CDS1 \t 303 CDS2 \t 990 и т.д.
7. Эволюция как последовательность ошибок
Мнемоника: hamm.
Баллы: 2
Если у нас есть последовательности s и t одинаковой длины, то мы можем подсчитать, какое число точечных замен необходимо, чтобы перевести одну последовательность в другую. Это число называется расстояние Хэмминга (Hamming distance) dH (s,t) Вход Программа принимает на вход имена двух файлов, заданные аргументами командной строки, в каждом лежит последовательность. Последовательности одинаковой длины. Выход Файл, который содержит количество точечных замен, которые нужно произвести, чтобы перевести одну последовательность в другую.
Пример входа:
Файл Seq1.txt содержит последовательность
GAGCCTACTAACGGGAT
Seq2.txt содержит последовательность
CATCGTAATGACGGCCT
Выход
Файл Result.txt
7