# [phenixbb] symmetry related bond restraint

Edward A. Berry BerryE at upstate.edu
Sun Aug 28 07:29:28 PDT 2011

``` >>> p = sgtbx.rt_mx("x-1,y,z")
>>> s = sgtbx.rt_mx("Y,X+1,-Z+1")
>>> print s.multiply(p)
y,x,-z+1

Or, breaking it down into three steps and doing it manually,
x,y,z
apply pre-shift (-1,0,0) => [x-1,y,z]:
x-1,y,z
apply pure rotation component of symop [Y,X,-Z]:
y,x-1,-z
apply post-translation of symop (0 1 1) => [x+0,y+1,z+1]
y+0,x-1+1,-z+1
y,x,-z+1

Ralf Grosse-Kunstleve wrote:
> On Fri, Aug 26, 2011 at 8:49 AM, Bryan Lepore <bryanlepore at gmail.com
> <mailto:bryanlepore at gmail.com>> wrote:
>
>     [ dev-837 ]
>
>     I am trying to understand a symmetry operation from coot as it bears
>     on phenix bond in the geometry restraints. in essence:
>
>     in coot, origin-pre-shift is (-1 0 0) and the symmetry-related atom I want is
>
>     Y,X,-Z + (0 1 1)
>
>     however, the correct operation in phenix is
>
>     Y,X,-Z+1
>
>     ... I suspect I simply do not understand the transformation. if i
>     could at least confirm this math is correct, i'd appreciate it.
>
>
> Yes, correct:
>
>    from cctbx import sgtbx
>    p = sgtbx.rt_mx("x-1,y,z")
>    s = sgtbx.rt_mx("Y,X+1,-Z+1")
>    print s.multiply(p)
>
> You have two rotation-translation matrices, which you have to multiply in the correct
> order: first you shift the structure
>
>    p * x
>
>   then you apply the symmetry operation
>
>    s * p * x
>
> Ralf
>
>
>
> _______________________________________________
> phenixbb mailing list
> phenixbb at phenix-online.org
> http://phenix-online.org/mailman/listinfo/phenixbb

```