When refining a model using noncrystallographic symmetry restraints the program NCS is run is a fashion similar to the modules for other types of observations. It is given the current coordinate set and a definition of the noncrystallographic symmetry. In the long loop the CURVATURE command is used while in the short loop it is the FUNCTION command.
When using constraints the program is run in a very different fashion. It now becomes a pre- and postprocessor for the other modules. The atoms of the prototype must be expanded to fill the asymmetric unit of the crystal. After the modules have completed, NCS is run to reduce the gradient and curvature back to the prototype. In the short loops the the function values do need to be reduced so NCS only needs to be run to SCATTER each shifted.cor.
One cannot construct a generic script for refining a model with constrained noncrystallographic symmetry. The problem is that the model must be ``scattered'' when the modules are ran but ``gathered'' when Shift is ran. This means that the all references to atoms in the control file must be made to atoms in the individual chains but the COMBINE and CONSTANT statements must refer to the prototypical chains. They cannot be placed in the control file. A script must be edited to place the proper parameter editing statements in the input for Shift.
Here is an example of a script which constrains a model to noncrystallographic symmetry. This file is kept in $refroot/doc/prototype/tnt_cycle_con_ncs. As usual the coordinates are stored in init.cor and the final gradient and curvature are stored in rfactor.dat and geometry.dat. The CLUSTER statement is given in the control file. The transformations which relate the individual chains to the prototype are stored on CLUSTER and TRANSFORMATION statements in a file by themselves. The prototype script needs to be modified at the places marked by ``<<< ... >>>".