90 likes | 247 Views
SOLEIL Beamline Proxima1 Some python routines and scripts to handle crystal orientations. Three Axis Orientation & Orientation Matrices Conversion. Three Axis Orientation. Coordinate rotation by a three axis rotation system Virtual three circles goniosta 3 rotations around successive axes
E N D
SOLEIL Beamline Proxima1 Some python routines and scripts to handle crystal orientations Three Axis Orientation & Orientation Matrices Conversion
Three Axis Orientation • Coordinate rotation by a three axis rotation system • Virtual three circles goniosta • 3 rotations around successive axes • Axes can be defined by any set of 3 vectors • 3 axes + 3 angles • StandardAxes = ex, ey, ez • NoniusKappaAxes = ez, kappaVector(50), ez • EulerAxes = ez, ex, ez • DenzoAxes = ez, ey, ex
Python class • Based on the Geometrical classes of the ScientificPython module made by Konrad Hinsen • Vectors objects • Tensor objects • Tensor Analysis module • Transformation • Rotation • Translation • Rotation+Translation Transformation Rotation ThreeAxisRotation http://starship.python.net/crew/hinsen/scientific.html Uses Numerical Python
Constructor \\ 3 immuable axes + Rotation(init,rotationAxes=(ex, ey, ez), inversAxesOrder=0) - rotationAxes is a tupple of 3 vectors (e1, e2, e3) defining the three rotation axes. - init can be either: - a tensor object containing the rotation matrix - a Rotation object, - a set of three angles (a1, a2, a3) in radian A Tensor Object (3x3) Rotation Object Set of 3 angles
Methodes • setAngles((a1,a2,a3)) • getAxisAndAngle() • getAngles() • Get angles from the tensor (2 solutions) • This a reimplementation of the David Thomas's algorithm [1] described by Gerard Bricogne in [2] [1] "Modern Equations of Diffractometry. Goniometry." D.J. Thomas Acta Cryst. (1990) A46 Page 321-343. [2] "The ECC Cooperative Programming Workshop on Position-Sensitive Detector Software." G. Bricogne, Computational aspect of Protein Crystal Data Analysis, Proceedings of the Daresbury Study Weekend (23-24/01/1987) Page 122-126
Operations • Rot = Rot1 * Rot2 • Transformation = Rot * Translation • Vector2 = Rot(Vector1)
Applications Virtual goniometer Calculation of (mis)Seting Angle for Mosflm or Denzo from the U matrix Conversion of MR rotation solutions to different program conventions
Crystal Orientation Matrices Conversion • Data Processing Programs use different convention and frame reference • Mosflm uses 2 different representations 2 different convention • Denzo uses 3 different representations and 2 different convention
Current status • Needs • Numerical Python • ScientificPython • xds2mos.py (can start mosflm) • xds2dnz.py • mos2dnz.py • dnz2mos.py • dnx2xds.py • [mos2xds.py]