Руководство составлено на основе инструкций по моделированию, которые предложены на сайте программы MODELLER
Ген лактат-дегидрогеназы был индентифицирован в секвенированном геноме Trichomonas vaginalis (TvLDH). Соответствующий белок имел большее сходство с малат-дегидрогеназой трихомонады (TvMDH) чем с любыми другими лактат-дегидрогеназами (LDH). Мы предположили, что TvLDH возник из TvMDH относительно недавно путём конвергентной эволюции. Были сконструированы сравнительные модели TvLDH и TvMDH для изучения их аминокислотных последовательностей, а также эксперимента по сайт-директивному мутагенезу (для объяснения специфических изменений при конвергентной эволюции данных ферментов). Были экспрессированы как нативный, так и мутировавший фермент и проводилось сравнение их активности.
Отдельные этапы моделирования в этом примере представлены ниже. Необходимо отметить, что мы показываем в этом руководстве каждый шаг для построения модели, если известна только последовательность аминокислот. На практике вы можете уже знать родственную структуру, или можете всегда иметь результат из другой программы. В этом случае вы можете пропустить один или несколько шагов. В ином случае для очень простых действий, вам лучше использовать сетевой сервер ModWeb, чем Modeller сам по себе.
1.
Поиск структур, родственных TvLDH
Во-первых, необходимо
поместить исследуемую последовательность TvLDH в PIR-формат, читаемый программой MODELLER (файл "TvLDH.ali").
>P1;TvLDH
sequence:TvLDH:::::::0.00: 0.00
MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLAGFVATTDPKA
AFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGNPDNTNCEIAMLHAKNLKPEN
FSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLTQATFTKEGKTQKVVDVLDHDYVFDTFFKKI
GHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTAPGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVV
EGFKVNDWLREKLDFTEKDLFHEKEIALNHLAQGG*
File: TvLDH.ali
Первая строка содержит
код последовательности в формате ">P1;code".
Вторая строка с десятью полями отделяет двоеточием
основную содержащуюся информацию о структуре файла.
Только два из этих полей используются для последовательности: "sequence" (показывает, что файл
содержит последовательность без известных структур) и "TvLDH" (имя моделируемого файла). Основа
этого файла содержит последовательность TvLDH, где "*" обозначает её конец. Здесь используется
стандартная однобуквенная кодировка аминокислот (Другие кодировки используются только в случае наличия
нестандартных остатков. Для дополнительной информации смотрите файл modlib/restyp.lib в дистрибутиве Modeller)
Поиск возможно
родственных последовательностей в известных белковых структурах может быть
проведён с помощью команды profile.build() в программе MODELLER. Введённая последовательность, строка за
строкой, будет сравниваться с уже известными (см.файл "build_profile.py"):
1. Иницилизация «окружения» для
запуска моделирования, путём создания нового «окружающего» объекта.
Почти все сценарии MODELLER требуют
этот шаг. Создание нового объекта (здесь 'env', но вы можете назвать его по своему желанию) необходимо для построения многих других
полезных объектов.
2. Создайте новый объект 'sequence_db', назовите его 'sdb'. Объект 'sequence_db' используется для поиска больших баз данных аминокслотных
последовательностей белков.
3. Откройте файл, содержащий полный PDB-вариант тех 95% последовательностей, содержащихся в
базе данных sdb, в текстовом
формате. Последовательности могут быть найдены в файле "pdb_95.pir". Это
файл в формате PIR. Из него удалены последовательности, длиной менее чем 30 аминокислотных остатков или содержщие более чем 4000 нестандартных или не занесённых в
базу остатков.
4. Сохраните файл, содержащий все последовательности, прочитанные в предыдущих
шагах, как двоичный (для
машины).
5. Откройте этот файл в бинарном
формате. Если вы планируете использовать эту базу данных достаточно долго, то вы можете использовать предыдущие два шага только
первый раз, чтобы создать бинарную базу данных. При следующих запусках, вы можете пропустить эти два шага и использовать
двоичный файл напрямую. Программа прочитывает двоичный файл быстрее,
чем PIR-файл.
6. Создайте новый «регулируемый»
('alignment') объект, назовите его 'aln', откройте исследуемую
последовательность "TvLDH" (файла "TvLDH.ali"), и конвертируйте его в
профиль 'prf'.
Профили содержат небольшую
информацию о регулируемых файлах, но они более компактны и лучше для
поиска баз данных последовательностей.
7. Найдите базу данных
последовательностей 'sdb' для нашего изучаемого профиля 'prf'. Подходящие последовательности из базы данных
будут добавлены в профиль.
8. Напишите профиль исследуемой последовательности и её гомологов (см. файл "build_profile.prf"). Эквивалентная информация также написана в
стандартном регулируемом формате.
from modeller import *
log.verbose()
env = environ()
#-- Prepare the input files
#-- Read in the sequence database
sdb = sequence_db(env)
sdb.read(seq_database_file='pdb_95.pir', seq_database_format='PIR',
chains_list='ALL', minmax_db_seq_len=(30, 4000), clean_sequences=True)
#-- Write the sequence database in binary form
sdb.write(seq_database_file='pdb_95.bin', seq_database_format='BINARY',
chains_list='ALL')
#-- Now, read in the binary database
sdb.read(seq_database_file='pdb_95.bin', seq_database_format='BINARY',
chains_list='ALL')
#-- Read in the target sequence/alignment
aln = alignment(env)
aln.append(file='TvLDH.ali', alignment_format='PIR', align_codes='ALL')
#-- Convert the input sequence/alignment into
# profile format
prf = aln.to_profile()
#-- Scan sequence database to pick up homologous sequences
prf.build(sdb, matrix_offset=-450, rr_file='${LIB}/blosum62.sim.mat',
gap_penalties_1d=(-500, -50), n_prof_iterations=1,
check_profile=False, max_aln_evalue=0.01)
#-- Write out the profile in text format
prf.write(file='build_profile.prf', profile_format='TEXT')
#-- Convert the profile back to alignment format
aln = prf.to_alignment()
#-- Write out the alignment file
aln.write(file='build_profile.ali', alignment_format='PIR')
File: build_profile.py
Необходимо помнить, что
хотя этот скрипт написан на языке программирования Python, он использует Modeller-специфичные команды, и поэтому должен
запускаться с использованием следующей команды в командной строке:
mod9v1 build_profile.py
(Вы можете вызвать
командную строку, используя xterm или
GNOME Terminal в Linux, Terminal в Mac OS X, или ссылку 'Modeller' в пусковом меню Windows. Для большей информации о запуске Modeller, смотрите «release notes». Для большей информации об использовании Python, смотрите «Python web site». Необходимо помнить, что вы
можете использовать и другие модули Python в
ваших Modeller-скриптах, если Python установлен в вашей системе)
Команда profile.build() имеет много опций. В этом примере rr_file приведён для использования матриц подобия BLOSUM62 (файл "blosum62.sim.mat" в MODELLER-дистрибутиве) Соответственно,
параметры matrix_offset и gap_penalties_1d установлены
для соответствия значений матрицы BLOSUM62. В этом примере, мы будем запускать только один поиск
повторений (установка параметра n_prof_iterations равному 1). Нет необходимости для
проверки профиля на отклонения (check_profile set to False). Параметр max_aln_evalue установленный на 0.01, показывает что только
последовательности с уровнями энергии меньшими или равными 0.01
будут включены в финальный профиль.
2. Выбор образца
Вывод скрипта "build_profile.py" прописан в файле "build_profile.log". MODELLER всегда создает лог-файлы. Ошибки и опасности в этих лог-файлах могут быть найдены поиском
с помощью "_E>" и "_W>" по отдельности. MODELLER также пишет профили в текстовом
формате, как файл "build_profile.prf". Первые 6 строк
с комментарями показывают введённые параметры, которые MODELLER использует для построения профиля. Следующие строки отвечают за
последовательности, обнаруженные в profile.build().
# Number of sequences: 30
# Length of profile : 335
# N_PROF_ITERATIONS : 1
# GAP_PENALTIES_1D : -900.0 -50.0
# MATRIX_OFFSET : 0.0
# RR_FILE : ${MODINSTALL8v1}/modlib//as1.sim.mat
1 TvLDH S 0 335 1 335 0 0 0 0. 0.0
2 1a5z X 1 312 75 242 63 229 164 28. 0.83E-08
3 1b8pA X 1 327 7 331 6 325 316 42. 0.0
4 1bdmA X 1 318 1 325 1 310 309 45. 0.0
5 1t2dA X 1 315 5 256 4 250 238 25. 0.66E-04
6 1civA X 1 374 6 334 33 358 325 35. 0.0
7 2cmd X 1 312 7 320 3 303 289 27. 0.16E-05
8 1o6zA X 1 303 7 320 3 287 278 26. 0.27E-05
9 1ur5A X 1 299 13 191 9 171 158 31. 0.25E-02
10 1guzA X 1 305 13 301 8 280 265 25. 0.28E-08
11 1gv0A X 1 301 13 323 8 289 274 26. 0.28E-04
12 1hyeA X 1 307 7 191 3 183 173 29. 0.14E-07
13 1i0zA X 1 332 85 300 94 304 207 25. 0.66E-05
14 1i10A X 1 331 85 295 93 298 196 26. 0.86E-05
15 1ldnA X 1 316 78 298 73 301 214 26. 0.19E-03
16 6ldh X 1 329 47 301 56 302 244 23. 0.17E-02
17 2ldx X 1 331 66 306 67 306 227 26. 0.25E-04
18 5ldh X 1 333 85 300 94 304 207 26. 0.30E-05
19 9ldtA X 1 331 85 301 93 304 207 26. 0.10E-05
20 1llc X 1 321 64 239 53 234 164 26. 0.20E-03
21 1lldA X 1 313 13 242 9 233 216 31. 0.31E-07
22 5mdhA X 1 333 2 332 1 331 328 44. 0.0
23 7mdhA X 1 351 6 334 14 339 325 34. 0.0
24 1mldA X 1 313 5 198 1 189 183 26. 0.13E-05
25 1oc4A X 1 315 5 191 4 186 174 28. 0.18E-04
26 1ojuA X 1 294 78 320 68 285 218 28. 0.43E-05
27 1pzgA X 1 327 74 191 71 190 114 30. 0.16E-06
28 1smkA X 1 313 7 202 4 198 188 34. 0.0
29 1sovA X 1 316 81 256 76 248 160 27. 0.93E-03
30 1y6jA X 1 289 77 191 58 167 109 33. 0.32E-05
File: build_profile.prf
Наиболее важные колонки в выведенной таблице profile.build() – вторая, десятая, одиннадцатая
и двенадцатая.
Вторая колонка описывает код PDB последовательности,
которая была сравнена с исследуемой последовательностью. Код PDB в каждой
строке характерен для групп PDB-последовательностей, из которых 95% и более соответствуют друг другу и имеют менее 30
отличающихся остатков или 30% различия в длине последовательности.
Одиннадцатая строка описывает процентную идентичность последовательности
TvLDH и PDB-последовательности, нормализованной по длине со
сравниваемой (показана в десятой колонке). В основном, уровень
идентичности последовательностей - около 25%, если сравниваемая последовательность
короткая (т.е. менее 100 остатков).
Наилучшие измерения соответствия сравниваемой последовательности даются в двенадцатой колонке с уровнями энергии сравниваемых
последовательностей. В данном примере шесть PDB-последовательностей показывают
значительное сходство с исследуемой последовательностью с уровнями энергии, равными 0. Все совпадения имеются с малат-дегидрогеназами (1bdm:A, 5mdh:A, 1b8p:A, 1civ:A, 7mdh:A, и 1smk:A). Чтобы выбрать наиболее совпадающую с нашей
исследуемой последовательностью из шести сходных структур, мы будем
использовать команду alignment.compare_structures(), для определения
структурного и последовательного сходства между возможными образцами (file "compare.py").
from modeller import *
env = environ()
aln = alignment(env)
for (pdb, chain) in (('1b8p', 'A'), ('1bdm', 'A'), ('1civ', 'A'),
('5mdh', 'A'), ('7mdh', 'A'), ('1smk', 'A')):
m = model(env, file=pdb, model_segment=('FIRST:'+chain, 'LAST:'+chain))
aln.append_model(m, atom_files=pdb, align_codes=pdb+chain)
aln.malign()
aln.malign3d()
aln.compare_structures()
aln.id_table(matrix_file='family.mat')
env.dendrogram(matrix_file='family.mat', cluster_cut=-1.0)
File: compare.py
В этом случае, мы
создаём (сначала пустой) сравниваемый объект 'aln' и затем используем петлю 'for' для сигнала
программе MODELLER прочитать каждый из PDB-файлов (необходимо помнить, что для
правильной работы необходимо иметь все PDB-файлы в соответственной директории как на этом
скрипте). Мы используем аргумент model_segment, чтобы выделить только одну цепь аминокислот для
прочтения из каждого PDB-файла (в ином случае, будут прочитываться все цепи из файла). Если
каждая из структур читается, мы используем метод append_model для добавления структур в регулируемую
последовательность.
В конце петли, все
структуры находятся в регулируемой последовательности, но они не
идеально выровнены относительно друг друга (append_model создаёт простое выравнивание 1:1 без промежутков).
Следовательно, мы совершенствуем выравнивние, используя malign для вычисления умноженной выровненной
последовательности.
Команда malign3d преобразует множественные двумерные структуры в 3D, используя умноженную выровненную
последовательность как точку отсчёта.
Команда compare_structures сравнивает структуры согласно выстроенным malign3d. Это не создаёт выровненную структуру,
но суммирует RMS и DRMS-отклонения между атомными позициями и дистанциями, процент идентичности
последовательностей и некоторые другие измерения.
В итоге, команда
id_table записывает файл с расстояниями между базовыми
парами, что может быть использовано непосредственно при введении команды
dendrogram (или программы кластеринга в упаковке PHYLIP). dendrogram создаёт дерево кластеров из введённых матриц
расстояний между базовыми парами, что помогает наглядно показать разницу
между последлвательностями. Также создается лог-файл, доступный для просмотра (файл "compare.log").
Sequence identity comparison (ID_TABLE):
Diagonal ... number of residues;
Upper triangle ... number of identical residues;
Lower triangle ... % sequence identity, id/min(length).
1b8pA @11bdmA @11civA @25mdhA @27mdhA @21smkA @2
1b8pA @1 327 194 147 151 153 49
1bdmA @1 61 318 152 167 155 56
1civA @2 45 48 374 139 304 53
5mdhA @2 46 53 42 333 139 57
7mdhA @2 47 49 87 42 351 48
1smkA @2 16 18 17 18 15 313
Weighted pair-group average clustering based on a distance matrix:
.----------------------- 1b8pA @1.9 39.0000
|
.-------------------------------- 1bdmA @1.8 50.5000
|
.------------------------------------ 5mdhA @2.4 55.3750
|
| .--- 1civA @2.8 13.0000
| |
.---------------------------------------------------------- 7mdhA @2.4 83.2500
|
.------------------------------------------------------------ 1smkA @2.5
+----+----+----+----+----+----+----+----+----+----+----+----+
86.0600 73.4150 60.7700 48.1250 35.4800 22.8350 10.1900
79.7375 67.0925 54.4475 41.8025 29.1575 16.5125
Excerpts of the file compare.log
Сравнение, проведённое
выше, показывает, что 1civ:A и 7mdh:A почти полностью идентичны, обе
последовательны и структурны. Тем не менее 7mdh:A имеет лучшее кристаллографическое
разрешение, чем 1civ:A (2.4Å против 2.8Å). Структуры из второй группы (5mdh:A, 1bdm:A и 1b8p:A) имеют некоторое сходство. В
этой группе 5mdh:A имеет наихудшее разрешение, оставляя для выбора только 1bdm:A и 1b8p:A. 1smk:A – лучшая структура среди представленных
образцов. Но это одна из структур, которая наименее идентична (34%) исследуемой последовательности.
Окончательно мы выбрали 1bdm:A, также 1b8p:A и 7mdh:A, так как у них лучший
кристаллографический R-фактор
(16.9%) и эти последовательности более других сходны с исследуемой
(45%).
3.
Выравнивание TvLDF по шаблону
Хороший путь для
выравнивания последовательности TvLDH со структурой 1bdm:A – команда align2d() в MODELLER. Хотя align2d() основана на динамическом алгоритме, она отличается от
стандартных методов выравнивания последовательностей, тем что она даёт в
отчёте структурную информацию из шаблона. Эта задача успешно выполняется через различные
функции устранения интервалов. В интервалы заносятся
«растворившиеся» и изогнутые участки, вторичные структурные сегменты,
находящиеся снаружи или между замкнутыми в пространстве позициями. В
результате, ошибки выравнивания устраняются
приближением третичной структуры родственной последовательности к той,
которая встречается у стандартной выровненной последовательности. Это
улучшение становится очень важным, так как сходство между
последовательностями уменьшается и количество интервалов возрастает. В
приведённом примере, сходность образца очень высока, поэтому почти любой
метод выравнивания с приемлемыми параметрами будет давать практически одно и то же
выравнивание. Следующий скрипт программы MODELLER выравнивает
последовательность TvLDH в файле "TvLDH.ali" с 1bdm:A-структурой в PDB-файле "1bdm.pdb" (файл "align2d.py").
from modeller import *
env = environ()
aln = alignment(env)
mdl = model(env, file='1bdm', model_segment=('FIRST:A','LAST:A'))
aln.append_model(mdl, align_codes='1bdmA', atom_files='1bdm.pdb')
aln.append(file='TvLDH.ali', align_codes='TvLDH')
aln.align2d()
aln.write(file='TvLDH-1bdmA.ali', alignment_format='PIR')
aln.write(file='TvLDH-1bdmA.pap', alignment_format='PAP')
File: align2d.py
В этом скрипте мы снова
создаём объект 'environ', чтобы позднее использовать его для
ввода команд. Также мы создаём пустое выравнивание 'aln' и затем модель нового белка 'mdl', в которую мы копируем сегмент цепи А
из структурного PDB-файла 1bdm.
Команда append_model() преобразует PDB-последовательность этой модели в выровненную
последовательность и присваивает ей имя "1bdmA" (align_codes). Затем мы добавляем
последовательность "TvLDH" из файла "TvLDH.seq" в последовательность,
используя команду append().
Команда align2d() выполняет выравнивание двух последовательностей.
Окончательно, выровненная последовательность записывается в двух
форматах: PIR ("TvLDH-1bdmA.ali") и PAP ("TvLDH-1bdmA.pap"). PIR-формат используется программой MODELLER на ступени построения модели, в то время как PAP-формат выравнивания доступнее для визуального
представления. Для наилучшего качества образца должно быть
мало промежутков в выравниваемой последовательности. В формате PAP идентичные последовательности
маркируются "*" (файл "TvLDH-1bdmA.pap").
_aln.pos 10 20 30 40 50 60
1bdmA MKAPVRVAVTGAAGQIGYSLLFRIAAGEMLGKDQPVILQLLEIPQAMKALEGVVMELEDCAFPLLAGL
TvLDH MSEAAHVLITGAAGQIGYILSHWIASGELYG-DRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLAGF
_consrvd * * ********* * ** ** * * * * ** ** ** * ********* ***
_aln.p 70 80 90 100 110 120 130
1bdmA EATDDPDVAFKDADYALLVGAAPRL---------QVNGKIFTEQGRALAEVAKKDVKVLVVGNPANTN
TvLDH VATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGNPDNTN
_consrvd ** ** **** * * ** * * ** * * ** ***** *** ***
_aln.pos 140 150 160 170 180 190 200
1bdmA ALIAYKNAPGLNPRNFTAMTRLDHNRAKAQLAKKTGTGVDRIRRMTVWGNHSSIMFPDLFHAEVD---
TvLDH CEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLTQATFTKEG
_consrvd ** * * * ** ** *** * * * * ***** * ** *
_aln.pos 210 220 230 240 250 260 270
1bdmA -GRPALELVDMEWYEKVFIPTVAQRGAAIIQARGASSAASAANAAIEHIRDWALGTPEGDWVSMAVPS
TvLDH KTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTAPGEVLSMGIPV
_consrvd * * * * ** **** *** * * ** * ** *
_aln.pos 280 290 300 310 320 330
1bdmA Q--GEYGIPEGIVYSFPVTAK-DGAYRVVEGLEINEFARKRMEITAQELLDEMEQVKAL--GLI
TvLDH PEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKEIALNHLAQGG
_consrvd *** * * *** * **** * * * * * *
File: TvLDH-1bdmA.pap
4. Model building
(построение модели)
Когда выравнивание сделано, MODELLER вычисляет 3D-модель целевой молекулы совершенно автоматически, используя класс automodel. Следующий скрипт создаст пять сходных моделей TvLDH основанных на
структуре 1bdm:A и выровненной последовательности
в файле "TvLDH-1bdmA.ali" (файл "model-single.py").
from modeller import *
from modeller.automodel import *
env = environ()
a = automodel(env, alnfile='TvLDH-1bdmA.ali',
knowns='1bdmA', sequence='TvLDH',
assess_methods=(assess.DOPE, assess.GA341))
a.starting_model = 1
a.ending_model = 5
a.make()
File: model-single.py
Первая строка загружает automodel и готовит его к использованиию. Затем
мы создаём automodel-объект, называем его 'a', и вводим параметры в руководство
процедуры построения модели. alnfile создаёт имя файла, который содержит выровненную последовательность цель-образец в PIR-формате. knowns определяет известные структуры образца в alnfile ("TvLDH-1bdmA.ali"). sequence определяет имя целевой последовательности в alnfile. assess_methods требует одну или более оценочную отметку (обсуждается в
деталях в следующем разделе). starting_model и
ending_model определяет число моделей, которые складываются (число
может изменяться от 1 до 5). Последняя строка в файле называется "метод make", который действительно складывает
модели.
Наиболее важный
извлекаемый файл - "model-single.log", который сообщает информацию о
предупреждениях, ошибках и другие полезные сведения, включающие задаваемые сжатия, которые используются для моделирования и могут приводить к нарушениям в конечной модели. Последние несколько строк из этого log-файла показаны ниже.
>> Summary of successfully produced models:
Filename molpdf DOPE score GA341 score
----------------------------------------------------------------------
TvLDH.B99990001.pdb 1763.56104 -38079.76172 1.00000
TvLDH.B99990002.pdb 1560.93396 -38515.98047 1.00000
TvLDH.B99990003.pdb 1712.44104 -37984.30859 1.00000
TvLDH.B99990004.pdb 1720.70801 -37869.91406 1.00000
TvLDH.B99990005.pdb 1840.91772 -38052.00781 1.00000
Excerpts of the file model-single.log
Как вы видите, log-файл даёт сумму всех построенных
моделей. Для каждой модели он создаёт файловое имя, которое содержит
координаты этой модели в PDB-формате. Модели можно увидеть в любой программе,
которая читает PDB-формат, например Chimera. Лог также показывает черты каждой
модели, которые подробнее обсуждаются ниже.
5. Оценка
модели
Если несколько моделей
созданы для одной цели, «наилучшая» модель может быть выбрана
несколькими путями. Например, вы можете выбрать модель с самым низким
уровнем объективной функции molpdf или оцениваемой метки DOPE, или с наивысшей оцениваемой меткой GA341, каждая из которых указана в log-файле (объективные функции molpdf, всегда складываются, и они также
сообщаются в разделе REMARK в каждом созданном PDB-файле. Метки DOPE или GA341 или любые другие
оцениваемые метки складываются, если вы вносите их в assess_methods).
Метки molpdf and DOPE не являются «абсолютными»
измерениями, в том смысле, что они могут быть использованы только как
категория, по которой модели складываются в некоторую выровненную
последовательность.
Другие метки допускают градацию. Например,
метка GA341 всегда распределяется от
0.0 (абсолютно неверная модель) до 1.0 (полное соответствие); тем не менее GA341 не так хороша, как DOPE для различения «хороших» и «плохих» моделей.
Когда окончательная модель выбрана, она может быть также оценена несколькими методами.
Ссылки на программы для оценки модели находятся в разделе MODEL EVALUATION.
Перед какой-либо оценкой модели, следует проверить
лог-файл запуска моделирования на возможные программные ошибки ("model-single.log") и устранить
неполадки (для уточнения см. руководство по использованию MODELLER). Файл "evaluate_model.py" оценивает
введённую модель по потенциалу DOPE. (Здесь мы выбираем вторую
созданную модель - вы можете попробовать другие модели).
from modeller import *
from modeller.scripts import complete_pdb
log.verbose() # request verbose output
env = environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib') # read topology
env.libs.parameters.read(file='$(LIB)/par.lib') # read parameters
# read model file
mdl = complete_pdb(env, 'TvLDH.B99990002.pdb')
# Assess with DOPE:
s = selection(mdl) # all atom selection
s.assess_dope(output='ENERGY_PROFILE NO_REPORT', file='TvLDH.profile',
normalize_profile=True, smoothing_window=15)
File: evaluate_model.py
В этом скрипте мы
используем скрипт complete_pdb, чтобы прочитать PDB-файл и подготовить его к энергетическому сложению (это
следует автоматически, так как PDB-файл содержит атомы в нестандартном порядке или имеет
различное расположение атомов). Затем мы создаём выборку всех атомов и с этого момента
большинство энергетических функций программы MODELLER может
работать в соответствии с моделями атомов.
Энергия DOPE складывается с помощью команды assess_dope. Мы добавляем запрос по
энергетическому профилю, выровненный около «окна» в 15 остатков и
нормализованный некоторым количеством изолированных действий в каждом
остатке. Этот профиль прописывается в файл "TvLDH.profile", который может быть
использован для помещения в графическую программу. Например, он
может быть автоматически построен с использованием GNUPLOT-команды 'plot "TvLDH.profile"
using 1:42 with lines'. В другом варианте, вы
можете использовать скрипт plot_profiles.py , включающий в пособии zip-файл для автоматического построения
профилей с пакетом Python matplotlib.
Метка GA341,
подходящая для внешнего анализа с помощью программы PROCHECK, подтверждает, что
TvLDH.B99990001.pdb является приемлемой моделью. Тем не менее, построенный
по метке DOPE профиль показывает регионы с высокой
энергией при длительной активности сайта "петли" между участками 90 и 100 и
длинными спиралями в C-участке,
оканчивающим целевую последовательность.
Мы
предпочли модельный профиль профилю образца – промежутки в построении соответствуют промежуткам в выровненной модели. Зная, что метки
не являются абсолютными, мы не можем сделать прямое численное сравнение
между полученной моделью и образцом. Тем не менее, мы можем установить качество нашей
введённой выровненной последовательности по совпадению неровных линий в
двух профилях – если один наглядно сдвигается, сближаясь с другим, это
похоже на то, что последовательности также сходны.
Длинная петля, протянувшаяся на регионе 220-250,
формирует другую часть активного сайта. Последняя часть
хорошо совпадает с образцом и, возможно, хорошо смоделирована в целевой
структуре, но взаимодействие в регионе 90-100,
также сообщает о высокой энергии DOPE.
Возможные ошибки, показанные DOPE могут не быть
действительными ошибками, особенно если они показаны в сайте
активного межбелкового взаимодействия. Тем не менее, в этом случае, активность сайта "петель" имеет лучший профиль в исходной структуре, что приводит к выводу о неправильности модели в месте активного сайта. Эта проблема рассмотрена в продвинутой обучающей программе моделирования.
перевод с английского
|