Tables for
Volume F
Crystallography of biological macromolecules
Edited by E. Arnold, D. M. Himmel and M. G. Rossmann

International Tables for Crystallography (2012). Vol. F, ch. 18.6, pp. 512-513   | 1 | 2 |

Section 18.6.2. The CNS language

A. T. Brunger,a* P. D. Adams,b W. L. DeLano,c P. Gros,d R. W. Grosse-Kunstleve,b J.-S. Jiang,e N. S. Pannu,f R. J. Read,g L. M. Riceh and T. Simonsoni

aHoward Hughes Medical Institute, and Departments of Molecular and Cellular Physiology, Neurology and Neurological Sciences, and Stanford Synchrotron Radiation Laboratory (SSRL), Stanford University, 1201 Welch Road, MSLS P210, Stanford, CA 94305, USA,bThe Howard Hughes Medical Institute and Department of Molecular Biophysics and Biochemistry, Yale University, New Haven, CT 06511, USA,cGraduate Group in Biophysics, Box 0448, University of California, San Francisco, CA 94143, USA,dCrystal and Structural Chemistry, Bijvoet Center for Biomolecular Research, Utrecht University, Padualaan 8, 3584 CH Utrecht, The Netherlands,eProtein Data Bank, Biology Department, Brookhaven National Laboratory, Upton, NY 11973–5000, USA,fDepartment of Mathematical Sciences, University of Alberta, Edmonton, Alberta, Canada T6G 2G1,gDepartment of Haematology, University of Cambridge, Wellcome Trust Centre for Molecular Mechanisms in Disease, CIMR, Wellcome Trust/MRC Building, Hills Road, Cambridge CB2 2XY, England,hDepartment of Molecular Biophysics and Biochemistry, Yale University, New Haven, CT 06511, USA, and iLaboratoire de Biologie Structurale (CNRS), IGBMC, 1 rue Laurent Fries, 67404 Illkirch (CU de Strasbourg), France
Correspondence e-mail:

18.6.2. The CNS language

| top | pdf |

One of the key features of the CNS language is symbolic data structure manipulation, for example, [\tt\displaylines{\hbox{xray}\hfill\cr\quad\hbox{do } (\hbox{pa}=-2* (\hbox{amplitude(fp)}\,\hat{}\,2 + \hbox{amplitude(fh)}\,\hat{}\,2\hfill\cr{\hbox to 4.1pc{}} -\hbox{amplitude(fph)}\ \hat{}\ 2)* \hbox{amplitude(fp)}\hfill\cr{\hbox to 4.2pc{}} *\,\hbox{real(fh)}/(3* \hbox{v}\, \hat{}\, 2 + 4* (\hbox{amplitude(fph)}\,\hat{}\,2\hfill\cr{\hbox to 4.1pc{}}+\hbox{sph}\,\hat{}\, 2)* \hbox{v})) \hbox{ (acentric)} \hfill\cr \hbox{end}\hfill {\rm(}}]which is equivalent to the following mathematical expression for all acentric indices h, [p_{a}({\bf h}) = 2 {- [|{\bf f}_{p}({\bf h})|^{2} + |{\bf f}_{h}({\bf h})|^{2} - |{\bf f}_{ph}({\bf h})|^{2}] |{\bf f}_{p}({\bf h})| \{[{\bf f}_{h}({\bf h}) + {\bf f}_{h}({\bf h})^{*}]/2\} \over 3 v({\bf h})^{2} + 4 [|{\bf f}_{ph}({\bf h})|^{2} + s_{ph}({\bf h})^{2}] v({\bf h})},\eqno(]where [{\bf f}_{p}] [`fp' in equation ([link]] is the `native' structure-factor array, [{\bf f}_{ph}] [`fph' in equation ([link]] is the derivative structure-factor array, [s_{ph}] [`sph' in equation ([link]] is the corresponding experimental σ, v is the expectation value for the lack of closure (including lack of isomorphism and errors in the heavy-atom model), and [{\bf f}_{h}] [`fh' in equation ([link]] is the calculated heavy-atom structure-factor array. This expression computes the [A_{\rm iso}] coefficient of the phase probability distribution for single isomorphous replacement described by Hendrickson & Lattman (1970)[link] and Blundell & Johnson (1976)[link].

The expression in equation ([link] is computed for the specified subset of reflections `(acentric)'. This expression means that only the selected (in this case all acentric) reflections are used. More sophisticated selections are possible, e.g. [\tt\eqalignno{&(\hbox{amplitude(fp)}\gt 2* \hbox{sh and amplitude(fph)}\gt 2* \hbox{sph}&\cr &\quad\hbox{and d}\gt = 3) &{\rm(}\cr}]selects all reflections with Bragg spacing, d, greater than 3 Å for which both native (fp) and derivative (fph) amplitudes are greater than two times their corresponding σ values (`sh' and `sph', respectively). Extensive use of this structure-factor selection facility is made for cross-validating statistical properties, such as R values (Brünger, 1992)[link], [\sigma_{A}] values (Kleywegt & Brünger, 1996[link]; Read, 1997[link]) and maximum-likelihood functions (Pannu & Read, 1996[link]; Adams et al., 1997[link]).

Similar operations exist for electron-density maps, e.g. [\tt\eqalignno{ &\hbox{xray} &\cr &\quad \hbox{do}\ (\hbox{map}=0)\ (\hbox{map}\,\lt\, 0.1) &\cr &\hbox{end} &{\rm (}\cr}]is an example of a truncation operation: all map values less than 0.1 are set to 0. Atoms can be selected based on a number of atomic properties and descriptors, e.g. [\tt\eqalignno{ \hbox{do}\ (\hbox{b}=10) &(\hbox{residue 1:40 and} &\cr &\quad (\hbox{name ca or name n or name c or name o})) &\cr&&{\rm(}\cr}]sets the B factors of all polypeptide backbone atoms of residues 1 through 40 to 10 Å2.

Operations exist between data structures, e.g. real- and reciprocal-space arrays, and atom properties. For example, Fourier transformations between real and reciprocal space can be accomplished by the following CNS commands: [\tt\eqalignno{ &\hbox{xray} &\cr &\quad \hbox{mapresolution infinity 3}. &\cr &\quad \hbox{fft grid 0.3333 end} &\cr &\quad \hbox{do}\ (\hbox{map}=\hbox{ft}(\hbox{f\_cal}))\ (\hbox{acentric}) &\cr &\hbox{end} &{\rm(}\cr}]which computes a map on a 1 Å grid by Fourier transformation of the [`\hbox{f}\_\hbox{cal'}] array for all acentric reflections.

Atoms can be associated with calculated structure factors, e.g. [\tt\hbox{associate f\_cal (residue 1:50)} \eqno(]This statement will associate the reciprocal-space array `f_cal' with the atoms belonging to residues 1 through 50. These structure-factor associations are used in the symbolic target functions described below.

There are no predefined reciprocal- or real-space arrays in CNS. Dynamic memory allocation allows one to carry out operations on arbitrarily large data sets with many individual entries (e.g. derivative diffraction data) without the need to recompile the source code. The various reciprocal-space structure-factor arrays must therefore be declared and their type specified prior to invoking them. For example, a reciprocal-space array with real values, such as observed amplitudes, is declared by [{\tt\hbox{declare name} = \hbox{fobs type} = \hbox{real domain} = \hbox{reciprocal end}} \eqno(]Reciprocal-space arrays can be grouped. For example, Hen­drickson & Lattman (1970)[link] coefficients are represented as a group of four reciprocal-space structure-factor arrays, [\tt\eqalignno{&\hbox{group type} = \hbox{hl object} = \hbox{pa object} = \hbox{pb}&\cr&\quad\hbox{object} = \hbox{pc object} = \hbox{pd end} &{\rm(}}]where `pa', `pb', `pc' and `pd' refer to the individual arrays. This group statement indicates to CNS that the specified arrays need to be transformed together when reflection indices are changed, e.g. during expansion of the diffraction data to space group P1.


Adams, P. D., Pannu, N. S., Read, R. J. & Brünger, A. T. (1997). Cross-validated maximum likelihood enhances crystallographic simulated annealing refinement. Proc. Natl Acad. Sci. USA, 94, 5018–5023.
Blundell, T. L. & Johnson, L. N. (1976). Protein Crystallography, pp. 375–377. London: Academic Press.
Brünger, A. T. (1992). Free R value: a novel statistical quantity for assessing the accuracy of crystal structures. Nature (London), 355, 472–475.
Hendrickson, W. A. & Lattman, E. E. (1970). Representation of phase probability distributions for simplified combination of independent phase information. Acta Cryst. B26, 136–143.
Kleywegt, G. J. & Brünger, A. T. (1996). Checking your imagination: applications of the free R value. Structure, 4, 897–904.
Pannu, N. S. & Read, R. J. (1996). Improved structure refinement through maximum likelihood. Acta Cryst. A52, 659–668.
Read, R. J. (1997). Model phases: probabilities and bias. Methods Enzymol. 277, 110–128.

to end of page
to top of page