Учебная страница курса биоинформатики,
год поступления 2018
1. Скачайте из PDB запись со структурой белка
Навыки:
- загрузить в свой компьютер файл, доступный в интернет по заданному адресу.
- превратить строку байт в строку символов
- превратить большую строку символов в список строк по разделителю "конец строки"
- построчная запись в новый файл
Пример
import urllib.request # импорт модуля для чтения файлов через интернет f = urllib.request.urlopen('http://files.rcsb.org/download/1apl.pdb') # открыть удаленный pdb файл на чтение a = f.read() # прочитать удаленный файл по-байтно b = a.decode() # перевести строку байтов в строку символов lines = b.split('\n') # превратить строку в список строк по символу конца строки for line in lines: print(line)
Результат - построчно печатается удаленный текстовый файл (в данном случае - pdb файл 1apl)
То же, но запись короче:
import urllib.request lines = urllib.request.urlopen('http://files.rcsb.org/download/1apl.pdb').read().decode().split('\n') for line in lines: print(line)
2. Parse-pdb
В sort можно передавать дополнительный аргумент - функцию, которая каждый элемент преобразуют в то, по чему все в итоге будет сравниваться
3. Посчитать число молекул воды в записи PDB
Фрагменты PDB файла, которые надо будет опозновать в программе.
PDB код - первая и вторая строки:
HEADER ISOMERASE 03-SEP-18 6HJE TITLE TRYPANOSOMA CRUZI PROLINE RACEMASE IN COMPLEX WITH INHIBITOR NG-P27
PDB код узнается как последнее слово в первой строке
Строка с разрешением вот формальное описание строк REMARK 2.
REMARK 2 states the highest resolution, in Angstroms, that was used in building the model. As with all the remarks, the first REMARK 2 record is empty and is used as a spacer. COLUMNS DATA TYPE FIELD DEFINITION
- 1 - 6 Record name "REMARK"
10 LString(1) "2" 12 - 22 LString(11) "RESOLUTION." 24 - 30 Real(7.2) resolution Resolution. 32 - 41 LString(10) "ANGSTROMS."
REMARK 2 REMARK 2 RESOLUTION. 2.00 ANGSTROMS. REMARK 3
Молекулы воды
HETATM 5482 C2 7N0 B 501 23.545 34.077 11.065 1.00 53.17 C HETATM 5483 C1 7N0 B 501 23.074 34.218 9.621 1.00 42.63 C HETATM 5484 O2 7N0 B 501 23.194 33.233 8.881 1.00 40.67 O HETATM 5485 O1 7N0 B 501 22.601 35.312 9.212 1.00 42.48 O HETATM 5486 O HOH A 601 18.517 11.615 25.489 1.00 43.17 O HETATM 5487 O HOH A 602 27.724 -4.687 18.566 1.00 60.64 O HETATM 5488 O HOH A 603 -9.101 -8.169 18.829 1.00 59.68 O HETATM 5489 O HOH A 604 23.354 10.019 -2.743 1.00 57.76 O HETATM 5490 O HOH A 605 15.722 -15.385 49.006 1.00 44.09 O
Опознаются по слову 'HETATM' в колонках 1-6, слову 'HOH' в колонках 18-20. Одна такая строка - одна молекула воды.
4. Cписок лигандов в PDB файле
Пример строк с лигандами:
ATOM 5459 OG SER B 398 18.231 36.082 43.932 1.00 84.54 O TER 5460 SER B 398 HETATM 5461 P PO4 A 501 15.159 -21.917 44.842 1.00 38.22 P HETATM 5462 O1 PO4 A 501 15.896 -21.738 43.514 1.00 40.18 O HETATM 5463 O2 PO4 A 501 13.745 -22.438 44.672 1.00 42.35 O HETATM 5464 O3 PO4 A 501 16.007 -22.792 45.728 1.00 42.70 O HETATM 5465 O4 PO4 A 501 15.031 -20.603 45.559 1.00 36.99 O HETATM 5466 O3 7N0 A 502 16.502 1.783 25.875 1.00 70.38 O HETATM 5467 C4 7N0 A 502 16.537 2.782 26.547 1.00 53.02 C HETATM 5468 C5 7N0 A 502 17.195 4.044 26.103 1.00 55.73 C HETATM 5469 C6 7N0 A 502 17.751 4.531 27.432 1.00 55.92 C HETATM 5470 C7 7N0 A 502 16.915 3.901 28.547 1.00 53.50 C HETATM 5471 C3 7N0 A 502 16.015 2.842 27.929 1.00 47.90 C HETATM 5472 C2 7N0 A 502 14.567 3.288 27.968 1.00 42.83 C
Лиганд опознается по слову 'HETATM' в колонках 1-6. Имя лиганда указано в колонках 18-20. Формальное описание формата строк HETATM см. здесь
Ожидаемый ответ в примере:
{'PO4','7NO'}
Заметим, что молекулы воды формально тоже опознаются как лиганды. Более того, как лиганды опознаются иногда модифицированные аминокислотные остатки. Их тоже оставлять.
Примеры файлов PDB с несколькими лигандами: 2DN1 (лиганд HEM), 5M2T (лиганды URI, EDO, CL, MG, NA), 5NH5 (лиганды SO4, GOL, FE2, CA, MG).
5. Найдите общие подслова указанной длины в двух нуклеотидных последовательностях
Навыки: использование типа set и метода - пересечение множеств, см. help(set)