Normally, the BUILD command will build a table using the
main calculation. However, if one specifies COMPARE, the
comparison data structures will be used for the table generation. The
specification of DIFF directs that a difference table be built.
Difference tables require different handling than standard tables. The
data in the table results from subtracting the data generated using the
comparison calculation from the data generated from the main
Further, atoms must be paired properly in order to ensure that the
correct quantities are subtracted. Let us examine the use of the atom
pairs more closely.
If a table is constructed from atom properties, we can use the atom pair list directly to define what data points are equivalent, and therefore, should be subtracted form one another. For difference tables of internal coordinate properties (we consider hydrogen bonds to be internal coordinates in this discussion), the process of finding equivalent internal coordinates is more complex. It can be done as follows: for every internal coordinate in the main calculation, we look up each of the atoms in the atom pair list. If any atom is not found, we ignore that internal coordinate. From the equivalent atoms, we construct the equivalent internal coordinate for the comparison structure. The presence of the equivalent internal coordinate in the comparison structure indicates that we have found an equivalent pair. The pairing that is generated after examining all internal coordinates is used to relate the numbers generated for non-atom properties.
The other accommodations that must be made for the difference tables results from the various identifiers used in the table. Segments in the table correspond to a segment pair, so two segment identifiers must be kept for every table segment. Each residue in the table requires to two residue names and two residue identifiers. Likewise, the tags for atoms now refer to an atom pair. If the tags for both atoms in a pair are the same, then the tag for the pair is the same as the tag for one atom. If the atoms are different, the tag is formed by concatenating the tags for both atoms and separating them by a colon. Finally, the table is marked as a difference table so that the PRINT command can handle the double segment and residue identifiers correctly.