Tinker with Molecular Dynamics for Fun and Profit


Molecular dynamics computations make up a very large proportion of the computer cycles being used in science today. For those of you who remember chemistry and or thermodynamics, you should recall that all of the calculations you made were based on treating the material in question as a homogeneous mass where each part of the mass simply has the average value of the relevant properties. Under average conditions, this tends be adequate most times. But, more and more scientists were running into conditions that would be on the fringes of where they could apply those types of generalizations.

Enter molecular dynamics, or MD. With MD, you have to move down almost to the lowest level of matter that we know of, the level of atoms and molecules. At this level, most of the forces you are dealing with are electrical in nature. Atoms and molecules interact with each other through their electron clouds. Several packages are available for doing this type of work, such as GROMACS and GAMESS. In this article though, I take look at TINKER.

Unlike most of the software I've covered in this space, TINKER isn't available in the package systems of most distributions. This means you will have to go out and download it from the main Web site. There are binary files for Linux (32-bit and 64-bit), Mac OS X and Windows (32-bit and 64-bit). Although these should work in many cases, you probably will want to download the source code and build it with the exact options you want. You can download either a tarball or a zip file containing the source code for TINKER.

Once it is unpacked, change directory to the tinker subdirectory. There are a number of subdirectories named after the various operating system options available. Because you're using Linux, you will want to move to the linux subdirectory.

You will find a series of subdirectories for each of a number of possible compilers. For this article, I chose to use the gfortran compiler. Inside the gfortran subdirectory, you will find a number of scripts to handle each of the build steps. The first step is to run compile.make to build all of the required objects. These scripts need to be run from the location where the source code resides, so once you know which set of scripts you are going to use, move over to the subdirectory tinker/source. From here, I ran ../linux/gfortran/compile.make to compile all of the source code I needed into object files.

The next step is to combine these into a single library file by running ../linux/gfortran/library.make. The last step is to do the linking with the system libraries to create a final executable. This is done by running ../linux/gfortran/link.make.

You now will have a full set of executable files, recognizable by filenames that end with .x. These executable files then can be moved to any other location to make them easier to use.

You should find that 61 different executable files have been created. Each of these executables handles some separate task in the analyses that TINKER is designed to do. I look at only a few different executables here to give you a flavor of the types of tasks that you can do.

The first is analyze.x. This executable will ask for a structure file (in the TINKER .xyz file format) and the type of analysis to run. The output you get back includes the following items: the total potential energy of the system; the breakdown of the energy by potential function type or over individual atoms; the computation of the total dipole moment and its components, moments of inertia and radius of gyration; the listing of the parameters used to compute selected interaction energies; and the energies associated with specified individual interactions.

The next executable, dynamic.x, performs a molecular dynamic or stochastic dynamic computation. On an initial computation, it will take a .xyz structure file as input. If a previous computation was check-pointed, you can use the resultant dynamics trajectory file (or restart file) as input too. These two programs are both deterministic in their methods.

The executable monte.x provides a way to apply Monte Carlo minimization methods to molecular dynamics. It takes a random step for either a single atom or a single torsional angle, then applies the Metropolis sampling method.

The scan.x executable takes a .xyz structure file as input and finds an initial local minimum. From this first local minimum, the program starts searching out along normal modes to try to find other minima. Once it has searched along each of these modes, it then will terminate.

A number of these 61 executables are support utility programs that do non-computational work. For example, the executables xyzint.x and intxyz.x convert back and forth between the .xyz structure file format and the .int internal coordinates formatted file.

For all of these programs, the specific details of how they work is determined by a keyword file (with a filename ending with .key). TINKER uses a huge number of keywords to decide the specifics of any particular run. For example, you could set a single bond stretching parameter with the keyword BOND. The keyword CHARGE will set a single atomic partial charge electrostatic parameter. A full listing of the keywords is available in the TINKER documentation.


Joey Bernard has a background in both physics and computer science. This serves him well in his day job as a computational research consultant at the University of New Brunswick. He also teaches computational physics and parallel programming.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

I like the valuable info you

luxary2014's picture

I like the valuable info you provide in your articles. I will bookmark your blog and check again here. Wedding Dress

Chances are, you didn’t bleed

sollen's picture

Chances are, you didn’t bleed the air out of the cooling system LED Light Bar properly (or at all). Simply filling the radiator at the end of repairs isn’t enough. An air pocket trapped in the system can cause an overheat.

Reply to comment | Linux Journal

مخزن استیل's picture

It's very simple to find out any topic on net as compared to textbooks, as I found this piece of writing at this web page.

One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix