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