Kodomo

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

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

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

Результатом этого задания является два скрипта на языке Python, в которых реализован перечисленный в заданиях 1 и 2 функционал. Скрипты должны быть положены в папку зачетных заданий до 23:59 дня накануне следующего занятия.

Внимание! Как и раньше, имя скрипта должны быть в том же формате, что и названия протоколов. Поскольку от Вас требуется два файла, в конце имени (до расширения!) после знака подчеркивания проставляйте номер (scrNN, где scr - сокращение от английского слова script, а NN - двухзначный порядковый номер скрипта). Например, Dibrova_pr8_scr01.py и Dibrova_pr8_scr02.py.

Не забывайте смотреть подсказки по python, обновленные и содержащие справочную информацию по новым темам этого занятия. И не стесняйтесь спрашивать преподавателей, если что-то не получается!

Обязательные задания

Задание 1. Создайте скрипт, принимающий аргументы командной строки и создающий новый текстовый файл

Этот скрипт должен называться <Familiya>_pr8_scr01.py, где <Familiya> – Ваша фамилия в том же написании, что и раньше.

Цель: Написать скрипт, который будет принимать 2 параметра из командной строки, запрашивать у запустившего его любую строчку и создавать текстовый файл в соответствии с требованиями. Требования:

Задание 2. Напишите скрипт, читающий файл полного генома прокариотического организма в формате GenBank, создающий в памяти список генов и сохраняющий в файле таблицу с информацией об их координатах в геноме и длинах

Этот скрипт должен называться <Familiya>_pr8_scr02.py, где <Familiya> – Ваша фамилия в том же написании, что и раньше.

Этап 1: Скрипт находит строчки "gene" и сохраняет в выходном файле координаты, указанные в этих строчках (и пока ничего больше)

Замечание. Если в Вашем файле с геномом нет строчек gene (такое бывает), то берите строчки CDS - они есть всегда.

Отладьте скрипт и проверьте, что он работает правильно. Следите за тем, чтобы строчки в выходном файле шли подряд, а не через одну!

Этап 2: Модифицируйте скрипт так, чтобы в выходном файле каждая строчка содержала три числа: начало гена в геноме, знак табуляции (\t), конец, знак табуляции, ориентация (1 или -1)

>>> "123".isdigit()
True
>>> ")123".isdigit()
False
>>> "  123".isdigit()
False
>>>

Необязательные задания (на дополнительные баллы)

Задание 3*. Продолжение модификации скрипта из задания 2

Этап 3: Опишите в скрипте <Familiya>_pr8_scr02.py класс ProteinCodingGene

Этап 4: Модифицируйте скрипт <Familiya>_pr8_scr02.py так, чтобы он сохранял в список объектов типа ProteinCodingGene информацию о начале, конце, ориентации генов

Задание 4*. Рассмотрение генов в геноме Вашего организма с необычными координатами начал и концов

Чтобы выполнить это задание, нужно модифицировать свой скрипт из задания 2 еще раз. Вместо пропуска всех "подозрительных" генов (т.е. содержащих несколько фрагментов кодирующей последовательности, объединяемых словом join, или неточные координаты кодирующей последовательности) нужно иметь возможность все-таки сохранять информацию о них.

Чтобы минимизировать исправление и легко иметь возможность "откатиться" к работающей версии, сделайте следующее. Если Вы еще не сделали этого, перенесите код, который отвечает за разбор строки, содержащей координаты гена, в отдельную функцию. Напишите новую функцию, которая бы разбирала строку по другому алгоритму.