Hi all,
Here is my task: I have some CA position only files of a protein of interested that underlying some important biological pathways. We also have the protein full Cryo-EM structures (pdb:8io4, the exact same protein as well as sequence as the CA only files). Then I would like to fill the keep the CA position only files' CA position (don't move at all) then reconstruct the detail like side chain/secondary structure information from template. So this task is not homology modeling but reconstruction. After getting the reconstructed files, I would like to use these into MD simulations.
I searched from previous mail list, and I found one did this task but not based on template. https://www.salilab.org/archives/modeller_usage/2008/msg00285.html I tried with
"
env = Environ()
# Load the CA-only seed model seed_model = Model(env, file=seed_file)
# Load the template structure (with full atomistic detail) template_model = Model(env, file=template_file)
# Create an alignment between the seed and itself (1:1 alignment) aln = Alignment(env) aln.append_model(seed_model, align_codes='seed') aln.append_model(seed_model, align_codes='seed')
# Write the alignment for debugging purposes aln.write(file='alignment.ali', alignment_format='PIR')
# Define a custom model class to fix the Cα positions class MyModel(automodel): def select_atoms(self): # Select all atoms except the Cα atoms to allow refinement of everything but Cα s = selection(self) return s - s.only_atom_types('CA')
# Set up environment for refinement env.edat.nonbonded_sel_atoms = 2 # Disable interactions between selected and unselected atoms
a = MyModel(env, alnfile = aln, # Alignment file created earlier knowns = 'seed', # Seed model (CA-only) sequence = 'seed') # Target is also the seed (1:1 alignment)
a.starting_model = 1 a.ending_model = 1
a.make() "
But this code didn't use the side chain atom from the Cryo-EM structure, and just use CA position to reconstruct the detail. It seems the reconstruction by this code is not reliable enough that cause infinite energy error in MD simulation, it may indicate some overlap or incorrect side-chain orientations, or improper hydrogen placements. Therefore, I would need to try to reconstruct with the side chain information from template Cryo-EM structure's pdb.
I tried some methods that use the template Cryo-EM structure, but it seems we just do the homology modeling but NOT reconstruction. The production files we get is almost same as the template without make use of the CA position from CA only files. The code I used like :
"
# Load the CA-only seed model seed_model = Model(env, file=seed_file) # Load the template structure (with full atomistic detail) template_model = Model(env, file=template_file) # Create an alignment between the seed and the template aln = Alignment(env) aln.append_model(template_model, align_codes='template') aln.append_model(seed_model, align_codes='seed') # Perform the alignment aln.align()
# Now defining a custom AutoModel class to apply Cα restraints class MyModel(AutoModel): def special_restraints(self, aln): # Restrain all Cα atoms based on the seed model rsr = self.restraints atmsel = selection(self).only_atom_types('CA') # Apply restraints to the selected Cα atoms for atom in atmsel: rsr.add(forms.Gaussian(group=physical.xy_distance, feature=features.Distance(atom, atom), mean=0.0, # No change in CA positions stdev=0.01))
# Instantiate the custom model class a = MyModel(env, alnfile=aln, knowns='template', sequence='seed') a.starting_model = 1 a.ending_model = 1 a.make()
"
I think this task can be done since I found a paper (https://doi.org/10.7554/eLife.68369) that do the similar task, they claim to use Modeller to perform this: "First, side chain atoms from the template X-ray structure (PDB ID 4HFI) were added to each model, followed by a cycle of refinement with all Ca atoms restrained. Restraints on Ca atoms were then substituted with restraints on backbone hydrogen bonds, taken from helix and sheet annotations in the template PDB file, for another cycle of refinement to ensure proper secondary structure."
Can anyone give some suggestions about this reconstruction task? Thanks.
Best,
Jingkai