pdb shake - dihedral angles
Hi everyone, I wonder what would it take to write an equivalent to pdb_shake script from iotbx/examples with randomization of the backbone dihedral angles phi and psi, instead of all coordinates perturbation? I want to be able to randomize models in a more "realistic" way. Are there data structures/procedures that can be useful for this in cctbx, or should I extract the coordinates and take it from there? Thanks! Kind regards, Dmytro.
On Wed, Feb 20, 2013 at 3:51 AM, Dmytro Guzenko
I wonder what would it take to write an equivalent to pdb_shake script from iotbx/examples with randomization of the backbone dihedral angles phi and psi, instead of all coordinates perturbation? I want to be able to randomize models in a more “realistic” way.
Are there data structures/procedures that can be useful for this in cctbx, or should I extract the coordinates and take it from there?
I think this is non-trivial because of the lever-arm effect - you would need to figure out a way to change phi/psi without propagating down the rest of the chain. What we do have is the ability to run short molecular dynamics, which is what we usually use for this. The big disadvantage right now is that the geometry restraints aren't even close to physically realistic, just good enough for X-ray refinement, so the protein will tend to fly apart over time. I believe you can run it like this: phenix.pdbtools model.pdb simple_dynamics=True discard_psi_phi=False The final argument is optional but probably a good idea - we leave out those restraints for validation purposes, but in this case it is better to keep them within realistic limits. The source code for this is in mmtbx/pdbtools.py. You need to have the geometry restraints available somewhere; obviously these are distributed with Phenix, but I'm pretty sure you could also use an external installation of the CCP4 monomer library - never tried this myself though. Another issue is that this will change all torsion angles, not just the backbone; to prevent this, I think you'd need to modify the dihedral angle restraint proxies for non-phi/psi angles internally to have very high weights. (We don't have any ready-made code to do this but mmtbx/command_line/interpolate.py shows an example of modifying the dihedral proxies in place.) -Nat
Another alternative consists two steps: 1) randomly shake coordinates; 2) regularize geometry. Repeating steps 1-2 with different random seed will produce different outcomes. Larger the shake amount and number of regularization cycles - more different structure will be. Also, you can force this to be local by applying 1-2 to selected atoms, while keeping "anchors" unchanged. If your goal is to produce a structure distorted in a realistic way, then this should just do it. Using Cartesian dynamics is another alternative. Pavel On 2/20/13 6:22 AM, Nathaniel Echols wrote:
On Wed, Feb 20, 2013 at 3:51 AM, Dmytro Guzenko
wrote: I wonder what would it take to write an equivalent to pdb_shake script from iotbx/examples with randomization of the backbone dihedral angles phi and psi, instead of all coordinates perturbation? I want to be able to randomize models in a more “realistic” way.
Are there data structures/procedures that can be useful for this in cctbx, or should I extract the coordinates and take it from there? I think this is non-trivial because of the lever-arm effect - you would need to figure out a way to change phi/psi without propagating down the rest of the chain. What we do have is the ability to run short molecular dynamics, which is what we usually use for this. The big disadvantage right now is that the geometry restraints aren't even close to physically realistic, just good enough for X-ray refinement, so the protein will tend to fly apart over time. I believe you can run it like this:
phenix.pdbtools model.pdb simple_dynamics=True discard_psi_phi=False
The final argument is optional but probably a good idea - we leave out those restraints for validation purposes, but in this case it is better to keep them within realistic limits.
The source code for this is in mmtbx/pdbtools.py. You need to have the geometry restraints available somewhere; obviously these are distributed with Phenix, but I'm pretty sure you could also use an external installation of the CCP4 monomer library - never tried this myself though. Another issue is that this will change all torsion angles, not just the backbone; to prevent this, I think you'd need to modify the dihedral angle restraint proxies for non-phi/psi angles internally to have very high weights. (We don't have any ready-made code to do this but mmtbx/command_line/interpolate.py shows an example of modifying the dihedral proxies in place.)
-Nat _______________________________________________ cctbxbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/cctbxbb
participants (3)
-
Dmytro Guzenko
-
Nathaniel Echols
-
Pavel Afonine