Hi Nat,

it should be something like this:
1. Symmetry operation on fractional coordinates: Yfrac = S*Xfrac
2. 'Fractionalisation' operation: Xfrac = G^t*Xcart
3. 'Orthoganalisation' of the result: Ycart = G*Yfrac
4. All together: Ycart = G*S*Xfrac = G*S*G^t*Xcart

where S is a symmetry operator G is the orthogonalisation matrix and G^t is it's transpose. So you can pre-compute G*S*G^t,

Cheers,

o.


From: [email protected]
Date: Sun, 17 Aug 2014 15:36:00 -0700
To: [email protected]
Subject: [cctbxbb] real-space symmetry operators

Hi all--

I'm trying to figure out how to orthogonalize symmetry operators given a unit cell, which doesn't seem to be something we have code for.  These appear in PDB files in the REMARK 290 section but I haven't been able to find any other software that generates them, and the relationship between the symops and the real-space equivalents is unclear.  I assume this is conceptually similar to orthogonalizing fractional coordinates, but unit_cell.orthogonalize() does not quite do what I wanted.  In the PDB, for P63 it has this (excerpted):

REMARK 290       2555   -Y,X-Y,Z
...
REMARK 290   SMTRY1   2 -0.500000 -0.866025  0.000000        0.00000
REMARK 290   SMTRY2   2  0.866025 -0.500000  0.000000        0.00000
REMARK 290   SMTRY3   2  0.000000  0.000000  1.000000        0.00000

which looks like it should be relatively straightforward, but I'm not very good with matrices.  Does anyone know the correct math for this?  The corresponding rt_mx object from sgtbx looks like this:

r=(0.0, -1.0, 0.0, 1.0, -1.0, 0.0, 0.0, 0.0, 1.0) t=(0.0, 0.0, 0.0)

(Yes, I realize that there are much easier ways to apply symmetry operators to coordinates, but I want to limit the number of matrix multiplications involved when starting from Cartesian coordinates.)

thanks,
Nat

_______________________________________________ cctbxbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/cctbxbb