As long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem and now that we have gigantic computers, programming has become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them--it has created the problem of using its product. (E.W. Dijkstra, Turing Award Lecture, 1972)
X-PLOR's main focus is the three-dimensional structure determination of macromolecules using crystallographic diffraction or nuclear magnetic resonance (NMR) data. The program is based on an energy function approach: arbitrary combinations of empirical, geometric and effective energy terms describing experimental data may be used. The combined energy function can be minimized by a variety of gradient descent, simulated annealing, and conformational search procedures. The first version of X-PLOR (1.0) was published in the fall of 1987; it had evolved from a modified CRAY version of the CHARMM program (Brooks et al., 1983). X-PLOR was the first program to combine X-ray crystallographic diffraction data and molecular dynamics for refinement (Brünger, Kuriyan, and Karplus, 1987). Since then the program has undergone extensive development, and the focus has shifted from refinement to structure determination. Major features of computational X-ray crystallography and solution NMR-spectroscopy have been included. Future development of X-PLOR is aimed at providing a comprehensive system for all computational aspects of macromolecular structure determination.
X-PLOR is more than a program: it is a macromolecular language. This flexible language allows the user to experiment with new ideas without being restricted to standard or ``hard-wired" protocols. X-PLOR was designed to provide user friendliness, machine portability, and highly efficient algorithms for modern computers.
The program has been implemented on nearly all modern computer types including vectorizing supercomputers. Furthermore, planning for a general parallel version of X-PLOR has begun. Since the program has been written in standard FORTRAN-77, it is usually straightforward to implement the program on a new machine. A suite of over 80 test cases, including input and output files, is provided as part of the distribution. These test cases are an integral part of X-PLOR that ensures continuing reliability and robustness of the system.