Reindexing matrix -> transform orientation matrix
Hi Folks, I'm just trying to figure out how to do the following, given a triclinic orientation matrix (real or reciprocal space, differ by .inverse() -> triclinic unit cell) (like iotbx.lattice_symmetry) stuff -> set of unit cell, Bravais lattice options with reindex operations apply reindex operation to orientation matrix -> new basis a, b, c The former I have historically done using iotbx.lattice_symmetry but given the move from python to cctbx.python, it seems wasteful. I looked at the source code but got a little confused. The latter seems to be more problematic - even reconstructing the change of basis from a known reindexing operation I don't seem to be able to get the right answer :o( Has anyone done anything like this with the CCTBX tools? The context is autoindexing with XDS using a full sweep's worth of images, then inspecting the indexes in SPOT.XDS based on the contents of XPARM.XDS. Thanks, Graeme Graeme Winter Software and MX Support Scientist Diamond Light Source +44 1235 778091 (work) +44 7786 662784 (work mobile) This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
Graeme Not sure that I understand the context, but the basic diffractometer equation is x = [Phi] [U] [B] h where h =(h k l), [B] is the orthogonalisation matrix (from cell), [U] is the orientation matrix (a rotation matrix) & [Phi] is the spindle rotation In my definition anyway, a reindexing matrix [H] post-multiplies the row vector hT , ie h'T = hT [H] or h' = [H]T h, ie h = [H]T^-1 h' (where T indicates transpose) Then we want [U] [B] h = [U'] [B'] h' = [U] [B] [H]T^-1 h' ie [U'] [B'] = [U] [B] [H]T^-1 we can disentangle the orthogonal matrices [U] & [U'] from the cell matrices [B] & [B'] via the reciprocal metric tensor [[U'][B']]T []U'][B']] = [B']T [U']T [U'] [B'] = [B']T [B'] since [U']T [U'] = I from which we can reconstruct [B'] & hence get [U'] which is what you want Phil On 5 May 2009, at 10:28, Winter, G (Graeme) wrote:
Hi Folks,
I'm just trying to figure out how to do the following, given a triclinic orientation matrix (real or reciprocal space, differ by .inverse() -> triclinic unit cell)
(like iotbx.lattice_symmetry) stuff -> set of unit cell, Bravais lattice options with reindex operations apply reindex operation to orientation matrix -> new basis a, b, c
The former I have historically done using iotbx.lattice_symmetry but given the move from python to cctbx.python, it seems wasteful. I looked at the source code but got a little confused. The latter seems to be more problematic - even reconstructing the change of basis from a known reindexing operation I don't seem to be able to get the right answer :o(
Has anyone done anything like this with the CCTBX tools?
The context is autoindexing with XDS using a full sweep's worth of images, then inspecting the indexes in SPOT.XDS based on the contents of XPARM.XDS.
Thanks,
Graeme
Graeme Winter Software and MX Support Scientist Diamond Light Source
+44 1235 778091 (work) +44 7786 662784 (work mobile)
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
_______________________________________________ cctbxbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/cctbxbb
Hi Phil, Thanks! That appeared to hit the spot. Got my inverse, transposes in a muddle. This combined with A=UB gives me the result I'm after. Cheers, Graeme -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Phil Evans Sent: 05 May 2009 12:14 To: cctbx mailing list Subject: Re: [cctbxbb] Reindexing matrix -> transform orientation matrix Graeme Not sure that I understand the context, but the basic diffractometer equation is x = [Phi] [U] [B] h where h =(h k l), [B] is the orthogonalisation matrix (from cell), [U] is the orientation matrix (a rotation matrix) & [Phi] is the spindle rotation In my definition anyway, a reindexing matrix [H] post-multiplies the row vector hT , ie h'T = hT [H] or h' = [H]T h, ie h = [H]T^-1 h' (where T indicates transpose) Then we want [U] [B] h = [U'] [B'] h' = [U] [B] [H]T^-1 h' ie [U'] [B'] = [U] [B] [H]T^-1 we can disentangle the orthogonal matrices [U] & [U'] from the cell matrices [B] & [B'] via the reciprocal metric tensor [[U'][B']]T []U'][B']] = [B']T [U']T [U'] [B'] = [B']T [B'] since [U']T [U'] = I from which we can reconstruct [B'] & hence get [U'] which is what you want Phil On 5 May 2009, at 10:28, Winter, G (Graeme) wrote:
Hi Folks,
I'm just trying to figure out how to do the following, given a triclinic orientation matrix (real or reciprocal space, differ by .inverse() -> triclinic unit cell)
(like iotbx.lattice_symmetry) stuff -> set of unit cell, Bravais lattice options with reindex operations apply reindex operation to orientation matrix -> new basis a, b, c
The former I have historically done using iotbx.lattice_symmetry but given the move from python to cctbx.python, it seems wasteful. I looked at the source code but got a little confused. The latter seems to be more problematic - even reconstructing the change of basis from a known reindexing operation I don't seem to be able to get the right answer :o(
Has anyone done anything like this with the CCTBX tools?
The context is autoindexing with XDS using a full sweep's worth of images, then inspecting the indexes in SPOT.XDS based on the contents of XPARM.XDS.
Thanks,
Graeme
Graeme Winter Software and MX Support Scientist Diamond Light Source
+44 1235 778091 (work) +44 7786 662784 (work mobile)
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
_______________________________________________ cctbxbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/cctbxbb
_______________________________________________ cctbxbb mailing list [email protected] http://www.phenix-online.org/mailman/listinfo/cctbxbb This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail. Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd. Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message. Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom
participants (2)
-
Phil Evans
-
Winter, G (Graeme)