Занятие 7.
Краткое содержание: Исключения.
План рассказа
- Зачем нужны исключения
- Как пользоваться исключениями
Отлов исключений:
Выброс исключений:
Ещё пример:
Обязательно научиться
Задачи
см. зачётные задания (не забудьте договориться о том, в каком составе вы их решаете и сообщить мне; вероятно, я скажу какие-нибудь полезные слова напутствия)
Напишите скрипт visalign.py для pymol. Скрипт определяет команду visalign, которая получает три аргумента: имя FASTA-файла, название цепочки, название создаваемого выделения. FASTA-файл должен содержать выравнивание ровно двух последовательностей, относящихся к разным белкам; частью имени записи в FASTA-файле является PDB-код последовательности. Команда visalign должна записывать в названное выделение те основания, которые не совпадают в выравнивании. Если в FASTA-файле нету подходящей последовательности, скрипт не создаёт выделение и сообщает об ошибке.
Подсказки:
cmd.get_names("objects") возвращает список имён загруженных PDB-файлов (если загружены PDB-файлы)
cmd.get_model(SELECTION).atom есть список структур для каждого атома выделения. В частности, для каждого a из cmd.get_model(SELECTION).atom верно, что a.resn есть трёхбуквенный код аминокислоты.
- Функции Bio.PDB.Polypeptide.three_to_one и Bio.PDB.Polypeptide.one_to_three конвертируют трёхбуквенный код аминокислоты формата PDB в однобуквенный код аминокислоты формата FASTA и обратно.
Пример использования:
в командной строке UNIX:
$ wget 'http://www.rcsb.org/pdb/download/downloadFile.do?fileFormat=fastachain&compression=NO&structureId=1NKZ&chainId=A' -O 1nkz_a.fasta ... $ wget 'http://www.rcsb.org/pdb/download/downloadFile.do?fileFormat=fastachain&compression=NO&structureId=1IJD&chainId=E' -O 1ijd_e.fasta ... $ cat 1ijd_e.fasta 1nkz_a.fasta > x.fasta $ dialign2-2 -fa x.fasta
затем в командной строке PyMol:
run H:\Python\visalign.py fetch 1nkz visalign x.fa, mismatch, a color grey, all color red, mismatch