Учебная страница курса биоинформатики,
год поступления 2011
Задачи для зачёта
Примеры входных файлов для разных заданий
- введение; питон как калькулятор
- графические программы; random; списки
- циклы; условия; списки
функции; графика: события & кнопки
- к. р. 1
- файлы; строки
- словари; кортежи; optparse
- регулярные выражения: match, search, findall
- регулярные выражения: match.group, replace; str.format
- к. р. 2
- самодокументация; тесты; модули
- классы
- исключения
- к. р. 3
- 2: (1 балл) Нарисуйте дом, состоящий как минимум из двух прямоугольников (корпус дома и окно), треугольной крыши, и три звезды над ним в случайных местах.
- 2: (1 балл) Нарисуйте ёлку из несколких треугольников. Нарисуйте на ней разноцветные (случайных цветов) шарики в случайных местах
- 3: (1 балл) Нарисуйте дом, состоящий как минимум из двух прямоугольников (корпус дома и окно), треугольной крыши, и N звезды над ним в случайных местах. Звезды не могут быть под домом и не могут пересекаться с домом.
- 3: (1 балл) Нарисуйте N ёлок из несколких треугольников в случайных местах. С вероятностью 1/2 ёлка имеет на себе шарики.
- 3: (1 балл) Создайте список случайных чисел от 0 до 100. Постройте список пар, в которых первое число соответствует элементу исходного списка, а второе является результатом преобразования x+случайное число от -50 до 50. Нарисуйте точки, такие что первое число в паре соответствует координате x, второе - координате y данных точек.
- 4: (1 балл) Нарисуйте дом, состоящий как минимум из двух прямоугольников (корпус дома и окно), треугольной крыши, и N звезды над ним в случайных местах. Звезды не могут быть под домом и не могут пересекаться с домом. Звездочки должны мигать с такой частотой, чтобы было красиво.
- 4: (1 балл) Нарисуйте N ёлок из несколких треугольников в случайных местах. Сверху должны падать снежинки.
- 5 кр1: (1 балл) Задача из 3 занятия.
- 5 кр1: (2 балла) Нарисуйте несколько кружков фиксированного радиуса в случайных местах. Сделайте так, чтобы мышью можно было бы перетаскивать эти кружки.
- 6: (1 балл) Прочесть из файла координаты x и у точек и их цвета. Нарисовать данные точки соответствующими цветами. В файле могут быть пустые строки и строки с комментариями (начинаются с символа #), которые нужно игнорировать.
#set 1 10 100 green 100 50 red #set 2 10 10 yellow
6: (1 балл) Разобрать fasta-файл. Напечатать имя последовательности (то, что между > и первым пробелом), а также длину последовательности. Обратите внимание, что последовательность может быть записана в несколько строк и дополнительно разделена пробелами.
>gi|5524211|gb|AAD44166.1| cytochrome b [Elephas maximus maximus] LCLYTHIGRNIYYGSYLYSETWNTGIMLLLITMATAFMGYVLPWGQMSFWGATVITNLFSAIPYIGTNLV EWIWGGFSVDKATLNRFFAFHFILPFTMVALAGVHLTFLHETGSNNPLGLTSDSDKIPFHPYYTIKDFLG LLILILLLLLLALLSPDMLGDPDNHMPADPLNTPLHIKPEWYFLFAYAILRSVPNKLGGVLALFLSIVIL GLMPFLHTSKHRSMMLRPLSQALFWTLTMDLLTLTWIGSQPVEYPYTIIGQMASILYFSIILAFLPIAGX IENY >MCHU - Calmodulin - Human, rabbit, bovine, rat, and chicken ADQLTEEQIAEFKEAFSLFDKDGDGTITTKELGTVMRSLGQNPTEAELQDMINEVDADGNGTID FPEFLTMMARKMKDTDSEEEIREAFRVFDKDGNGYISAAELRHVMTNLGEKLTDEEVDEMIREA DIDGDGQVNYEEFVQMMTAK
6: (1 балл) Прочитать PDB-файл. Посчитать центр масс молекулы ((Σ miposi) / (Σ mi)).
- 6: (1 балл) Прочитать PDB-файл. Посчитать количество атомов каждого элемента.
- 6: (1 балл) Прочитать PDB-файл. Посчитать массу молекулы и массовую долю каждого элемента.
- 7: (1 балл) Прочитать fasta-файл, содержащий много последовательностей. Для каждой последовательности вывести на экран её имя и самую частую букву в ней. Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту.
- 7: (1 балл) Прочитать fasta-файл, содержащий много последовательностей из одного организма. Написать три самых частотных аминокислоты данного рганизма. Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту.
7: (1 балл) Дан fasta-файл, содержащий данные секвенирования. Данные состоят из прямых и обратных чтений, перемешанных произвольным образом в файле. Прямые чтения содержат в своём имени строку :1:, обратные чтения содержат в своём имени строку :2:, и кроме этой строки их имена совпадают. Выдать в выходной файл таблицу вида имя прямого чтения:тело прямого чтения:тело обратного чтения Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту. примеры в файлах reads*.fasta
- 7: (2 балла) "Однопалубный морской бой". Программа сочиняет поле для морского боя заданной ширины и высоты и случайным образом располагает на нём N однопалубных кораблей, но не сообщает пользователю, куда она их поставила. Программа рисует клеточное поле. При нажатии мышкой в клетку поля, в нём обозначается либо "мимо", либо "убит". Обязательное требование к реализации: всё поле хранится в одном словаре. Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту.
- 7: (1 балла) "Верификация однопалубного морского боя". Программа получает на вход файл в формате CSV, в котором указаны координаты X и Y однопалубных кораблей на поле морского боя. Программа получает из аргументов командной строки размеры поля. Программа проверяет, что файл, поданный на вход, является корректным и сообщает обо всех найденных ошибках. Возможные ошибки: два корабля соприкасаются бортами или углами; корабль находится за пределами поля. Обязательное требование к реализации: всё поле представляется одним словарём. Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту.
- 7: (2 балла) "Однопалубный морской бой". Программа получает на вход файл в формате CSV, в котором указаны координаты X и Y однопалубных кораблей на поле морского боя. Также, программа получает на с командной строки размер поля. Программа рисует клеточное поле. При нажатии мышкой в клетку поля, в нём обозначается либо "мимо", либо "убит". Обязательное требование к реализации: всё поле хранится в одном словаре. Программа должна полноценно разбирать командную строку и иметь названия параметров и описания к ним, понятные ПОЛЬЗОВАТЕЛЮ (тупому, который ничего не знает НИ об устройстве программы, НИ О ЕЁ НАЗНАЧЕНИИ), а не программисту.
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы БД pfam. (PF и пять цифр)
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы БД unirpot id. (от 1 до 6 буквоцифр, далее символ '_', далее от 3 до 5 буквоцифр)
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы БД unirpot ac. (слово из 6 символов, первая - буква одна из A,B,C,D,E,F,O,P,Q, вторая - цифра, далее 3 цифробуквы и последняя - опять цифра)
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы БД pdb. (Цифра и три цифробуквы)
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы БД ensembl. (префикс 'ENS', далее любая буква, далее 11 цифр, далее необязательный суффикс, состоящий из двух символов: '.' и цифра)
- 8: (1 балл) Дан файл, в котором написано много идентификаторов разных биологических БД, по одному на строку. Учитывайте, что в файле кроме корректных идентификаторов могут встречаться и ошибочные. Выписать из них все идентификаторы gi. (число, состоящее из 7-9 цифр, т.е. старшая цифра не может быть 0)
8: (1 балл) Дан fasta-файл. Дано описание мотива в формате PROSITE. Найти в файле все участки, удовлетворяющие мотиву. (например, в мотиве C-G-G-x(4,7)-G-x(3)-C-x-[FYWM]-Q-{NHG}-C отдельно стоящие заглавные буквы означают обычные аминокислоты, x - любая аминокислота, если после x стоят скобки, они задают кол-во повторов, две цифры в скобках задают минимум и максимум кол-ва повторов любой аминокислоты, квадратные скобки задают одну аминокислоту из тех, что перечислены в скобках, фигурные скобки означают одну аминокислоту, не перечисленную в скобках; более детально описано тут http://prosite.expasy.org/scanprosite/scanprosite-doc.html#pattern_syntax) В качестве вариантов задачи можно использовать следующие мотивы: PDOC00394, PDOC00178, PDOC00946, PDOC00124, PDOC00500, PDOC00661. Чтобы открыть описание мотива можно использовать ссылку вида http://prosite.expasy.org/PDOC00394.
9: (1 балл) Дан фрагмент генома эукариота в формате GenBank. Разобрать в нём для cds все записи complement и join, и выдать суммарную длину экзонов, суммарную длину интронов, отношение общей длины экзонов к интронам, а также, среднюю длину экзонов и среднюю длину интронов и отношение средней длины экзона к средней длины интрона.
- 9: (1 балл) Дан текст программы на python. Напечатать содержимое всех строковых констант в нём.
- 9: (1 балл) Дан HTML-файл. Найти в нём все внешние ссылки.
- 9: (1 балл) Дан текстовый файл. Найти в нём все ссылки на http.
10 кр2: (1 балл) Дан файл в формате GenBank. Посчитать общий GC-состав апстримных областей всех кодирующих участков (cds) в нём. Апстримная область определяется как N позиций, идущих перед началом кодирующего участка (или после конца – для участков на комплементарной цепи). Число N передаётся как параметр командной строки.
10 кр2: (1 балл) Дан файл в формате GenBank. Посчитать общий GC-состав апстримных областей всех генов (gene) в нём. Апстримная область определяется как N позиций, идущих перед началом кодирующего участка (или после конца – для участков на комплементарной цепи). Число N передаётся как параметр командной строки.
10 кр2: (1 балл) Дан файл в формате GenBank. Посчитать GC-состав некодирующей части данного генома.
- 11: (+1 балл в пользу 11 занятия) Программа должна быть разумно разделена на небольшие функции. Каждая функция должна иметь самодокументацию. Те функции, для которых это возможно, должны содержать тесты. Разделение программы на функции должно быть таким, чтобы как можно больший процент строк кода был покрыт тестами.
11: (+2 балла в пользу 11 занятия) Программа должна быть РАЗУМНО разделена на небольшие функции и на несколько модулей. Каждая функция должна иметь самодокументацию. Те функции, для которых это возможно, должны содержать тесты. Разделение программы на функции должно быть таким, чтобы как можно больший процент строк кода был покрыт тестами.
- 13: (+1 балл в пользу 13 занятия) Программа должна корректно обрабатывать ошибки ввода-вывода, рассчётов, разбора форматов вхдодных файлов. Если программа работает с нетривиальным форматом файла, в программе должны присутствовать простейшие проверки на правильность формата, которые должны обрабатываться наряду с остальными ошибками. При любом нештатном завершении программа должна выдавать КОРОТКОЕ сообщение об ошибке (А НЕ Traceback ...).