Учебная страница курса биоинформатики,
год поступления 2020
ВАЖНО, ИНАЧЕ МЫ НЕ НАЙДЕМ ВАШИ РАБОТЫ!!!
Все файлы с программами сохраняйте в папку ~/term1/block2/homeworks, название скрипта – <название_задания>.py (aminoacid.py etc.)
1. aminoacid
Пользователь вводит один из однобуквенных кодов аминокислот (в любом из регистров). Если введённый код соответствует ароматической аминокислоте, то программа выводит: "aromatic". Если код соответствует алифатической аминокислоте, программа выводит "aliphatic". Если код соответствует аминокислоте, которая не относится ни к ароматическим, ни к алифатическим, программа выводит "other". Если был введен не код аминокислоты, программа выводит "error".
Пример входа:
F
Пример выхода:
aromatic
Ещё подсказка: перечитайте в лекции раздел "операции над списками".
2. squares
Выведите все квадраты натуральных чисел, которые строго меньше введённого натурального числа.
Пример входа:
10
Пример вывода:
1 4 9
3. power-of-three
Программа приглашает пользователя ввести целое положительное число.
Программа выводит "TRUE", если число является степенью тройки. Иначе программа выводит "FALSE".
Пример входа:
19683
Пример вывода:
TRUE
4. head
Программа имитирует работу программы head <имя_входного_файла> -n <число выводимых строк> На вход программа принимает имя файла. Затем она принимает на вход число строк из файла, которые надо вывести. Если введённое число больше, чем число строк в файле, то программа выводит все строки в файле Пример входа:
in.txt 2
Пример вывода:
One ring to rule them all, one ring to find them,
Файл in.txt:
One ring to rule them all, one ring to find them, One ring to bring them all and in the darkness bind them.
5. grep
Программа имитирует работу программы grep <строка> <имя_входного_файла>
На вход программа принимает имя файла. Затем она принимает на вход строку. Затем программа выводит все строки файла, содержащие эту подстроку.
Пример входа:
in.txt безумн
Пример вывода:
И лишь безумному - вера под стать А, переделав наш мир, всем безумными стать?
Файл in.txt:
Только дурак может вверх устремляться И лишь безумному - вера под стать Может быть, братцы, нам всем постараться Не доверяться шутам и паяцам А, переделав наш мир, всем безумными стать?
6. seqnames
Программа читает файл input-seqnames.fasta с последовательностями в fasta-формате и создаёт файл output-seqnames.txt с именами этих последовательностей, по одному в строке.
Указание: если строка начинается с ">", надо разделить её по пробелам и записать в выходной файл первый элемент получившегося списка, не забыв убрать '>' в начале и добавить '\n' в конце.
Убрать начальный символ из строки можно, взяв "срез" с символа 1 до конца. Если в переменной s хранится строка, то s[1:] будет означать ту же строку без начального символа (напоминаем, что номер начального символа в строке — 0).
Для любопытных: посмотреть, что делает метод строки str.startswith
Пример входного файла:
>FOXB1 binding motif 1; score 0.058994 CGATCTGAGCAGAAGTCATACACATGGGAATGTATATAAGTCGAATCGTATGCC CATGGGAATGTATATAAGTCGAATCGTATGCCATACACATGATACACATGATAC CATGGGAATGTATATAAGTCGAATCGTATGCCATACACAATACACATGTATACA ATACACATGAAGTCGAATCGTATGCCAT >FOXB2 binding motif 2; score 0.074589 CGATCTGAGCAGCATAATGTCAATATTTACATAAGGAATCGCGAATC >GABPA binding motif 3; score 0.128900 GGGGAAGGGCACGAGGCGGGAGGCGAGGCG
Пример файла на выходе:
FOXB1 FOXB2 GABPA
7. average
Файл input-average.txt содержит числа, по одному в строке. Программа читает этот файл и выдаёт на консоль среднее значение.
Указание: заведите переменную-счётчик и другую переменную для суммы чисел.
Пример входного файла:
10 8 22 340 123419 -10 22.4 13 331
Пример вывода в консоли:
The arithmetic mean of the numbers in the file is 13795.044444444444.
Еще один пример входного файла:
-1E10 1E8
Пример вывода в консоли:
The arithmetic mean of the numbers in the file is -4950000000.0.
Замечание: в python (и в большинстве программ и языков программирования) вместо "1000000.0" можно писать "1E6", что означает единицу, умноженную на десять в шестой степени. float переводит вторую строку в число не хуже, чем первую; правда, для int такая запись не подойдёт.