Hi, I am trying to obtain a model by transfer_xyz method, using a template which have less than 30% homology. I want to copy the coordinates of the template and if there is a gap, then obtain coordinates for those regions using model.build(). But, I end up with a model in pieces i.e. Some regions are displaced and built elsewhere. Even for some of the residues for which there is template structure, I get long linear chains built. May be the .ali file is not being used in getting the model! If transfer.xyz will not work if my the alignement has gaps in between, is there any other way to achieve this? I cannot exclude the gaps because, this will not serve the pupose of getting the template coordinates at equivalent regions where my model should have. The .ali file is >P1;1UW6 structureX:1UW6.pdb: 0 :E:215:E:undefined:undefined:-1.00:-1.00 EFDRADILYNIRQTSRPDVIPTQRD-RPVAVSVSLKFINILEVNEITNEVDVVFWQQTTWSDRTL AWNSSHS--PDQVSVPISSLWVPDLAAYN-AISKPEVLTPQLARVVSDGEVLYMPSIRQRFS CDVSGVDTESG-ATCRIKIGSWTHHSREISVDPTTE---------NSDDSEYFSQYSRFEIL DVTQKKNSVTYSCCPEA-YEDVEVSLNFR* >P1;NRmiss_210testb sequence:NRmiss_210testb:0 :E:215 :E:::-1.00:-1.00 SVMEDTLLSVLFETYNPKVRPAQTVGDKVTVRVGLTLTNLLILNEKIEEMTTNVFLNLAWTDYRL QWDPAAYEGIKKLRIPSSDVWQPDIVLMNNNDGSFEITLHVNVLVQHTGAVSWQPSAIYRSS CTIKVMYFPFDWQNCTMVFKSYTYDTSEVTLQHALDAKGEREVKEIVINKDAFTENGQWSIE HKPSRKNWR--SDDP--SYEDVTFYLIIQ* .py file is from modeller import * from modeller.automodel import * log.verbose() env = environ() env.libs.topology.read(file='$(LIB)/top_heav.lib') env.libs.parameters.read(file='$(LIB)/par.lib') aln = alignment(env, file='NRmiss_210anti_1UW6.ali', align_codes=('1UW6')) aln.malign3d(fit=False) aln.append(file='NRmiss_210anti_1UW6.ali', align_codes= 'NRmiss_210testb') md1=model(env) md1.generate_topology(aln['NRmiss_210testb']) md1.transfer_xyz(aln) md1.build(initialize_xyz=False, build_method='INTERNAL_COORDINATES') md1.write(file='NRmiss_210testb.ini')
Any suggestions in this regard is appreciated. Thanks & regards, Latha, Graduate student.
plmallip@mail.uh.edu wrote: > I am trying to obtain a model by transfer_xyz method, > using a template which have less than 30% homology. I want to copy the > coordinates of the template and if there is a gap, then obtain > coordinates for those regions using model.build(). But, I end up with a > model in pieces i.e. Some regions are displaced and built elsewhere. > Even for some of the residues for which there is template structure, I > get long linear chains built. May be the .ali file is not being used in > getting the model!
This sounds like everything is working correctly. transfer_xyz copies the coordinates of your template to the model, but *only* if the atom names are the same. So you'll only get sensible looking coordinates for sidechains if you have the same amino acid type in both (otherwise, the model will only get the backbone from the template). So if you use model.write() immediately after the transfer_xyz(), you'll see that most of your sidechain coordinates, and all of the coordinates for residues that are aligned with gaps in the template, are undefined. Modeller has no other option, since that is all the data you've provided.
To deal with the remaining coordinates, Modeller can construct them from internal coordinates, and that in fact is what you're doing in your script with model.build(). But internal coordinates take no account of steric clashes with the already-existing protein, so you will see extended chains and clashes. These can be removed by building stereochemical and excluded volume restraints, and then optimizing the model with those restraints. But that's essentially what automodel (regular comparative modeling) does. Is there a reason why you don't want to just use that?
Ben Webb, Modeller Caretaker
participants (2)
-
Modeller Caretaker
-
plmallip@mail.uh.edu