
ROTMAT (CCP4: Supported Program)NAMErotmat  interconverts CCP4/MERLOT/XPLOR rotation angles.SYNOPSISrotmat[Keyworded input] DESCRIPTIONThis program converts the CCP4/MERLOT/XPLOR rotation angles to any other format, and generates their symmetry equivalents. MERLOT/CCP4 conventions are the same; XPLOR is different. See below for further details of this.It also tests whether [Ri]*[Rj]**1 satisfies some target. This is useful for checking whether your set of solutions agree with a self rotation, or perhaps some outside criteria. KEYWORDED INPUTThe various data control lines are identified by keywords, those available being:CRYSTAL, END, ERROR, INPUT, OUTPUT, TARGET, VERBOSE CRYSTAL and INPUT are compulsory. CRYSTAL (with CELL information) must be given before INPUT, OUTPUT or TARGET. CRYSTAL subkeyword ..Subkeywords:
VERBOSEProduces lots more output.INPUT CCP4  MERLOT  XPLOR subkeywords ...[Compulsory].Input a rotation in a specified format. Format conversion is performed and the results output. The possible subsidiary keywords are: ALPHA, THETA, OMEGA, PSI, PHI, AXIS and MATRIX, followed by appropriate numbers.
TARGETInput a target rotation. The subsidiary keywords for TARGET have the same format as those for INPUT.If OUTPUT is specified, checks whether
lies near the identity matrix, i.e. it checks if Kappa of this matrix is less than the acceptable error given by the ERROR keyword for pairs of INPUTs. This may be useful to see whether two cross rotation solutions are consistent with a given self rotation specified as a TARGET. OUTPUTThe subsidiary keywords for OUTPUT have the same format as those for INPUT but the MATRIX subkeyword doesn't take arguments and implies VERBOSE.If an INPUT line is followed by OUTPUT request, all symmetry equivalent solutions are given using CCP4 conventions. For this, CRYSTAL information must have been supplied. If both appropriate subkeywords and VERBOSE are specified, then symmetry equivalents in other conventions are given. If a TARGET line is followed by OUTPUT request, checks matrix pairs to see if they fit self rotation defined by TARGET rotation angles. ERROR <kappa>Specify the acceptable error limit <kappa> for the TARGET command.ENDTerminates input.CALCULATIONSFor each INPUT the full set of rotation angles for all the other conventions is calculated. These are corrected for the appropriate orthogonalisation. Theory:For the self rotation, where coordinates [X'O] are mapped onto [XO] [Rncode=i] [X'Oncode=i] = [XOncode=i] (1) and [Rncode=j] [X'Oncode=j] = [XOncode=j] (2)Remember: fractional coordinates are invariant, and [XOncode=?] = [ROncode=?] [Xf] for any ncode. Since [RFncode=?] [ROncode=?] ==[I] (3) [Xf] = [RFncode=?] [XOncode=?]. So [XOncode=j] = [ROncode=j] [RFncode=i] [XOncode=i]Now (2) can be rewritten as [Rncode=j][ROncode=j] [RFncode=i] [X'Oncode=i] = [ROncode=j] [RFncode=i] [XOncode=i]Rearranging this: [RFncode=i]**(1) [ROncode=j]**(1) [Rncode=j][ROncode=j] [RFncode=i] [X'Oncode=i] = [XOncode=i]>From (3) it follows that [RFncode=?]**(1) = [ROncode=?] and [ROncode=?]**(1) = [RFncode=?]so (2) becomes [ROncode=i][RFncode=j][Rncode=j][ROncode=j] [RFncode=i] [X'Oncode=i] = [XOncode=i] i.e. [ROncode=i][RFncode=j][Rncode=j][ROncode=j] [RFncode=i] == [Rncode=i]For the cross rotation, where model coordinates [YO] are mapped onto some [XO] we do not need to consider more than one orthogonalisation code for the [YO]. These coordinates are always positioned in some orthogonal P1 cell. [Rncode=i] [YO] = [XOncode=i] (4) and [Rncode=j] [YO] = [XOncode=j] (5)Eq. (5) can be rewritten as [Rncode=j] [YO] = [ROncode=j] [RFncode=i] [XOncode=i]and rearranging this: [RFncode=i]**(1) [ROncode=j]**(1) [Rncode=j] [YO] = [XOncode=i] i.e. [ROncode=i][RFncode=j][Rncode=j] == [Rncode=i]Similar arguments can be used to get the symmetry equivalents of any [R] ALMN and POLARRFN allow you to choose your orthogonalisation convention whereas MERLOT and XPLOR have fixed values. The orthogonal axes I J K are defined thus: NCODE = 1 I parallel to a, K parallel to c*, J in ab plane. NCODE = 2 I parallel to b, K parallel to a*, J in bc plane. NCODE = 3 I parallel to c, K parallel to b*, J in ca plane. NCODE = 5 I parallel to a*, K parallel to c, J in bc plane. NCODE = 6 I parallel to a, K parallel to b*, J in ca plane.(Others are listed in the ALMN documentation.) MERLOT and XPLOR are both fixed:
EXAMPLE# # So far program messages are: # Input/Output MERLOT ALPHA BETA GAMMA # Input/Output MERLOT THETA1 THETA2 THETA3 # Input/Output MERLOT PHI PSI KAPPA # Input/Output MERLOT MATRIX # Input/Output CCP4 ALPHA BETA GAMMA # Input/Output CCP4 PHI PSI KAPPA # Input/Output CCP4 MATRIX # Input/Output XPLOR THETA1 THETA2 THETA3 # Input/Output XPLOR PHI PSI KAPPA # Input/Output XPLOR MATRIX # rotmat << eof CRYSTAL number 1 cell 20 30 40 90 110 90 CRYSTAL number 1 orth 3 CRYSTAL number 2 symm 19 cell 60 70 80 90 90 90 orth 1 INPUT XPLOR phi psi kappa 62.9 112 140 INPUT XPLOR phi psi kappa 63 106.46 156.663 INPUT XPLOR phi psi kappa 43 8 137 OUTPUT MERLOT phi psi kappa END eof # NOTESMERLOT/ALMN/POLARRFN/LSQKAB conventions
Rotation matrices to PREMULTIPLY coordinate columns or POSTMULTIPLY axis rows vectors are defined as follows:
XPLOR CONVENTIONSThese are not very clear in the documentation: the following definitions are taken from the program and SHOULD BE CHECKED.Extracts from subroutine rotmat. Routine computes unitary rotation matrix ROT using a) Eulerian angles (MODE=EULE), b) Lattman angles (MODE=LATT), c) Spherical polar angles (MODE=SPHE) or d) A rotation about the specified axis (MODE=AXIS).
N.B. BEWARE: The angle convention is DIFFERENT to MERLOT/CCP4.
The angle KAPPA specifies the rotation around the specified axis. The KAPPA angle is anticlockwise when looking along the rotation axis. The PHI angle is anticlockwise when looking along J. In axis mode we obtain the PSI, PHI spherical polar angles from the AXIS vector. Output: ROT(3,3) contains the rotation matrix. Should be applied as r''(i)=sum_j ROT(i,j)*r(j)BUT EJD thinks the XPLOR matrix equals CCP4/MERLOT matrix transpose. This means that: Eulerian XT1 XT2 XT3 (XPLOR) = T3 T2 T1 (MERLOT). Which is the same as PIT3 T2 PIT1. The matrix for XPLOR axis system in Eulerian theta is CT1*CT3 ST1*CT3 ST2*ST3 ST1*CT2*ST3 +CT1*CT2*ST3 CT1*ST3 ST1*ST3 ST2*CT3 ST1*CT2*CT3 +CT1*CT2*CT3 ST1*ST2 CT1*ST2 CT2To derive the rotation matrix for XPLOR spherical polar angles PHI,PSI,and KAPPA. This can be visualised as Rotation 1 (PHI ) about K Rotation 2 (PSI ) about the new J Rotation 3 (KAPPA) about the new K Rotation 4 (PSI1) about the new J Rotation 5 (PHI1) about the new K +CK SF*SP*SK CP*SK +CF*CF*SP*SP(1CK) +CF*SP*CP*(1CK) SF*CF*SP*SP(1CK) +SP*SF*SK +CK +CF*SP*SK +CF*SP*CP(1CK) +CP*CP(1CK) SF*CP*SP(1CK) +CP*SK CF*SP*SK +CK SF*CF*SP*SP(1CK) SF*CP*SP(1CK) +SF*SF*SP*SP(1CK) ORTHOGONALISATION CONVENTIONS
AUTHOREleanor Dodson, York University, Jan 1992 