Kodomo

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

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

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

См. советы и подсказки.

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