[cctbxbb] constrained hydrogen geometry

Ralf W. Grosse-Kunstleve rwgk at yahoo.com
Thu Dec 14 11:07:16 PST 2006

Hi Luc,

> I have not been able to find any facility to constraint hydrogen  
> geometry, in the manner of the AFIX in ShelXL I mean. Have I missed  
> them or would it need to be implemented?

They need to be implemented.

> In the latter case, I have tried to figure out how this could be  
> done. I manage to find how position and ADP constraints are handled  
> by constraint objects featuring methods to return the independent  
> variables and the gradient with respect to them. Then cctbx/cctbx/
> examples/structure_factor_derivatives_4.py shows how those features  
> can be used. Would Hydrogen geometry constraint be best handled by  
> mimicking those special positions constraint?

I am not sure. The handling of hydrogens seems more complicated than
dealing with the constraints due to symmetry. I just had a quick look
at the SHELX manual. I see many special cases.

If I had a chance to work on this, I'd start with a Python script
emulating some of the cases handled by SHELX, refining a few small
structures. After getting a few concrete examples to work, I'd try to
generalize the procedures for handling the special cases. I'd switch to
C++ only after having fully conquered the math and the bookkeeping in
Python, and being sure about the final interfaces.

To implement the core refinement, I'd copy and modify
cctbx/cctbx/xray/minimization.py. See also
phenix/phenix/substructure/hyss/minimization.py, which you can find
in the CCI Apps bundle (http://phenix-online.org/download/cci_apps/).

Hope this helps. As you can tell, I am not an expert in constrained
hydrogen refinement, but I'm very interested in seeing such algorithms
in the cctbx (we'd probably want to use them in phenix.refine). Let me
know if you feel I can do something to help out.


Cheap talk?
Check out Yahoo! Messenger's low PC-to-Phone call rates.

More information about the cctbxbb mailing list