HARLEM Developer?s guide
From Harlem
HARLEM (HAmiltonians to Research LargE Molecules) is a multipurpose interactive Molecular Modeling package. It is designed to combine modern electronic structure and techniques from modern statistical mechanics to provide an effective theoretical tool to study large molecules relevant to biological systems. HARLEM provides an interface to popular molecular modeling packages such as GAUSSIAN(TM) , AMBER and DELPHI.
HARLEM was initially developed as a program to compute electronic donor-acceptor interactions using ab initio Divide-and-Conquer approach but now is gradually evolving to become a multipurpose molecular simulation package with some unique capabilities not to be found in other programs. Currently the program implements algorithms to compute parameters of long-distance Electron Transfer reactions (donor/acceptor interaction, reorganization energies) in biological and non-biological systems. It also allows (alone and in a combinationation with other programs) to perform Molecular Mechanics, Quantum Chemical and continuum electrostatics calculations of macromolecular systems.
The program has an object oriented design and is written mostly in C++. It also uses some functions and libraries written in C and FORTRAN. Different computational tasks are performed by separate program modules, organized as C++ classes. This permits easy expandability of the program functionality. Check out the Developer's Feature List for a discussion on how classes have been designed and the Programmer's Manual for guidelines regarding integration and testing.
The program has a Graphical User Interface (GUI) based on WXWidgets [1]. It runs on Microsoft Windows (all versions), Linux (tested on Suse 9.2 running OpenGL as well as WXWidgets libraries) and Digital UNIX ( unix versions run without GUI or using commercial WIN32 porting libraries).
It also provides a unique Python [[2]] library and interface that allows custom sripting to analyze results obtained from any simulation that was either designed using HARLEM or any other program. This programmable interface is also embedded in a user-friendly editor, that can be easily invoked from the HARLEM interface. The Python API in general allows custom querying based on an intuitive framework for the structure that is built into HARLEM. More information on the API are available in the molset API Manual in the Development section. Please feel free to contribute to our growing script libraries here.
Installation (Programmer's Version)
The easiest way to install HARLEM Developer's Version is to download the source from CVS from any one of our CVS servers. In order to do this, you would need a CVS account on our servers as well as a machine that has CVS client installed on it. There are several good options if you are working on Microsoft Windows to install a CVS client. Usually recommended clients that are easy to use and free are the WinCVS [[3]] and TortoiseCVS [[4]] clients.
Once you have installed your client and set it up properly, you can then download the source code from our CVS servers. Unless you are directly collaborating with us on development, the best version for download is to use the anoncvs account and maintain a separate local branch of development on your machine. You can always check in the code into a temporary branch, where it will be tested and then integrated with the final release.
If you are directly collaborating with us on development a separate CVS branch will be created for you on our servers. Depending on how independent a particular module is, the testing can be done on the branch directly, or can be integrated with the nightly builds and tested across the whole platform.
| Please be sure to review the use of CVS and how to use CVS commands. A good place to start learning would be [5]. |

