Skip to content
rmera edited this page Feb 18, 2014 · 38 revisions

chemistry gopher

Gochem is an open source (LGPL2.1) library for chemistry, with some emphasis on computational biochemistry, written in the Go programing language. Gochem development started at the Laboratory for instruction in Swedish, Department of Chemistry, University of Helsinki, Finland. It is currently developed at [Prof. Ochsenfeld's Theoretical Chemistry group] (http://www.cup.uni-muenchen.de/pc/ochsenfeld/), Ludwig Maximilan University, Munich, Germany.

The developer is Dr. Raúl Mera Adasme.

Gochem contains contributions from Doc. Janne Pesonen. The superimposing function was implemented with help from Prof. Verónica Jimenez C. (Universidad de Concepción, Chile). Advice from Prof. Dr. Dage Sundholm is gratefully acknowledged.

The developer dedicates his effort to the long life of the Ven. Khenpo Phuntzok Tenzin Rinpoche.

#Current capabilities

  1. Reads/writes PDB and XYZ files.

  2. Reads XTC and DCD trajectory files, both sequentially and concurrently.

  3. Superimposes molecules (especially adequate for non-proteins since
    doesn't use sequence information). The user specify what atoms to use for the superimposing transformation calculation. Then all the atoms will be superimposed accordingly This means that non-identical molecules can be superimposed.

  4. Calculates RMSD between sets of coordinates.

  5. Allows to select atoms and coordinates by using a go slice of indexes.

  6. Allows to replace selected coordinates for a new set.

  7. Calculates moment tensor and elipsoid of inertia--related properties

  8. The Molecule object implements the sort.Interface interface, so atoms can easily be sorted by b-factors.

  9. Axis manipulation.

    • Align a vector with the Z axis.
    • Rotate around the Z axis until the xy projection of a vector becomes the Y axis.
    • Rotate a sub-group of atoms in a molecule using any 2 coordinates as the rotation axis.

    The latter is implemented using Clifford algebra and, as a legacy version, Euler angles and rotation matrices (math for the Cliffor algebra implementation by Doc. Dr. Janne Pesonen). The Clifford algebra implementation is concurrent. In general, Clifford algebra is mathematically better behaving than Euler angles, which are not defined for certain rotations.

  10. Calculates and draws Ramachandran plots (uses the Plotinum library). for an aminoacidic chain or a subset of it.

  11. Generates input for, run and recover results from QM calculations with Turbomole, Orca, NWChem and MOPAC (which must be obtained independently from their respective distributors). Interfacing gochem to other QM codes is fairly simple.

  12. Implements a JSON interface that allows easy communication of goChem programs with the PyMOL visualization program (www.pymol.org)

#Installation After you have installed the Go toolchain and set up the environment variables (instructions here), you can install the basic goChem library by simply typing the following on a terminal:

go get github.com/rmera/gochem

If you want to install the other components of the library, a few more "go get" commands are needed. Take a look at the user's guide for more info.

#Documentation The User's guide is a work in progress, but it already contains some explanations and examples.

The types, functions, etc. of gochem can be found in the corresponding GoDoc page:

Gochem at GoDoc

#Examples A few practical examples of goChem's usage.

Moment tensor analysis.

Geometry manipulation and QM input building.

[Aligning a given plane with the XY plane.] (https://github.com/rmera/gochem/wiki/Plane)

#Disclaimer

Copyright 2012 Raúl Mera Adasme.

The code in this wiki, is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

The code in this wiki is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

See http://www.gnu.org/licenses/ for more information.

The gochem mascot is a modification by Sebastian Franchini of the Go programing language mascot, by Renée French.

Clone this wiki locally