[modeller_usage] Re: Reconstruction of CA position only files with all-atom template
To:
Subject: [modeller_usage] Re: Reconstruction of CA position only files with all-atom template
From: Modeller Caretaker <>
Date: Wed, 13 Nov 2024 19:56:34 -0800
On 11/12/24 1:55 PM, jingkaizeng via modeller_usage wrote:
> 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.
I'm not aware of anybody using Modeller to do this, and it might not
make sense - for example if the two structures are very different - but
it should be possible.
> 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
That solution uses a CA-only structure as a 100% identical template to
build a comparative model. Since there are no sidechains in the
template, Modeller will construct those from internal coordinates and
use the CHARMM forcefield to optimize them. So that's not what you want
because it's not going to use your Cryo-EM structure.
> 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 :
From reading your script it looks like you are trying to build a model
using the Cryo-EM structure as a template, restraining the CA atoms to
their "seed" values. That might work but you have a bug in your script:
> # 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))
features.Distance restrains the distance between two atoms. The distance
between an atom and itself is always going to be zero, so this restraint
will have no effect. That's why your output models don't look any
different. If you do want to use this approach you can do it in Modeller
using absolute position restraints, see
https://salilab.org/modeller/10.6/manual/node109.html
You would want something like
for atom in atmsel:
rsr.add(forms.Gaussian(
group=physical.xy_distance,
feature=features.XCoordinate(atom),
mean=<x coordinate of atom in seed>,
stdev=0.01))
Of course you would need to get the desired coordinates of each atom
from the seed structure, and repeat this for the y and z coordinates.
Note though that like any restraint, your "CA position restraints" can
be violated, so the CA atoms won't be exactly where they are in the seed
structure. If you don't want them to move at all, you can achieve that
by building a model using the Cryo-EM structure as a template, using
your seed structure plus reconstructed side chains (from your first
attempt) as an initial model (as per
https://salilab.org/modeller/10.6/manual/node27.html) and then
overriding select_atoms to only move non-CA atoms as per
https://salilab.org/modeller/10.6/manual/node23.html. The resulting
model will probably contain a lot of violations though (since the
distance restraints will be based on the Cryo-EM structure but you are
forcing it to use the seed structure CA coordinates). These could
probably be lessened by removing some or all of the mainchain atoms from
your Cryo-EM template (so that Modeller does not generate restraints on
them). But likely the resulting structures will need further refinement.
Ben Webb, Modeller Caretaker
--
https://salilab.org/modeller/
Modeller mail list: https://salilab.org/mailman/listinfo/modeller_usage