Учебная страница курса биоинформатики,
год поступления 2016
Занятие 11. Словари.
См. указания.
1. Перевод из однобуквенного кода трёхбуквенный и обратно. Мнемоника: aadecode
Аминокислоты, входящие в состав белков, имеют два стандартных обозначения: однобуквенное (используемое в формате fasta) и трёхбуквенное (используемое в формате PDB). По адресу http://kodomo.fbb.msu.ru/FBB/BasicData/aa_properties/aacodes.txt лежит таблица соответствия этих обозначений (таблица со значениями, разделёнными табулятором).
Задача: написать программу, которая:
- если в командной строке в качестве первого аргумента дана одна буква, печатает трёхбуквенный код соответствующей аминокислоты, если же такой аминокислоты нет, то "Xxx";
- если в командной строке в качестве первого аргумента дано трёхбуквенное слово, печатает однобуквенный код соответствующей аминокислоты, если же такой аминокислоты нет, то "X";
- если в командной строке в качестве первого аргумента дано слово длины, отличной от 1 или 3, а также если аргумент вообще не задан, просит пользователя ввести слово с клавиатуры, после чего поступает с введённым словом так же, как если бы оно было задано в командной строке.
Программа должна быть нечувствительна к регистру вводимых букв, но печатать вывод всегда в том варианте, который приведён в таблице.
Указание: создайте два словаря: с ключами из однобуквенных обозначений и значениями из трёхбуквенных, и наоборот.
2. Подсчёт аминокислотного состава. Мнемоника: aacomp
Написать программу, которая подсчитывает число разных букв в последовательности и выдаёт полученную информацию в виде таблицы через табулятор.
При этом:
если в командной строке задано два аргумента, то первый понимается как имя входного файла, а второй – как имя выходного;
- если задан один аргумент, то он понимается как имя входного файла, результат выводится на консоль;
- если аргументов нет, то программа должна запросить имя входного файла у пользователя, а результат выдать на консоль.
Подразумевается, что входной файл содержит одну последовательность в fasta-формате. Выводится количество встреч всех букв. Цифры, пробелы и т.п. игнорируются. Заглавная и соответствующая строчная буква должна пониматься как одна и та же буква. Строки выдаваемой таблицы должны быть упорядочены по алфавиту.
Указание: создайте пустой словарь и для каждой встреченной буквы проверяйте, есть ли она уже среди ключей словаря. В конце создайте отдельный список из упорядоченных ключей словаря.