Computational Chemistry



Table of Contents

1. Personal Context

As noted in Chemistry, I have some now-dated training in chemistry, but no work experience in the field. So when I wanted to learn more, I had to start with Physical Chemistry and then rampup to Computational Chemistry.

A google search led to Linux4chemistry, which gives a long list of tools. I grabbed some of those with OSS licenses. I notice that even the OSS packages have for-fee aspects (licenses for patents, or for documentation, etc.). This is a hard topic with a small cadre of people capable of doing useful work, and lots of big-money people looking for solution.

After building, installing, and trying a dozen tools, I went looking for a text to explain what the heck the tools were doing. I found cramer2004. There are others available, but a brief scan of them confirmed cramer2004's jacket blurbs: The text is usable for the advanced undergraduate-becoming-graduate, and as a quick reference for practitioners.

Given that underpining, we can go back to the software.

2. Software

2.1. Data Banks

A lot is known about hundreds of thousands of molecules, through painstaking laboratory work. Much of this is available on-line, through various databanks. Of course chemical industry (oil, coal, pharmiceuticals, biotech) firms have thir own databanks as well. There is even OSS software available for maintaining chemical databansk, and chemical storeroom inventories.

2.2. Data Formats

The databanks use many machine-readable formats. To convert among them, many packages use OpenBabel.

2.3. 2D Diagrams

Even without doing any molecular modeling, you may need to create 2D drawings of chemicals. There are many available. I chose chemtool

2.4. Viewers

Since chemistry is largely a matter of geometry, we need a way to view the molecular shapes. We need a GUI which shows molecules (imported from various dataformats) in many different presentation modes (e.g., forcefield, stick-and-ball, ribbon, cartoon), does zoom/pan.rotate, measures distances and angles, does 3D images, and allows movies to be made and shown. There are many candidates. I chose PyMol.

2.5. Modelers

So now we can view molecular models developed by others. What if we want to make your own molecular models?

Per cramer2004, we need start with scientifically verifiable theory. That is Quantum Mechanics (sometimes with Relativistic effects) as applied to atoms and molecules. Immediately recognize that this is computationally intractable, so develop models which are tractable and are (for some useful domain of interest) adequately accurate. Most of cramer2004 is explanation of which models work where, and how we know they are or are not accurate enough.

I have been using ghemical and psi3 from Ubuntu. ghemical does graphical data entry, computation, and visualization. I covers lots of forcefields and provides solvation contexts (water wurrounding a chemical in solution).

I'm also looking at MMTK. MMTK is a Python modeling library, based on NumPy, which in turn is based on ATALS-optimized lapack. SO the inner loops are highly optimized, but the larger processes are understandably manipulated in Python. Unfortunately it only has the Amber forcefield at the moment (more coming).

3. References


Christopher J. Cramer. Essentials of Computational Chemistry , 2nd ed. John Wiley and SOnes, 2004. ISBN 0-470-09182-7.

The author apologizes for the hubris of titling it "Essentials" (it was the publublisher's decision), but I found it met that billing for my purposes. The text avoids tool-specific detail, instead descriging problem spaces, candidate approaches, tradeoffs, refinements, etc. The math assumes you have some familiarity with p-chem and quantum mechanics, but otherwise Cramer is careful to spell out the derivations step by step. Defijitely a book you can use for self-study.

Creator: Harry George
Updated/Created: 2008-05-19