The coordinate statement is used to read and manipulate coordinates, such as least-squares fitting to a comparison coordinate set, rotation, translation, and conversion between fractional and orthogonal coordinates.
SyntaxThe coordinate statement options are carried out when the END statement is issued. If one wants to carry out several coordinate manipulations, each manipulation has to be initiated separately from the main level of CNS.
COORdinates coordinate-statement END is invoked from the main level of CNS. The END statement activates execution of the particular operation.
Coordinates are also read using the COORdinate statement:
coordinates @file.pdb
Coordinates can be read into different destination within CNS using the DISPosition qualifier:
This reads Brookhaven Data Bank formatted records consisting of
x,y,z coordinates, occupancies, and B-factors, while trying to match
the atom name, residue name, residue number, and segment name to the
internal molecular topology information. The coordinates are deposited
in the main (X,Y,Z,B,Q), comparison (XCOMP, YCOMP, ZCOMP, BCOMP,
QCOMP), reference (REFX, REFY, REFZ, HARM, HARM), or derivative (DX,
DY, DZ, FBETA, FBETA) coordinate arrays. The information is deposited
only if the atom has been selected. Note that the syntax is strict;
i.e., the SELEction and the DISPosition have to be specified before
one can read a
According to the Brookhaven Protein Data Bank, the entry for atoms
is defined as follows: CNS can use the chain identifier information at the stage of
molecular topology generation, but the information is stored
internally as a segment identifier - the characters in columns 73-76
are used for the segment name. The segment name has to match the
definition in the segment statement. The insertion character is
treated as part of the residue number (note: the residue number is a
string consisting of a maximum of four characters). CNS ignores any
reference to the atom numbers and instead generates its own numbering
scheme. The REMARK record of PDB files is treated as a title
record. No other type of PDB specification, such as SCALE, or SEQU, is
interpreted at present, but are ignored instead. Normally, CNS expects
orthogonal coordinates. The ORTHogonalize option can be used to
convert fractional coordinates into orthogonal Å coordinates. The PDB convention requires an END statement at the end of the
coordinate file. CNS uses the same convention. The inclusion of the
END statement implies that the coordinate statement must not be
terminated with an END statement from the main level of CNS. However,
if the END statement is missing in the coordinate file, parsing errors
will result. The molecular structure has to be defined before any coordinates can
be read and/or manipulated. The first example reads the coordinates from two files into the
main and comparison sets: In the second example, the first set is least-squares fitted to the
second (comparison) set using Ca atoms only. Note that all atoms are
translated and rotated. Then the rms difference between the two sets
is computed for backbone atoms and stored in the symbol
$rms_backbone. Finally, the individual rms differ- ences are printed
for all backbone atoms that show rms differences greater than 1 Å. In the third example, the main coordinates are fractionalized, a
translation and a rotation are applied, and the coordinates are
orthogonalized again. The rotation and translation is the space-group
operator (- x,y+1/2,-z). The final example shows how to rotate the coordinates using
Eulerian angles:
ATOM 837 HG23 THR 1055 -8.573 5.657 -3.818 1.00 0.00 A
HETATM 1223 O GLY 153A -11.704 -9.200 .489 1.00 0.80 1MOL
uuuuu vvvv uuuuCuuuuI vvvvvvvvuuuuuuuuvvvvvvvvuuuuuuvvvvvv uuuu
atom residue x y z q b segid
number name name number
^ insertion character
^ chain identifier
^ additional character for some atom names (mostly h's)
coordinates @set1.pdb
coordinates disposition=comparison @set2.pdb
coordinates fit selection=( name ca ) end
coordinates rms selection=( name ca or name n or name c ) end
evaluate ($rms_backbone=$result)
show ( rmsd )
( attribute rmsd > 1.0 and ( name ca or name n or name c ))
xray a=94.5 b=65.3 c=67.2 alpha=90 beta=90 gamma=90 end
coordinates fractionalize end
coordinates rotate
matrix=( -1 0 0 )
( 0 1 0 )
( 0 0 -1 )
end
coordinates translate
vector=( 0 0.5 0 )
end
coordinates orthogonalize end
coordinates rotate
euler=( 10., 30., 2. )
end