Non-covalent interaction (NCI) plots
Introduction
The non-covalent interaction plots are graphical representations of the regions where the densities of two interacting molecules overlap. The accumulation of density in the intermolecular space, which is related to the amount of intermolecular repulsion, can be used to qualitatively infer the strength of the interaction. The implementation of NCI plots in critic2 works with molecules and with periodic solids. NCI plots can be created using the NCIPLOT keyword:
NCIPLOT
ONAME root.s
CUTOFFS rhocut.r dimcut.r
RHOPARAM rhoparam.r
RHOPARAM2 rhoparam2.r
CUTPLOT rhoplot.r dimplot.r
SRHORANGE srhomin.r srhomax.r
VOID void.r
RTHRES rthres.r
INCREMENTS x.r y.r z.r
NSTEP nx.i ny.i nz.i
ONLYNEG
NOCHK
CUBE x0.r y0.r z0.r x1.r y1.r z1.r
CUBE file1.xyz file2.xyz ...
MOLMOTIF
FRAGMENT file.xyz
FRAGMENT
x.r y.r z.r # (in angstrom!)
...
ENDFRAGMENT/END
ENDNCIPLOT/END
The NCIPLOT keyword calculates the density () and the reduced density gradient: \begin{equation} s({\bf r}) = \frac{\lvert{\bf \nabla}\rho({\bf r})\rvert}{2(3\pi^2)^{1/3}\rho({\bf r})^{4/3}} \end{equation} on a three-dimensional grid spanning the system or a certain region of the system determined by the user. The density is assumed to be the reference field (see the REFERENCE keyword). If no scalar fields have been loaded, then the promolecular density is used instead. The reduced density gradient is calculated from the reference fields using the formulas above.
The output of the NCIPLOT keyword is meant to be visualized with the vmd program. As a result of its operation, NCIPLOT generates the following files:
-
<root>.dat
: a text file containing two columns of numbers. The first column is the density multiplied by the sign of the second eigenvalue of the density Hessian. The second is the reduced density gradient. Each row corresponds to one point in the NCIPLOT grid. Plotting this data file directly (for instance, with gnuplot) gives the characteristic $s$ vs. $\rho$ plots seen in the literature. -
<root>-dens.cube
: a cube containing the electron density times the sign of the second Hessian eigenvalue times 100. -
<root>-grad.cube
: a cube containing the reduced density gradient (RDG). -
<root>.vmd
: the VMD script for convenient visualization of the results. To use this file, open vmd from the same directory where the.vmd
file resides. Then go to File->Load Visualization State and select the.vmd
file.
The root of all the files generated by the NCIPLOT run can be changed using the ONAME keyword in the NCIPLOT environment (default: the root of the critic2 input file).
Worked out examples showing how to make NCIPLOTs in molecules, surfaces, and crystals can be found in the examples pages. This may be an easier introduction to the use of the NCIPLOT keyword. The full set of options is described below.
Changing the Number of NCI Grid Points
By default, the region represented is the whole unit cell (in a solid) or the whole molecule, with step lengths of 0.1 bohr in each direction. The step lengths or the number of points in each axis can be controlled with the INCREMENTS and NSTEP keywords. The INCREMENTS keyword:
INCREMENTS x.r y.r z.r
accepts three arguments x.r
, y.r
, and z.r
, which are
interpreted as the step lengths for the NCIPLOT grid in each
direction. The units are bohr (crystals) or angstrom (in
molecules). The NSTEP keyword:
NSTEP nx.i ny.i nz.i
accepts three integers corresponding to the number of steps in each NCIPLOT grid direction.
Selecting the Region for the NCI Plot
In medium or large molecules and crystals, representing the NCI domains for the whole structure results in a very busy plot. In those cases, it is recommended that the user focuses on the region of interest and discards all the other domains. The simplest way to do this is to restrict the NCIPLOT to a box encompassing the required region:
CUBE x0.r y0.r z0.r x1.r y1.r z1.r
where (x0.r
y0.r
z0.r
) and (x1.r
y1.r
z1.r
) are the
coordinates corresponding to the two opposite corners that determine
the orthogonal box in which the NCI domains will be calculated. The
coordinates are in crystallographic (crystals) or in molecular
Cartesian coordinates (molecules, default unit: angstrom).
In crystals, a region larger than one periodic cell can also be
selected with the CUBE keyword.
Another option for restricting the NCI plot to a certain region encompassing a number of intermolecular contacts is ues the box that contains a number of fragments of the crystal or molecular structure using:
CUBE file1.xyz file2.xyz ...
The box for the NCI grid will contain the fragments given by files
file1.xyz
, file2.xyz
,… in standard xyz format. A small border,
given by the RTHRES keyword, is added around the region exactly
containing all the atoms in all the xyz files. Note that, unlike in
the FRAGMENT keyword, the fragments passed to the CUBE keyword are not
used as fragments for the NCI calculation. They are simply used to
establish the box for the NCI grid.
Cutoffs and Options for the Plot
Some cutoffs are relevant to the visualization of the NCI. The
rhocut.r
and dimcut.r
options of the CUTOFFS keyword:
CUTOFFS rhocut.r dimcut.r
determine how the density and reduced density gradient are written to
the .dat
file (respectively). If, at a given point, the density is
above rhocut.r
or the reduced density gradient is above dimcut.r
,
then the point is not written to the .dat
file. The defaults are:
rhocut.r
= 0.2 and dimcut.r
= 2.0 for densities from a loaded
scalar field and 1.0 for promolecular densities.
The cutoffs rhoplot.r
and dimplot.r
in the CUTPLOT keyword:
CUTPLOT rhoplot.r dimplot.r
can be used to change how (and whether) the NCI domains are
represented. When the density is greater than rhoplot.r
, the reduced
density gradient at that point in the -grad.cube
file is set to
a value of 100, effectively eliminating that point from the
isosurface plot. In addition, the default color scale represented in
RDG isosurfaces ranges from -rhoplot.r
to rhoplot.r
. The default
value is 0.05 (densities from a loaded scalar field) or 0.07
(promolecular). The dimplot.r
value is the default isosurface value
represented by VMD. Default: 0.5 (loaded scalar field) or 0.3
(promolecular).
The SRHORANGE keyword:
SRHORANGE srhomin.r srhomax.r
is similar to CUTPLOT. When the density times the sign of the second
Hessian eigenvalue is greater than srhomax.r
or smaller than
srhomin.r
, the reduced density gradient in the -grad.cube
file is
set to 100, effectively eliminating the point from the isosurface
plot. This is useful when plotting a subset of the peaks found in the
.dat
file as isosurfaces. By default, no srhomin.r
or srhomax.r
pruning is done.
The ONLYNEG keyword:
ONLYNEG
tells critic2 to represent only the points where the second eigenvalue of the Hessian is negative.
In molecular crystals the MOLMOTIF keyword:
MOLMOTIF
is used to complete the molecules that lie across unit cell faces by using atoms from neighboring cells. This results in a much more understandable plot, since all molecules are wholly represented.
Finally, the VOID keyword:
VOID void.r
is used to represent only the points where the promolecular density is lower than void.r.
Checkpoint Files
By default, an NCI plot will create a checkpoint file with the same
name as the root for the run and extension .chk_nci
. This checkpoint
is useful if several similar test runs need to be made, for instance,
using different cutoffs. To prevent critic2 from writing the
checkpoint file, use:
NOCHK
The NCIPLOT checkpoint file contains the promolecular densities for the whole system and the fragments, the density, and the reduced density gradient. If the checkpoint file exists and is compatible with the current structure and fragments, it is read. Otherwise, it is discarded and a new checkpoint is written. By default, checkpoint files are used.
NCI Domains Only Between Selected Fragments
In very large systems, the default NCI plots generated by critic2 contain all NCI domains. This results in a very busy plot and one normally wants to focus on a specific intermolecular interaction. In the current version of NCIplot, it is possible to define molecular fragments in order to focus on a specific interaction between two fragments of the system. This can be done by using the FRAGMENT environment:
FRAGMENT
x.r y.r z.r # (in angstrom!)
...
ENDFRAGMENT/END
FRAGMENT file.xyz
Each FRAGMENT block or keyword defines one fragment. Only the
intermolecular interactions between fragments are represented (hence,
at least two FRAGMENT blocks are necessary). In the FRAGMENT
environment, the atomic positions of all the atoms in the fragment are
given. The x.r
, y.r
, z.r
are Cartesian coordinates, and the
units are angstrom, regardless of the use of the
UNITS keyword. This is useful
in combination with the WRITE keyword. In
the typical usage, WRITE generates an xyz file containing a portion
of the crystal or molecule. Then, the user removes all the undesired
atoms using a graphical program (like
avogadro). Finally, the xyz of the desired
fragment are passed back to critic2 using the FRAGMENT keyword.
To simplify this process, the fragment can be read directly by
FRAGMENT from an xyz file (file.xyz
). Note that the fragments need
not include all atoms in the crystal or molecule, or may contain
several lattice-translated copies of the same atom.
There are three options that control the behavior of the fragments: RTHRES, RHOPARAM and RHOPARAM2. The RTHRES keyword is:
RTHRES rthres.r
When fragments are used, the density and reduced density gradient
grids are calculated inside a box encompassing the fragments, with an
additional border that is rthres.r
thick. This value has units of
bohr in crystals, and angstrom in molecules. The default is 2.0
bohr. Note that RTHRES can also be used to control the border around
NCI regions defined with the CUBE keyword.
The RHOPARAM keyword:
RHOPARAM rhoparam.r
restricts the representation of NCI domains to those regions where
none of the fragments contributes more than rhoparam.r
times to the
total promolecular density. The default is 0.95 (i.e. a 95%). This
keyword is useful to remove intramolecular domains within a fragment.
The RHOPARAM2 keyword:
RHOPARAM2 rhoparam2.r
is used to restrict the representation of NCI domains to the regions
where the sum of the promolecular density from all defined fragments
is higher than rhoparam2.r
times the total promolecular density of
the whole system. The default is 0.75 (i.e. 75%). This keyword is
useful to remove NCI domains that are unrelated to the selected
fragments.
Tips for Using NCIPLOT
Some tips for using the NCIPLOT keyword efficiently:
-
If the reference field is a grid, the system is periodic (i.e. the structure was read with CRYSTAL) and no FRAGMENT keyword is used, the dimensions of the grids used in NCIPLOT are the same as the reference field.
-
If the reference field that provides the density for NCIPLOT is a grid field, then it is usually much faster if core-augmentation (ZPSP field option) is not used. The reason is that if the core augmentation is not present, the reduced density gradient and the Hessian components are calculated by Fourier transform, leading to smoother derivatives. However, not using the core augmentation can sometimes result in noisy Hessian components, which may result in alternate blue/red domains (because of a spurious change of sign caused by numerical inaccuracies).
-
Older versions of VMD have problems dealing with non-orthogonal cells. There’s little critic2 can do about this. To work around this problem, use the FRAGMENT or CUBE keywords so an orthogonal NCI region is used.