On Wed, Oct 26, 2011 at 6:06 PM, Francois Berenger
Is there a way to do this with Phenix?
I.e., from a given model, obtain models with different but also reasonable sidechains conformations.
N.b.: I don't have X-ray data so I am looking for a geometric thing, and I'm OK if the model's backbone undergoes some small movement because of the sidechains having moved.
There is a set of modules that is used for rotamer sampling, but it's basically ignorant of proper packing - we rely on maps and real-space refinement to make sure everything ends up in the right place, and the minimizer will have trouble fixing severe overlaps. You're probably better off looking at a program designed for this, like SCWRL or Rosetta. However, if you want to try something really fast and messy, this will do approximately what you want: phenix.pdbtools model.pdb min_rotomer_distortion=True regularize_geometry=True which will change all sidechains to a minimally different rotamer, then minimize against geometry restraints. There is also a max_rotomer_distortion keyword. We use these to test convergence of various refinement methods, but the models they produce probably aren't very realistic. The code that does all of this could easily be adapted to sample more comprehensively (look at $PHENIX/cctbx_project/mmtbx/command_line/lockit.py for an example of rotamer iteration), but it'll have the same limitations. -Nat