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