Облако тегов

Авторизация


Полезная информация

 
 

Уровень 2. Моделирование, основанное на умножении последовательностей (по настройкам пользователя)

Печать E-mail
Автор Королёва Юлия   
08.04.2009 г.

Моделирование протеин-лигандового комплекса, основанного на умножении последовательностей, улучшении петель и настройках, введённых пользователем.

В этом примере мы не описываем пошаговые команды MODELLER. Пожалуйста, вернитесь к базовому примеру руководства, для большей информации.

Важнейшая цель моделирования – помощь в понимании функций моделируемого протеина. Изучение шаблонной структуры 1dbm:A (построенной  в базовом моделировании) показало, что петля 93-100, одна из наиболее функционально важных частей энзима, находится в беспорядке и не отражается в PDB-структуре. Наиболее вероятно, что длинный активный сайт петли гибок в отсутствие лиганда и не может отображаться на дифракционной карте. Ненадежность шаблонных координат и невозможность MODELLER моделировать длинные вставки объясняет, почему эта петля была плохо смоделирована в TvLDH, как указано DOPE-профилем.

Image

Так как мы заинтересованы в понимании специфических различий между двумя аналогичными белками, нам нужно строить точные и аккуратные модели. Следовательно, нам нужно находить новые стратегии, чтобы повысить точность моделей. В этом примере, мы изучим три разных метода:

Использование многочисленных шаблонов.

Моделирование петли методом ab-initio

Моделирование с использованием известного лиганда, находящегося во взаимодействии с сайтом связи.

Многочисленные шаблоны

Структура 1bdm малат-дегидрогеназы в базе данных DBAli находилась в группе семейства fm00495 из 4 участников (2mdh:A, 2mdh:B. 1b8p:A и 1dbm:A). Многочисленное выравнивание, сгенерированное командой salign() в MODELLER используется в DBAli, чтобы создать многочисленное структурное выравнивание семейства. Выравнивание может быть загружено из базы данных DBAli или Вы можете использовать файл salign.py, чтобы вычислять это в вашем компьютере.

# Illustrates the SALIGN multiple structure/sequence alignment
from modeller import *
log.verbose()
env = environ()
env.io.atom_files_directory = './:../atom_files/'
aln = alignment(env)
for (code, chain) in (('2mdh', 'A'), ('1bdm', 'A'), ('1b8p', 'A')):
mdl = model(env, file=code, model_segment=('FIRST:'+chain, 'LAST:'+chain))
aln.append_model(mdl, atom_files=code, align_codes=code+chain)
for (weights, write_fit, whole) in (((1., 0., 0., 0., 1., 0.), False, True),
((1., 0.5, 1., 1., 1., 0.), False, True),
((1., 1., 1., 1., 1., 0.), True, False)):
aln.salign(rms_cutoff=3.5, normalize_pp_scores=False,
rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-450, -50),
gap_penalties_3d=(0, 3), gap_gap_score=0, gap_residue_score=0,
dendrogram_file='fm00495.tree',
alignment_type='tree', # If 'progresive', the tree is not
# computed and all structues will be
# aligned sequentially to the first
feature_weights=weights, # For a multiple sequence alignment only
# the first feature needs to be non-zero
improve_alignment=True, fit=True, write_fit=write_fit,
write_whole_pdb=whole, output='ALIGNMENT QUALITY')
aln.write(file='fm00495.pap', alignment_format='PAP')
aln.write(file='fm00495.ali', alignment_format='PIR')
aln.salign(rms_cutoff=1.0, normalize_pp_scores=False,
rr_file='$(LIB)/as1.sim.mat', overhang=30,
gap_penalties_1d=(-450, -50), gap_penalties_3d=(0, 3),
gap_gap_score=0, gap_residue_score=0, dendrogram_file='1is3A.tree',
alignment_type='progressive', feature_weights=[0]*6,
improve_alignment=False, fit=False, write_fit=True,
write_whole_pdb=False, output='QUALITY')

File: multiple_template/salign.py

Чтение во всех последовательностях из файлов PDB (используется команда append_model), затем используется умножение salign, чтобы генерировать начальное грубое выравнивание и затем улучшить его, используя больше информации. Выравнивание затем записывается в PIR и PAP форматах и качественная оценка вычисляется вызовом salign еще один раз.

После проверки многочисленного структурного выравнивания становится очевидным, что цепь B 2mdh содержит необычное число остатков LYS. HEADER файла PDB указывает, что последовательность белка была неизвестна во время улучшения и это явилось трудностью для определения большинства остатков в структуре. Следовательно, запись 2mdh:B была удалена из многочисленного структурного выравнивания.

 _aln.pos         10        20        30        40        50        60
2mdhA     GSMQIRVLVTG-AAQLAFTLLYSIGDGSVFGKNQPILLSLMDVVP--KQQTSEAVNMQLQNCALP-LL 
1bdmA     MKAPVRVAVTGAAGQIGYSLLFRIAAGEMLGKDQPVILQLLEIPQ--AMKALEGVVMELEDCAFPLLA 
1b8pA     -KTPMRVAVTGAAGQICYSLLFRIANGDMLGKDQPVILQLLEIPNEKAQKALQGVMMEIDDCAFPLLA 
_consrvd      ** *** * *    **  *  *   ** **  * *              * *    ** * *
_aln.p   70        80        90       100       110       120       130
2mdhA     KSQFGKNSGN-YASQNVGVLLAGQRAKNAAKN---LKANVKIFKCQGAALNKYWKKSVIVIVVGNPAT 
1bdmA     GLEATDDPDVAFKDADYALLVGAAPR---------LQVNGKIFTEQGRALAEVAKKDVKVLVVGNPAN 
1b8pA     GMTAHADPMTAFKDADVALLVGARPRGPGMERKDLLEANAQIFTVQGKAIDAVASRNIKVLVVGNPAN 
_consrvd                    *               *  *  **  ** *          * ******
_aln.pos  140       150       160       170       180       190       200
2mdhA     NNCLTASKNSAQLNKAKQVNSVKLNHNRAKSMLSQKLGNSPKLSKNVILYGQHGQSQFSGLIQLQLQN 
1bdmA     TNALIAYKNAPGLNPRNFTAMTRLDHNRAKAQLAKKTGTGVDRIRRMTVWGNHSSIMFPDLFHAEVD- 
1b8pA     TNAYIAMKSAPSLPAKNFTAMLRLDHNRALSQIAAKTGKPVSSIEKLFVWGNHSPTMYADYRYAQID- 
_consrvd  *   * *    *          * ****      * *            * *
_aln.pos    210       220       230       240       250       260       270
2mdhA     KQSAGVR-ASKNQSWKTSIYNNVIQQRGVVHVQARTANNSMKTGFALNLYVKHLWKGISQ-KLAQMGL 
1bdmA     --GRPALELV-DMEWYEKVFIPTVAQRGAAIIQARGASSAASAANAAIEHIRDWALGTPEGDWVSMAV 
1b8pA     --GASVKDMINDDAWNRDTFLPTVGKRGAAIIDARGVSSAASAANAAIDHIHDWVLGTAG-KWTTMGI 
_consrvd               *           **     **          *          *        *
_aln.pos      280       290       300       310       320       330
2mdhA     IAHGKAAASPKQNFSCVTRLQNKTWKIVEGLPINDFSREKMNETAKELAEEETEFAEKNSNA 
1bdmA     PSQGEYGIPEGIVYSFPVTAKDGAYRVVEGLEINEFARKRMEITAQELLDEMEQVKALGLI- 
1b8pA     PSDGSYGIPEGVIFGFPVTTENGEYKIVQGLSIDAFSQERINVTLNELLEEQNGVQ-HLLG- 
_consrvd    *                       * ** *  *       *  **  *

File: multiple_template/fm00495.pap

Как и в базовом примере руководства, нам нужно выровнять нашу исследуемую последовательность с шаблонной структурой. Для этой задачи мы снова используем команду salign () (файл `align2d_mult.py'). Мы установили параметр align_block, чтобы выровнять количество структур в шаблонном  выравнивании, len(aln), (т.е. 3), и запросили выравнивание по базовым парам, так как мы не хотим изменять существующее выравнивание между шаблонами. Устанавливая gap_function мы запрашиваем структурно-зависимое закрытие промежутка, используя структурную информацию для этих 3 последовательностей. Только информация о последовательностях использована для конечной последовательности TvLDH.

from modeller import *
log.verbose()
env = environ()
env.libs.topology.read(file='$(LIB)/top_heav.lib')
# Read aligned structure(s):
aln = alignment(env)
aln.append(file='fm00495.ali', align_codes='all')
aln_block = len(aln)
# Read aligned sequence(s):
aln.append(file='TvLDH.ali', align_codes='TvLDH')
# Structure sensitive variable gap penalty sequence-sequence alignment:
aln.salign(output='', max_gap_length=20,
gap_function=True,   # to use structure-dependent gap penalty
alignment_type='PAIRWISE', align_block=aln_block,
feature_weights=(1., 0., 0., 0., 0., 0.), overhang=0,
gap_penalties_1d=(-450, 0),
gap_penalties_2d=(0.35, 1.2, 0.9, 1.2, 0.6, 8.6, 1.2, 0., 0.),
similarity_flag=True)
aln.write(file='TvLDH-mult.ali', alignment_format='PIR')
aln.write(file='TvLDH-mult.pap', alignment_format='PAP')

File: multiple_template/align2d_mult.py

Затем, мы строим новую модель для целевой последовательности TvLDH, основанной на выравнивании против многочисленных шаблонов, использовавших файл model_mult.py:

from modeller import *
from modeller.automodel import *
env = environ()
a = automodel(env, alnfile='TvLDH-mult.ali',
knowns=('1bdmA','2mdhA','1b8pA'), sequence='TvLDH')
a.starting_model = 1
a.ending_model = 5
a.make()

File: multiple_template/model_mult.py

Окончательно, мы используем DOPE потенциал, чтобы оценить новые координаты модели, используя файл evaluate_model.py. 

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.B99990001.pdb')
# Assess all atoms with DOPE:
s = selection(mdl)
s.assess_dope(output='ENERGY_PROFILE NO_REPORT', file='TvLDH.profile',
normalize_profile=True, smoothing_window=15)

File: multiple_template/evaluate_model.py

Оценка модели показывает, что проблемная петля (остатки с 90 до 100) улучшилась, благодаря использованию многочисленных структурных шаблонов. Глобальная оценка DOPE для моделей также улучшилась от -38999.7 до -39164.4. MODELLER был способен использовать изменчивость в районе петли из трех шаблонов, чтобы генерировать конформацию цепи аккуратнее. Тем не менее, конформация петли в регионе вокруг остатка 275 в C-терминальном конце последовательности имеет более высокую оценку DOPE, чем модель, основанная на единственном шаблоне.

Image

Мы используем класс loopmodel в MODELLER, чтобы улучшить конформацию петли между остатками 273 и 283. Мы используем модель №1, созданную в предыдущем  примере, как стартовую структуру, чтобы улучшить петлю. Вы можете найти эту структуру, переименованную как `TvDLH_mult.pdb в субдиректории loop_modeling.

Улучшение петли

Метод оптимизации петли облегчается подсчётом функции и спецификация оптимизации адаптирована для моделирования петли. Это используется автоматически, чтобы улучшать сравнительные модели,. Если Вам  удобнее использовать класс loopmodel, а не automodel ; смотрите пример ниже.

# Loop refinement of an existing model
from modeller import *
from modeller.automodel import *
log.verbose()
env = environ()
# directories for input atom files
env.io.atom_files_directory = './:../atom_files'
# Create a new class based on 'loopmodel' so that we can redefine
# select_loop_atoms (necessary)
class myloop(loopmodel):
# This routine picks the residues to be refined by loop modeling
def select_loop_atoms(self):
# 10 residue insertion 
return selection(self.residue_range('273', '283'))
m = myloop(env,
inimodel='TvLDH-mult.pdb', # initial model of the target
sequence='TvLDH')          # code of the target
m.loop.starting_model= 1           # index of the first loop model 
m.loop.ending_model  = 10          # index of the last loop model
m.loop.md_level = refine.very_fast  # loop refinement method
m.make()

File: loop_modeling/loop_refine.py

В этом примере, класс loopmodel использован, чтобы улучшить регион существующего координатного файла. Необходимо отметить, что этот пример также переопределяет программу loopmodel.select_loop_atoms. Это необходимо в данном случае, так как неявный выбор приодит к тому, что выбираются все промежутки в выравнивании для улучшения, и в этом случае никакое выравнивание не доступно. Вы все еще можете переопределить программу, если Вы хотите выбрать различные регионы для оптимизации.
Мы построим только 10 различных независимо оптимизированных конформаций петли, устанавливая параметр loop.ending_model на 10. Следующий рисунок показывает наложение 10 смоделированных конформаций петли. Синим, зеленым и красным мы выделили начальную, наилучшую и наихудшую конформацию петли (по оценке DOPE)

Image

Файл model_energies.py вычисляет оценку DOPE для всех построенных моделей. Наилучшая энергетическая петля переписывается в 8-ю модель (файл model_energies.py) с глобальной оценкой DOPE -39099.1. Энергетический профиль вычисленный `evaluate_model.py показан ниже

Image

Улучшение петли привело только к очень небольшому увеличению глобальной оценки DOPE. Тем не менее, есть небольшое уменьшение в оценке DOPE в регионе другой петли. Следовательно, мы сделаем следующий шаг, используя наиболее улучшенную структуру (файл TvLDH.BL00080001.pdb), которая переименована в директории лигандов как TvLDH-loop.pdb. Важно отметить, что наиболее точный метод улучшения петли требует моделирования сотен независимых конформаций и их группировки, чтобы выбрать наиболее представительные структуры петли.

Моделирование, с использованием известного лиганда, связанного с сайтом связи.

 В PDB была найдена 1emd - малат-дегидрогеназа E. coli.  Хотя последовательность 1emd даёт только 32% сходства с TvLDH, активный сайт петли и среда лучше сохранены.  В структуре 1emd хорошо смоделирована петля из остатков с 90 по 100. Кроме того, 1emd была смоделирована в присутствии аналога субстрата цитрата и кофактора NADH. Новое выравнивание в формате РАР показано ниже (файл TvLDH-1emd_bs.pap).

 _aln.pos            10        20        30        40        50        60
TvLDH        MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
TvLDH_model  MSEAAHVLITGAAGQIGYILSHWIASGELYGDRQVYLHLLDIPPAMNRLTALTMELEDCAFPHLA 
1emd         ----------------------------------------------------------------- 
_consrvd
_aln.pos       70        80        90       100       110       120       130
TvLDH        GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
TvLDH_model  GFVATTDPKAAFKDIDCAFLVASMPLKPGQVRADLISSNSVIFKNTGEYLSKWAKPSVKVLVIGN 
1emd         ----------------------GVRRKPGMDRSDLFNVN-------------------------- 
_consrvd                              ***  * **   *
_aln.pos           140       150       160       170       180       190
TvLDH        PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
TvLDH_model  PDNTNCEIAMLHAKNLKPENFSSLSMLDQNRAYYEVASKLGVDVKDVHDIIVWGNHGESMVADLT 
1emd         ----------------------------------------------------------------- 
_consrvd
_aln.pos      200       210       220       230       240       250       260
TvLDH        QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
TvLDH_model  QATFTKEGKTQKVVDVLDHDYVFDTFFKKIGHRAWDILEHRGFTSAASPTKAAIQHMKAWLFGTA 
1emd         ----------------------------------------------------------------- 
_consrvd
_aln.pos           270       280       290       300       310       320
TvLDH        PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
TvLDH_model  PGEVLSMGIPVPEGNPYGIKPGVVFSFPCNVDKEGKIHVVEGFKVNDWLREKLDFTEKDLFHEKE 
1emd         ----------------------------------------------------------------- 
_consrvd
_aln.pos      330
TvLDH        IALNHLAQGG/.. 
TvLDH_model  IALNHLAQGG/-- 
1emd         ----------/.. 
_consrvd

File: ligand/TvLDH-1emd_bs.pap

Модифицированное выравнивание относится к отредактированной 1emd структуре (1emd_bs), как вторичный шаблон. Выравнивание переписывается в модель, которая основана на активном сайте петли 1emd_bs и в TvLDH_model (наилучшая модель из предыдущего шага), в остальной части они складываются. Четыре остатка на обеих сторонах активного сайта петли выровнены обоими шаблонами, чтобы проверить, что цикл имеет хорошую ориентацию относительно остальной части модели.

Скрипт моделирования ниже имеет несколько изменений, касающихся model-single.py. Сначала имя файла выравнивания назначалось загрузкой alnfile. Затем переменная knowns переопределялась для включения обоих шаблонов. Другие изменения - дополнение команды `env.io.hetatm = True', чтобы допустить чтение нестандартного пирувата и остатков NADH из входных файлов PDB. Сценарий показан далее (файл `model-multiple-hetero.py').

from modeller import *
from modeller.automodel import *
class mymodel(automodel):
def special_restraints(self, aln):
rsr = self.restraints
for ids in (('NH1:161:A', 'O1A:336:B'),
('NH2:161:A', 'O1B:336:B'),
('NE2:186:A', 'O2:336:B')):
atoms = [self.atoms[i] for i in ids]
rsr.add(forms.upper_bound(group=physical.upper_distance,
feature=features.distance(*atoms),
mean=3.5, stdev=0.1))
env = environ()
env.io.hetatm = True
a = mymodel(env, alnfile='TvLDH-1emd_bs.ali',
knowns=('TvLDH_model','1emd'), sequence='TvLDH')
a.starting_model = 1
a.ending_model = 5
a.make()

File: ligand/model-multiple-hetero.py

Лиганд может быть включен в модель двумя путями MODELLER. В первом случае, переписывание в лиганд, который не присутствует в структуре шаблона но определен в библиотеке топологии остатков MODELLER -а. Такие лиганды включают молекулы воды, ионы металлов, нуклеотиды, гемм-группы, и многие другие лиганды. Эта ситуация здесь ещё не изучена. Во втором случае, переписывание в лиганд, который уже присутствует в структуре шаблона. Мы можем принять также, или что лиганд взаимодействует одинаково с целью и шаблоном, в этом случае мы можем доверять MODELLER-у в извлечении и удовлетворять ограничения расстояния автоматически, или, что относительная ориентация не обязательно сохранена, в этом случае пользователю нужно поставить ограничения в совместной ориентации лиганда и фермента ( конформация лиганда считается жесткой). Два случая проиллюстрированы моделированием кофактора NADH и пирувата соответственно. Как NADH так и кофактор указаны символами `.' в конце каждой последовательности в файле выравнивания (символ `/' указывает цепное прерывание). В общих чертах, символ `. ' в MODELLER-е указывает произвольный общий остаток названный «блоковый» остаток (для большей информации смотрите раздел о блоковых остатках в руководстве MODELLER-а). Необходимо отметить, что символы `.' присутствуют и в одной из структур шаблона и в модельной последовательности. Первые сообщаются MODELLER-у для прочитывания лигандов из шаблона, и последняя сообщает ему включить лиганды в модель.

Структурный файл 1emd содержит аналог субстрата цитрата. Для того, чтобы получить модель с пируватом, физиологическим субстратом  TvLDH, мы преобразовываем аналог цитрата в 1emd в пируват, удаляя группу CH(COOH)2, таким образом получая 1emd_bs файл шаблона. Основное преимущество использования символов `.' - отсутствие необходимости определять топологию остатка.

Чтобы получить ограничения на пируват, мы сначала накладываем структуры нескольких LDH и MDH энзимов, решенных с лигандами. Такое сравнение позволяет нам идентифицировать совершенно сохраненные электростатические взаимодействия, включающее каталитические остатки Arg161 и His186 с одной стороны, и оксо-группы лактат- и малат-лигандов с другой стороны. Моделирование скрипта теперь можно расширить созданием нового класса 'mymodel', который является производным от automodel, но отличается в одном важном отношении: программа special_restraints переопределена, чтобы добавлять встроенные ограничения, которые пользователь может определить ограничением расстояния между сохраненными атомами активных централизованных остатков и их субстрата.

В этом случае, гармоническое верхнее связанное ограничение 3.5±0.1Å наложено на расстояния между тремя определенными парами атомов. Хитрость использована, чтобы предохранить MODELLER от автоматического вычисления ограничения расстояния в комплексе пируват-TvLDH; лиганд в 1emd_bs шаблоне перемещен за верхний предел, связанный с лиганд-белковыми ограничениями.

Окончательно выбранная модель (показана в форме лент ниже), имеет глобальную оценку DOPE -37640.9. Оценка DOPE повышена из-за нового взаимодействия белка с лигандом, что не учитывалось при расчете оценки DOPE.

 
Final model with NAD and LAC ligands in the binding site rendered 
by Chimera
 
Final model with NAD and LAC ligands in the binding site rendered by Chimera
 
перевод с английского
Последнее обновление ( 10.12.2010 г. )
 
След. »
 
 
Научно-информационный портал. Биоинформатика, геномика, протеомика. Биософт. Анализ изображений (Imaging). Copyright © 2008-2010
Rambler's Top100 создание сайтов, разработка сайтов