the newsletter of
collaborative
computational project 1

Development of the CCP1 GUI

Paul Sherwood, and Huub van Dam
CCLRC Daresbury Laboratory, Warrington WA4 4AD
p.sherwood@dl.ac.uk, and h.j.j.vandam@dl.ac.uk

Introduction

The initial version of the CCP1 GUI prototype comprised a number of Python [1] classes that enabled the open source PyMOL package [2] to open a calculation editor panel and to run quantum chemical calculations, initially using GAMESS-UK and MOPAC as the QM codes. This article details a number of recent developments.

Provision of an self-contained Python-based viewer

After working on the PyMOL-based interface for some time we decided to change strategy and provide an integrated molecular viewer/editor along with the GUI. The reasons for this were as follows:
  1. For those groups not already using PyMOL there was an overhead associated with installing and learning to use PyMOL. For groups involved in biomolecular work this is probably of little consequence as the functionalty of PyMOL renders this a worthwhile activity in its own right. However, for researches in small molecule studies, and those with little modelling experience, this was seen as a drawback of the approach.
  2. Plots of 2D slices (such as cuts through orbitals or potentials, used frequently by quantum chemists) weren't available in PyMOL.
  3. From a programming point of view, it was becoming apparent that the transfer of molecular data into and out of the internal PyMOL core was introducing an overhead. It didn't seem possible to perform operation on individual atoms without loading and saving the whole model.
We are now developing a stand-alone molecular viewer and editor with the distribution, but to retain the possibility for integration of the calculation editor parts into other packages such as PyMOL in the future.

We are now using the Visualisation Tool Kit (VTK) [5] This has the disadvantage that it is a complicated piece of software in its own right and as an alternative a simpler viewer is being developed using the Python interface to OpenGL.

Functionalty

QM Calculation Editor

At present the GUI allows the set-up and visualisation of GAMESS-UK calculations using a variety of Hamiltonians, plus the generation of optimised structures, frequencies, molecular orbitals and charge densities. The control data for each calculation is managed using a notebook widget, which allows the control data associated with each area of GAMESS-UK functionality to be grouped together. The details of a QM calculation (including the results) can be saved to a file and restored for use in a new session.

Internal Coordinate (Z-matrix editor)

We have implemented a Z-matrix editor to allow the construction of internal coordinate definitions for use in quantum chemical calculations. The editor allows a molecule to be represented as a mixture of Z-matrix atoms (which are defined in terms of distances and angles to other atoms) and cartesian atoms, which are defined simply by their x-,y- and z-coordinates. Atoms can be cut, copied and pasted allowing re-ordering, and the internal and cartesian definitions changed. The changes are reflected in the viewer window.

A sample screen shot, showing internal coordinates and molecular orbitals of benzene

The ChemShell (QM/MM) Interface

This is the result of the conversion of an interface written within Cerius-2 as part of the QUASI project into the CCP1GUI framework. It takes advantage of the QM and MM interface modules written to support use of these codes in a stand-alone fashion and uses the PyMOL atom selection tools to choose the QM region, optimisation domains etc. It currently supports calculations based on DL_POLY, GAMESS-UK, MNDO and MOPAC.

Availability

The GUI is available on an open source basis from the project web page [6]. It is distributed on an open source basis and interested parties are invited to submit any developments back to the authors.

References and Links

[1] Python: http://www.python.org

[2] PyMOL: http://www.pymol.org

[3] CCP4: http://www.ccp4.ac.uk

[4] Tkinter: http://www.python.org/topics/tkinter/

[5] vtk: http://www.kitware.com

[6] Project home page: http://www.cse.clrc.ac.uk/Activity/CCP1GUI

 

previous contents forward
design by CCP1, March 2003