Dear Modeller users,
I have a PDB file with missing atoms and residues. I would like to build the missing atoms only without touching the rest.
I tried to build an alignment file where the sequence of the template is the same as the target and without putting any gaps (since I don't want to build any missing loops/residues). My alignment file looks like this:
>P1;4xfa_atom_temp
structureX:4xfa_atom: 5 :A:+186 :A:::-1.00:-1.00
ELLKPRTLADLIRILHELFAGDEVNVEEVQAVLEAYESNPAEWALYAKFDQYRYTRNLVDQGNGKFNLMILCWGE
GHGSSIHDHTDSHCFLKLLQGNLKETLFDWPDKKSNEMIKKSERTLRENQCAYINDSIGLHRVENVSHTEPAVSL
HLFSPPFDTCHAFDQRTGHKNKVTMTFHSKFGIRTP*
>P1;4xfa_atom
structureX:4xfa_atom: 5 :A:+186 :A:::-1.00:-1.00
ELLKPRTLADLIRILHELFAGDEVNVEEVQAVLEAYESNPAEWALYAKFDQYRYTRNLVDQGNGKFNLMILCWGE
GHGSSIHDHTDSHCFLKLLQGNLKETLFDWPDKKSNEMIKKSERTLRENQCAYINDSIGLHRVENVSHTEPAVSL
HLFSPPFDTCHAFDQRTGHKNKVTMTFHSKFGIRTP*
Next, I am using the automodel class to build the missing atoms. I am using the following script:
from modeller import * # Load standard Modeller classes
from modeller.automodel import * # Load the automodel class
log.verbose() # request verbose output
env = environ() # create a new MODELLER environment to build this model in
# directories for input atom files
env.io.atom_files_directory = ['.', '../atom_files']
a = automodel(env,
alnfile = 'alignment.ali', # alignment filename
knowns = '4xfa_atom_temp', # codes of the templates
sequence = '4xfa_atom') # code of the target
a.starting_model= 1 # index of the first model
a.ending_model = 1 # index of the last model
a.make()
It seems that Modeller built the missing atoms (4) but I am ending up with a new model that has fewer atoms than the original one (1512 vs 1558) although they both have the same number of residues. Any idea where could be the problem? Is my approach correct?
I would appreciate your help with this.
Best,
Zina