Kodomo

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

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

Домашнее задание 4

Файлы с программами должны иметь имена вида <задание>.py (например, pdbfetch.py для первого задания) и лежать в директории ~/term1/block2/homeworks к утру 8 ноября.

1. pdbfetch (2 балла)

Программа принимает в командной строке pdb-код (четыре символа) и создаёт файл с именем <код>.pdb, содержащий запись pdb, находящуюся по адресу https://files.rcsb.org/view/<код>.pdb (например, если pdb-код — это 1xyz, то по адресу https://files.rcsb.org/view/1xyz.pdb, создаваемый файл в этом случае должен называться 1xyz.pdb).

Примеры валидных pdb-кодов: 10mh, 1crm, 1ab1, 3i29.

2. proteinhost (2 балла)

Программа принимает в командной строке так называемый "номер доступа" (accession number, AC) банка последовательностей белков Uniprot и выдаёт на консоль название организма, из которого взят этот белок.

Запись банка Uniprot находится по адресу https://www.uniprot.org/uniprot/<AC>.txt. Например, если AC — это "I3WE50", то по адресу https://www.uniprot.org/uniprot/I3WE50.txt . В этой записи название организма находится в строке, начинающейся с букв "OS", название начинается с шестого символа (и до конца строки).

Примеры валидных AC: P02088, P02008, P02091, P68871, Q7AP54.

3. complement (3 или 4 балла)

Файл complement.py должен содержать функцию с именем complement, которая принимает единственный аргумент — строку, представляющую последовательность цепи ДНК (строку из символов a, t, g, c) и возвращает последовательность комплементарной цепи.

При проверке ваш файл будет тестироваться путём импорта вашей функции в тестирующую программу (соответственно и вы, чтобы протестировать свою функцию, должны будете написать тестирующую программу. Ваша тестирующая программа проверяться и оцениваться не будет).

Указания.

  1. Создайте словарь с ключами “a”, “t”, “g” и “c” и значениями из обозначений комплементарных нуклеотидов.
  2. (Важно!!!) Не забывайте, что последовательность ДНК пишется всегда от 5’-конца к 3’-концу, а последовательности комплементарных цепей имеют противоположную ориентацию.

Пример применения:

>>> from complement import complement
>>> complement("attgcatt")
'aatgcaat'

Четыре балла вместо трёх, если функция: (а) готова принимать не только строчные, но и заглавные буквы (указание: примените к аргументу метод строки lower()); (б) не падает, если в аргументе встретятся другие символы, помимо обозначающих дезоксирибонуклеотиды, в этом случае результат должен содержать на соответствующем месте букву "n". Пример:

>>> from complement import complement
>>> complement("ATxtgC")
'gcanat'

4. countresidues (5 баллов)

Файл countresidues.py должен содержать функцию countresidues. Эта функция принимает в качестве аргумента список имён файлов. Предполагается, что все эти файлы содержат структуры белков или комплексов белков в pdb-формате (например, созданные программой pdbfetch из задания 1). Функция возвращает словарь, ключами которого являются пары (имя файла, трёхбуквенное обозначение аминокислотного остатка), например, ("1xyz", "ALA"). Значениями словаря являются целые неотрицательные числа: количество данных остатков в данном файле.

Указания.

  1. В файлах нас интересуют только строки, начинающиеся с подстроки "ATOM" и имеющие в позициях c 13 по 16 (то есть для Python’а в срезе [12:16]) подстроку " CA ". Пояснения. Строки, начинающиеся с "ATOM", содержат сведения об атомах структуры. В позициях с 13 по 16 (включительно) хранится имя атома. Каждый аминокислотный остаток содержит ровно один Cα-атом. Именем Cα-атома в PDB является строка " CA " (в начале и конце по пробелу).

  2. Трёхбуквенное обозначение аминокислотного остатка содержится в строке ATOM в позициях с 18 по 20 (то есть в срезе [17:20]).