Aurelien GROSDIDIER Homepage

Groups
E-mail Print PDF

Project > Wrappers


Wrappers are libraries providing access to the functions of several well-known external programs related to molecular modeling. The most useful ones are certainly the CHARMM wrappers described below, available for Java and for Python.


PyCHARMM


The PyCHARMM allows a seamless integration of CHARMM in Python pipelines. While its features are not comparable yet to that of the historical CharmmWrapper (see below), it is already usable. The API is available here.

Here is a code example, with comments


#!/usr/bin/python
# -*- coding: utf-8 -*-

import PyCHARMM.CharmmWrapper

try:
  charmm = PyCHARMM.CharmmWrapper.CharmmWrapper() 
  # start the CHARMM instance : guess CHARMM binary, automatically load PAR, RTF, PSF and CRD 
  charmm.autoStart() 
  # calculate the energy 
  charmm.executeAndForget("ENERGY")
  # call COOR STAT and print it output 
  charmm.executeAndKeep("COOR STAT SELE ALL END")
  energy = charmm.getResultAsString()
  print energy
except Exception:
  import traceback
  traceback.print_exc()
  exit(1)
exit(0)


CHARMMWrapper


We implemented a Java library for driving an instance of CHARMM. This is similar to MMTSB, except that this latter is in Perl).


The following listing:


package sib.wrappers.md.charmm;

public class Example {

	public static void main(String[] args) {

		// Execute CHARMM and look in the current directory for PSF(s), CRD(s),
		// extra parameters and topology files. 
		CharmmExtendedWrapper cw = CharmmExtendedWrapper.autoStart();
		
		// Calculate the energy
		System.out.println("Energy is "+cw.getEnergy());
		
		// Example of free text commands
		cw.executeAndKeep("COOR STAT");
		System.out.println("Output is : "+cw.getResultAsString());
		
		// Stop CHARMM
		cw.stop();
		System.exit(0);
	}
}

Produces the following stdout/stderr


sib.wrappers.md.charmm.CharmmExtendedWrapper: Trying to find a built-in CHARMM binary.
sib.wrappers.md.charmm.CharmmExtendedWrapper: Detected /charmm/binaries/charmm_linux_amd64.
sib.wrappers.md.charmm.CharmmExtendedWrapper: Guessed parameters are:
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM Binary: ./charmm/binaries/charmm_linux_amd64
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM topology main: ./charmm/toppar/top_all22_prot.inp
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM topology extra: [ lig.rtf ]
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM parameters main: ./charmm/toppar/par_all22_prot.inp
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM parameters extra: [ lig.par ]
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM PSF files : [ complex.psf ]
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM CRD files : [ complex.crd ]

Energy is -1928.56
Output is :  STATISTICS FOR      1762 SELECTED ATOMS:
    XMIN =   22.453600 XMAX =   61.751530 XAVE =   44.692933
    YMIN =    2.028490 YMAX =   32.707900 YAVE =   17.564850
    ZMIN =    2.167050 ZMAX =   40.846670 ZAVE =   19.366133
    WMIN =    0.224500 WMAX =    2.275000 WAVE =    1.521350

sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM timers: CPU time: 0.33 seconds
sib.wrappers.md.charmm.CharmmExtendedWrapper: CHARMM timers: Elapsed time: 0.356268 seconds.


Other softwares


Several other wrappers are under development:


  • DSSPWrapper is a wrapper around DSSP.
  • AnoleaWrapper is a wrapper around Anolea.
  • ModellerWrapper is a wrapper around Modeller.
  • TCoffeeWrapper is a wrapper around T-Coffee.
 

google analytics