Analysis & Utility Programs & Scripts
=====================================

This section of the manual contains a brief description of each of the Tinker structure manipulation, geometric calculation and auxiliary programs. A detailed example showing how to run each program is included in a later section. The programs listed below are all part of the main, supported distribution. Additional source code for various unsupported programs can be found in the /other directory of the Tinker distribution.

**ARCEDIT**

ARCEDIT performs processing of multi-frame coordinate files. It interconverts Tinker cycle files with single archive files, which is useful for storing the intermediate results of minimizations, dynamics trajectories, and so on. The program can also extract individual cycle files from a Tinker XYZ archive or DCD binary archive. Additional options allow for the folding or unfolding of periodic boundaries across a trajectory, and interconversion between the Tinker XYZ and DCD binary formats.

**BAR**

BAR computes a free energy from sampling of adjacent "lambda" windows using the Bennett acceptance ratio (BAR) algorithm. Input consists of trajectories or configurations sampled from the adjacent windows, as well as keyfiles and parameters used to define the states for the simulations. In a first phase, the BAR program computes the energies of all structures from both simulations under the control of both sets of potential energy parameters, i.e., four sets of numbers which are written to an intermediate .bar file. In its second phase, BAR reads a .bar file and uses the free energy perturbation (FEP) and Bennett acceptance ratio formula to compute the free energy, enthalpy and entropy between the two states.

**CORRELATE**

The CORRELATE program to compute time correlation functions from collections of Tinker cycle files. Its use requires a user supplied function property that computes the value of the property for which a time correlation is desired for two input structures. A sample routine is supplied that computes either a velocity autocorrelation function or an rms structural superposition as a function of time. The main body of the program organizes the overall computation in an efficient manner and outputs the final time correlation function.

**CRYSTAL**

CRYSTAL is a program for the manipulation of crystal structures including interconversion of fractional and Cartesian coordinates, generation of the unit cell from an asymmetric unit, and building of a crystalline block of specified size via replication of a single unit cell. The present version can handle about 25 of the most common space groups, others can easily be added as needed by modification of the routine symmetry.

**DIFFUSE**

DIFFUSE computes the self-diffusion constant for a homogeneous liquid via the Einstein equation. A previously saved dynamics trajectory is read in and "unfolded" to reverse translation of molecules due to use of periodic boundary conditions. The average motion over all molecules is then used to compute the self-diffusion constant. While the current program assumes a homogeneous system, it should be easy to modify the code to handle diffusion of individual molecules or other desired effects.

**DISTGEOM**

DISTGEOM performs distance geometry calculations using variations on the classic metric matrix method. A user specified number of structures consistent with keyfile input distance and dihedral restraints is generated. Bond length and angle restraints are derived from the input structure. Trial distances between the triangle smoothed lower and upper bounds can be chosen via any of several metrization methods, including a very effective partial random pairwise scheme. The correct radius of gyration of the structure is automatically maintained by choosing trial distances from Gaussian distributions of appropriate mean and width. The initial embedded structures can be further refined against a geometric restraint-only potential using either a sequential minimization protocol or simulated annealing.

**DOCUMENT**

DOCUMENT provides a minimal listing and documentation tool. It operates on the Tinker source code, either individual files or the complete source listing produced by the command script listing.make, to generate lists of routines, common blocks or valid keywords. In addition, the program has the ability to output a formatted parameter listing from the standard Tinker parameter files.

**FREEFIX**

FREEFIX is a small utility to compute the analytical enthalpy, entropy and free energy associated with the release of a flat-bottomed harmonic distance restraint between two sites within a simulation system.

**INTEDIT**

INTEDIT allows interactive inspection and alteration of the internal coordinate definitions and values of a Tinker structure. If the structure is altered, the user has the option to write out a new internal coordinates file upon exit.

**INTXYZ**

INTXYZ converts a Tinker .int internal coordinates formatted file into a Tinker .xyz Cartesian coordinates formatted file.

**MDAVG**

MDAVG reads the informational output produced during generation of a Tinker dynamics trajectory and computes the average value and standard deviation for quantities such as total energy, potential energy, kinetic energy, temperature, pressure and density.

**MOLXYZ**

MOLXYZ is a program for converting a MDL (Molecular Design Limited) MOL file into a Tinker XYZ Cartesian coordinate file. The current version of the program converts the MDL atoms types into Tinker "tiny force field" atom types based on atomic number and connectivity (i.e., a tetravalent carbon is type 64).

**MOL2XYZ**

MOL2XYZ converts a Tripos Sybyl MOL2 file into a Tinker XYZ Cartesian coordinate file. The current version of the program converts the Sybyl MOL2 atoms types into Tinker "tiny force field" atom types based on atomic number and connectivity (i.e., a tetravalent carbon is type 64).

**NUCLEIC**

NUCLEIC automates building of nucleic acid structures. Upon interactive input of a nucleotide sequence with optional phosphate backbone angles, the program builds internal and Cartesian coordinates. Standard bond lengths and angles are used. Both DNA and RNA sequences are supported as are A-, B- and Z-form structures. Double helixes of complementary sequence can be automatically constructed via a rigid docking of individual strands.

**PDBXYZ**

PDBXYZ is a program for converting a RCSB Protein Data Bank file in either legacy PDB or PDBx/mmCIF format into a Tinker .xyz Cartesian coordinate file. If the PDB file contains only amino acid or nucleotide residues, then standard biopolymer connectivity is assumed, and transferred to the .xyz file. For non-biopolymer portions of the PDB file, atom connectivity is determined by the program based on interatomic distances. The program also has the ability to add or remove hydrogen atoms from a biopolymer as required by the force field specified during the computation.

**POLARIZE**

POLARIZE is a simple program for computing molecular polarizability from an atom-based distributed model of polarizability. POLARIZE implements whichever damped interaction model is specified via keyfile and parameter settings. A Tinker .xyz file is required as input. The output consists of the overall polarizability tensor in the global coordinates and its eigenvalues.

**POLEDIT**

POLEDIT is a program for manipulating and processing polarizable atomic multipole models used by AMOEBA-like force fields. Its primary purpose is to process distributed multipole analysis (DMA) or minimum basis iterated stockholder (MBIS) results from output of the GDMA or Multiwfn codes, respectively. The program defines local coordinate frames, sets atomic polarizabilities, removes molecular mechanics polarization from the atomic multipoles, averages over symmetrical atoms and outputs parameters in Tinker format. There are additional invocation options to change local coordinate frame definitions or remove intramolecular polarization from an existing multipole model.

**POTENTIAL**

POTENTIAL performs electrostatic potential comparisons and fitting. POTENTIAL can compare two different force field electrostatic models via computing the RMS between the electrostatic potentials on a grid of points outside the molecular envelope. An electrostatic potential grid can also be generated from quantum chemistry output, and compare against a force field model. Finally, a flexible fitting of a force field model to an existing potential grid is available. During potential fitting, restraints can be applied to keep multipole components close to input values and to enforce specified molecular dipole and quadrupole values. The program can also take as model input a set of different molecules containing common atom types, as well as multiple conformations of a single molecule.

**PRMEDIT**

PRMEDIT is a program for formatting and renumbering Tinker force field parameter files. When atom types or classes are added to a parameter file, this utility program has the ability to renumber all the atom records sequentially, and alter type and class numbers in all other parameter entries to maintain consistency.

**PROTEIN**

PROTEIN automates building of peptide and protein structures. Upon interactive input of an amino acid sequence with optional phi/psi/omega/chi angles, D/L chirality, etc., the program builds internal and Cartesian coordinates. Standard bond lengths and angles are assumed for the peptide. The program will optionally convert the structure to a cyclic peptide, or add either or both N- and C-terminal capping groups. Atom type numbers are automatically assigned for the specified force field. The final coordinates and a sequence file are produced as the output.

**RADIAL**

RADIAL finds the pair radial distribution function between two atom types. The user supplies the two atom names for which the distribution function is to be computed, and the width of the distance bins for data analysis. A previously saved dynamics trajectory is read as input. The raw radial distribution and a spline smoothed version are then output from zero to a distance equal to half the minimum periodic box dimension. The atom names are matched to the atom name column of the Tinker .xyz file, independent of atom type.

**SPACEFILL**

SPACEFILL computes the volume and surface areas of molecules. Using a modified version of Connolly's original analytical description of the molecular surface, the program determines either the van der Waals, accessible or molecular (contact/reentrant) volume and surface area. Both surface area and volume are broken down into their geometric components, and surface area is decomposed into the convex contribution for each individual atom. The probe radius is input as a user option, and atomic radii can be set via the keyword file. If Tinker archive files are used as input, the program will compute the volume and surface area of each structure in the input file.

**SPECTRUM**

SPECTRUM is a program to compute a power spectrum from velocity autocorrelation data. As input, this program requires a velocity autocorrelation function as produced by the CORRELATE program. This data, along with a user input time step, are Fourier transformed to generate the spectral intensities over a wavelength range. The result is a power spectrum, and the positions of the bands are those predicted for an infrared or Raman spectrum. However, the data is not weighted by molecular dipole moment derivatives as would be required to produce correct IR intensities.

**SUPERPOSE**

SUPERPOSE is used to superimpose two molecular structures in 3-dimensions. A variety of options for input of the atom sets to be used during the superposition are presented interactively to the user. The superposition can be mass-weighted if desired, and the coordinates of the second structure superimposed on the first structure are optionally output. If Tinker archive files are used as input, the program will compute all pairwise superpositions between structures in the input files.

**TESTSURF**

TESTSURF computes and compares the accessible surface area, excluded volume and their first derivatives using various analytical and numerical algorithms for a Cartesian coordinate input structure. Methods include Richmond's surface area and gradient, Connolly's surface area and volume, Kundrot's volume gradient, and Koehl's area, volume and gradients. The output can be used to test the accuracy and speed of these geometric measures.

**TORSFIT**

TORSFIT is a program for setting force field parameters for torsional terms by fitting 1-fold to 6-fold torsional amplitudes to the difference between a quantum chemistry rotational profile and a force field rotational profile without any torsional terms.

**VALENCE**

VALENCE is a program for setting force field parameters for local valence terms, either from quantum chemistry data or from embedded empirical rules. [This program is still under development.]

**XYZEDIT**

XYZEDIT is a program to perform a variety of manipulations on an input Tinker .xyz Cartesian coordinates formatted file. The program implements a large number of interactively selectable options. In most cases, multiple options can be applied sequentially to an input file. At the end of the editing process, a new version of the original .xyz file is written as output.

**XYZINT**

XYZINT converts a Tinker .xyz Cartesian coordinate formatted file into a Tinker .int internal coordinates formatted file. This program can optionally use an existing internal coordinates file as a template for the connectivity information.

**XYZMOL2**

XYZMOL2 is a program to convert a Tinker .xyz Cartesian coordinates file into a Tripos Sybyl MOL2 file. The conversion generates only the MOLECULE, ATOM, BOND and SUBSTRUCTURE record type in the MOL2 file. Generic Sybyl atom types are used in most cases; while these atom types may need to be altered in some cases, Sybyl is usually able to correctly display the resulting MOL2 file.

**XYZPDB**

XYZPDB converts a Tinker .xyz Cartesian coordinate file into a RCSB Protein Data Bank file in either legacy PDB or PDBx/mmCIF format. A Tinker .seq file with the biopolymer sequence must be present if the output PDB file is to be formatted as a protein or nucleic acid with a defined sequence.
