An object-oriented programming suite for electrostatic effects in biological molecules An experience report on the MEAD project
We have developed a set of object-oriented classes and programs in C++ that implement molecular electrostatic models that can be described by the term, Macroscopic Electrostatics with Atomic Detail (MEAD). In the course of developing the MEAD suite, we have shifted from a class hierarchy rooted in atoms and molecules, to a system in which the top-level classes are the electrostatic potential and the entities that determine the potential in the equations of electrostatics: the charge distribution, the dielectric environment and the electrolyte environment. Atoms and molecules are then seen as objects giving rise to, or occurring as subclasses of, charge distributions, dielectric environments, etc. This shift in focus from the physical objects (molecules) to the more abstract objects that appear in the underlying physics has facilitated the development of alternative approximation schemes and numerical methods through subclassing. It also provides a natural way of writing high level programs in terms of potentials and distributions. Some of the newer elements of C++, such as templates and RTTI, have proven useful to solve multi-method and default method problems. MEAD is distributed as free software.
Unable to display preview. Download preview PDF.
- 7.You, T., Bashford, D.: Conformation and hydrogen ion titration of proteins: A continuum electrostatic model with conformational flexibility. Biophys. J. 69 (1995) 1721–1733Google Scholar
- 11.Madura, J. D., Briggs, J. M., Wade, R. C., Davis, M. E., Luty, B. A., Ilin, A., Antosiewicz, J., Gilson, M. K., Bagheri, B., Scott, L. R., McCammon, J. A.: Electrostatics and diffusion of molecules in solution: Simulations with the University of Houston Brownian Dynamics Program. Computer Physics Communications 91 (1995) 57–95CrossRefGoogle Scholar
- 14.Coplien, J. O.: Advanced C++ Programming Styles and Idioms. Addison-Wesly. 1992Google Scholar
- 15.Stroustrup, B.: The Design and Evolution of C++. Addison Wesley. 1994Google Scholar
- 16.Ingalls, D. H. H.: A simple technique for handling multiple polymorphism. in Proc ACS OOPSLA Conference, Portland, OR. 1986Google Scholar
- 17.Coplien, J. 0.: Advanced C++ Programming Styles and Idioms. Addison-Wesly. 1992 pp. 134–140Google Scholar