Xue-jun Zhang and Brian W. Matthews Institute of Molecular Biology, Howard Hughes Medical Institute and Department of Physics University of Oregon Eugene, Oregon 97403(A shorted version of this paper was published in J. Appl. Cryst. (1995) 28, 624-630).
EDPDB was named to reflect its original conception, namely that it should be a general purpose editor for coordinate files in the format of the Brookhaven Protein Data Bank (PDB) (Bernstein et al., 1977). The PDB format is widely accepted and is often used as an intermediate to convert coordinates of protein structures from one format to another. The Brookhaven Protein Data Bank is also the main source for protein structure coordinates. For this reason, the PDB format was chosen for use by EDPDB. However, it would not be difficult to have EDPDB accept other formats if the present PDB format was superseded by another.
As a multi-functional line mode editor, EDPDB does not require any graphics hardware. This makes EDPDB easy to implement on different computer systems.
The main feature of EDPDB is its large collection of functions, which permit selection, editing and calculation. About one-hundred commands are available in the current version of the program (V94A). None of these is conceptually complicated and many of the single functions might be performed with a relatively simple program. The combination, however, significantly reduces the amount of input/output, compared to the use of separate programs, and thereby speeds up the calculations. Furthermore, a single program with multiple functions gives the user more freedom to follow his/her own logic. In contrast to a typical database program (Morris, MacArthur, Hutchinson & Thornton, 1992) which usually uses a master file containing precalculated data, EDPDB reads the structural coordinates and calculates all the data required for the task at hand.
Another major goal in designing EDPDB was that it be general. The same program should be useable for calculations as simple as counting atoms or as complex as determining fractional solvent accessibility. The various calculations have been optimized for speed. Keyword leading, free format input and an on-line help service make EDPDB user-friendly. The construction of the command interpreter makes EDPDB programmable, thereby providing the user ways to extend the potential of the program, for example, by defining macros.
Another feature of the program is to allow the full use of symmetry operators. This makes EDPDB an especially useful tool for crystallographers.
In the following sections, the general organization of EDPDB is discussed, followed by a brief description of the available commands. These are classified into seven categories according to their functions. A few examples are included to illustrate the potential of EDPDB.
ATOM
keyword, entry number, atom name (e.g.
CA, OG1), residue type (e.g. ALA, PHE, SOL
), chain marker (blank
space or single character), residue number, coordinates (X,Y,Z),
crystallographic occupancy or weight (W
), and thermal factor (B
).
For convenience, and following the convention of other popular
crystallographic programs (e.g. FRODO; Jones, 1978), EDPDB also
defines the chain marker followed by the residue number as a
residue identification. Records can be selected by matching the
appropriate input fields with a selection criterion. Similarly,
for each atom record, EDPDB defines output fields as a displayed
text string and two real number fields (i.e. a weight and a thermal
factor). The displayed text string, which usually includes the
atom name, residue type and coordinates, can be modified by using
editing commands or updated as the result of various calculations.
Therefore, fields in the displayed text string may contain
information different from the internal fields. For example, an
atom name can be overwritten in the displayed text, but will not be
changed in the internal atom-name array, unless the modified file
is written out and reread in.
During execution, EDPDB opens buffers to store the pointers
(addresses) of the selected records. Records selected in the main
buffer are called ON
atoms. The remaining records are called OFF
atoms. Most of the editing and calculation commands effect the ON
atoms, while selection commands change the ON/OFF
status of
records.
RESET
may be abbreviated
as RESE
, but cannot be abbreviated further (e.g. RES
) because of
the ambiguity with the command RESIDUE
. The input parameters are
separated from each other by spaces or a comma (not a space
followed by a comma). At the position where a parameter is
expected, a comma may be used to indicate the default value for
that parameter, if it has been defined. In most cases the order of
the input parameters is organized so that required parameters are
input first and optional ones later. Once an input card is entered
the function is called immediately. For example, by typing
ANALYZE
, the average, minimum, maximum, range and standard
deviation of the coordinates, occupancies and B-factors of the
current ON
atoms will be listed. The order of the input cards,
therefore, will determine the behavior of EDPDB.
At the commencement of running EDPDB, two new files are
opened. Each file has the same name as the input PDB file, but
with file extensions EDP and SCR. For example, if the input PDB
file name is pdb4lzm.pdb, the newly created files will be called
pdb4lzm.edp and pdb4lzm.scr. The EDP file contains a record of
commands completed during the current execution. This file can be
used subsequently, e.g. to repeat a set of commands, or can be
modified into a macro for other similar calculations. The SCR file
contains intermediate results which may or may not be shown on the
terminal screen depending on the user's request. Usually the SCR
file is used only for storing intermediate results. At a normal
termination both the EDP and SCR files will be deleted by default,
unless an optional save is requested (e.g. using the SAVE
option in
the QUIT
command).
Most of the geometry calculations are based on the Cartesian coordinates as input from the PDB file. Some calculations, however, require additional information. For example, calculation of the area of solvent-accessible surface requires the assignment of a van der Waals radius to each of the atoms involved. An external file called acc.dat is used to input these radii. The SORT command may also require a file called pdbstd.dat which is used to specify the standard order of atoms within each residue and the labeling convention. The standard follows the normal atom order in a PDB file and the IUPAC-IUB convention (1970). It can, however, be modified for special purposes. Since EDPDB uses an event-driven strategy, this kind of additional information is not read unless it is needed by a specific function.
CELL
card. Crystallographic
symmetry operators are input in the format of the International
Tables for Crystallography. The conventions for the polar angles
(phi, psi and kappa) are that phi is the angle between the X axis and the
projection of the rotation axis on the X-Y plane; psi is the angle
between the rotation axis and the Z axis; and kappa is the rotation
angle about the rotation axis. Two different definitions of
Eulerian angles can be used in EDPDB, and are explained explicitly
in the program documentation. For all angles, the positive
direction is defined as counterclockwise when looking down
the rotation axis.
ALIAS
, can also be used to create user-defined commands which
always have higher priority than the built-in command. EDPDB is a
module-based program. This provides an open frame for new
functions (commands) to be added. Therefore the capabilities of
EDPDB can be extended at different programming levels.
In the following, we will first discuss how to start and quit EDPDB as well as how to get on-line help. Then a brief discussion and a list of command names is given for each of the seven categories. Note that some of the commands can fit into different categories, although they are listed in only one.
To start, one simply types the program name, EDPDB, followed by the file name of the PDB format coordinate file to be read. For example, if the user's PDB file is called pdb4lzm.pdb, the following command typed in a system command line (e.g. DCL/VMS) will start the EDPDB program by reading the PDB file.
$ EDPDB PDB4LZM.PDBThe input PDB format coordinate file will be opened as a read-only file and will not be modified or overwritten (unless insisted by the user under a unix system).
If EDPDB is being used interactively an on-line help utility is available to describe functions and command syntax. Examples are included in the on-line help menu to illustrate the use of the command and its relation to other commands. Typing HELP at any time during the execution of EDPDB will call the on-line help utility. Another way to get on-line help for a particular command is to type the leading keyword of the command and to end the input line with "/?" (without the quotation marks). This is convenient when the user knows the command-leading keyword but is unsure about the detailed parameters.
There are several ways to terminate EDPDB. A standard way is
via the QUIT
command. A quick way is to input control-Z
(or control-D on a unix computer, i.e. end-
of-file). The difference is that the QUIT
command will do
housekeeping before exiting from the program, while control-Z will
leave the .edp and .scr files created by the program. Saving these
files is sometimes desirable, since they contain execution history.
Selection commands define the ON/OFF
status of the records, as
necessary to prepare groups of atoms for other EDPDB functions.
These commands are followed by an argument specifying the atoms,
chains, molecules, etc., to be selected. E.g. ATOM CA
selects
all the alpha-carbon atoms. The commands shown in bold face can also
be used without an argument to show on the terminal the current
atoms, chains, etc., that are active. EDPDB selects records (i.e.
atoms) by matching any one of the PDB fields (except entry number)
with selection criteria defined by the user (see below).
Intramolecular and intermolecular distances between symmetry-
related molecules can also be used as selection criteria.
Different selection strategies can be constructed with EDPDB. For instance, two consecutive selection commands work independently and select the records which satisfy either of the selection criteria. Thus, the following commands select both the backbone atoms and the C-beta atoms.
MAIN ATOM CBA nested command can be used to perform a logical and selection. For example, the following one-lined nested command will select all polar atoms (i.e. nitrogen or oxygen) which are within a 4.0 A sphere centered at the
OH
atom of residue 24.
NAYB 4.0 24 OH FROM {ATOM O* N*}the asterisk "*" is a wild card for any character(s) in the atom name. In this selection command, the order of the criteria does not affect the result. It works the same as the following command.
ATOM O* N* FROM {NAYB 4.0 24 OH}A multiply nested command can be used for a more complicated and selection.
There are several ways to make a logical not selection. The
EXCLUDE
command followed by another selection command is a
convenient way to turn the selected records OFF
. For example, the
following two commands can be used to select records which have
B-factor between 20 and 30 (A^2).
B > 19.9999 EXCLUDE B > 30.0The first command selects all records with a thermal factor equal to or larger than 20 A^2. The second command then turns off those records with thermal factors larger than 30 A^2.
SWAP
is another
command that performs a logical not selection. In some selection
commands an EXCEPT
option is also available. For example, the
following two commands select glycine residues from molecule A
(i.e. CHAIN A
).
CHAIN A EXCLUDE RESIDUE EXCEPT GLYThe command
GROUP
defines a set of selection criteria that can
be used subsequently as a group. The following sequence
illustrates the use of the GROUP
command.
...(selection commands) GROUP TMP INITIALIZE RESIDUE ASP FROM TMPThe
GROUP
command defines the pre-selected records as a group named
TMP
. The INITIALIZE
command reinitializes the buffer used to store
the ON
atoms and the last line selects as the ON
atoms only the
Asp
residues from the TMP
group.
EDPDB can carry out a variety of structural analyses and coordinate rotation and translation operations.
Rotation and translation matrices can be determined, stored,
manipulated (e.g. inverted, multiplied, etc.) and applied to
selected atoms later. For example, the command OVERLAY
calculates
the matrix that optimizes the superposition between two sets of
coordinates (McLachlan, 1979). The command MOMENTUMINERTIA
A
determines the matrix that brings the three principal axes of
rotation of the model (i.e. the selected atoms) into coincidence
with the X,Y,Z coordinate axes. The MOVECENTER
command defines the
matrix that brings the center of mass of the current model as close
as possible to the origin (or to any user specified position)
consistent with all possible crystallographic symmetry operators.
With the RTN
command, one can determine and/or apply various
coordinate transformations. These include
(a) apply a transformation matrix read from a fileWith the calculation commands
(b) apply a given crystallographic symmetry operation
(c) apply a rotation specified in Eulerian angles (either ZY'Z" convention or ZX'Z" convention)
(d) apply a rotation specified in polar angles
(e) transform between orthogonal and non-orthogonal coordinate systems or vice versa
(f) apply a rotation about a given bond
(g) center a molecule on the origin of coordinates
(h) apply a rotation to reset a torsion angle from any arbitrary angle to a given value (e.g. for setting side-chain torsion angles to standard values)
(i) make a coordinate transformation based on a three-atom superposition (e.g. for mutating an amino acid)
(j) determine and apply the transformation that will superimpose two atoms consistent with a given rotation (e.g. for applying non-crystallographic symmetry). The two atoms might represent heavy atoms bound to two protein molecules and the rotation might be determined from a self-rotation function search.
HARKER
, EULER
and POLAR
, the
X,Y,Z input fields can contain crystallographic coordinates or
angular values rather than coordinates in the standard Cartesian
PDB framework. In such cases, the PDB format is simply used as a
vehicle to input necessary data to EDPDB.
The result of a calculation will be written to the standard
output device (e.g. the terminal if the program is being used
interactively) and/or to a scratch file (input_file_name.scr).
Some results may overwrite the field(s) of related records, e.g.
the ACCESS
command (used for solvent accessibility calculation)
will overwrite the occupancy (W
) field of each ON
atom with the
solvent-accessible area of that atom. These calculation commands
can therefore be considered as editing commands as well.
Similarly, some calculation commands can also be considered as selection commands.
EDPDB uses the Lee-Richards algorithm (Lee & Richards, 1971)
to calculate solvent-accessible area (command ACCESS
) and
McLachlan's algorithm (McLachlan, 1979) to perform least-squares
structural superposition (command OVERLAY
).
Editing commands modify the output fields, i.e. the text
strings, and occupancy or thermal factor values of selected
records. In principle, every character in the text string can be
modified. The editing commands do not change either the internal
coordinates (which may still be used for geometry calculations), or
the internal atom type, residue type (e.g. Ala
) or residue name
(e.g. A99
) (which are used for selection criteria).
For a typical PDB coordinate file, the occupancy (W)
field is
usually less informative than the coordinate and B factor fields.
Therefore, with some calculations (e.g. ACCESS
and DISTANCE),
the
W field is overwritten with the results. In other calculations
(e.g. OVERLAY
and MOMENTUMINERTIA)
the values in the W field may be
used as weights. In this case, the weight value should be defined
appropriately before performing the calculation.
Some commonly used programs create and accept non-standard
"PDB format" files in which, for example, a field may be shifted by
one or two columns. This can cause difficulties in sharing
coordinate files among different programs. The PERMUTE
command
allows inconsistencies of this sort to be easily corrected.
EDPDB also provides an easy way to inter-change labels so as
to change from one convention to another. In the following
example, the OH
atoms of residue type SOL
are renamed as
HOH
, while
any OH
atoms that might be associated with another residue type
(e.g. TYR)
are not affected.
ATOM OH FROM {RESIDUE SOL} SETA HOH
As an editor program, EDPDB can output an edited file to the
terminal or create a new file in the PDB format. The user also has
the ability to reformat the output by (1) using the editing command
PERMUTE
to rearrange the text string, and (2) using a user-defined
format in an output statement. By using the calculation command
SORT
, one can rearrange the records in a PDB file in many different
ways. The APPEND
command provides a simple way to merge blocks of
coordinates in a user-preferred sequence.
Additional PDB files including those created within the
current EDPDB execution can be accessed with the READ
command.
Peptide chains or molecules from such files can be distinguished by
using additional chain identifiers.
A combination of a selection command with a LIST
command
provides a fast way to search for particular records in a PDB file.
The following command sequence, for example, will list the solvent
molecules with thermal factors less than 10 A^2.
INITIALIZE B < 10 FROM {RESIDUE SOL} LIST
Control commands are used to change the status of either the program or the input/output files. Many commands in this category were designed to enhance the programming ability of EDPDB. It is also possible for a user to call a system command (e.g. a DCL command in VMS, or a shell command in unix )or to create a sub-process without terminating the EDPDB program.
Each command is followed by an argument that defines sets of
atoms or templates or parameters that are used in subsequent
operations. When used without an argument the command will show on
the terminal the definition, if any, that is currently in effect.
One philosophy of EDPDB is that it should be as flexible and as
general-purpose as possible. For example, the command DFABCD
is
used to define a template for the calculation of torsion angles.
The program is not, however, restricted to the standard backbone
and side-chain torsion angles. It is possible to use DFABCD to
specify any type of pseudo torsion angle, e.g. the torsion angle
formed by four sequential C-alpha atoms.
As a general purpose program, EDPDB allows the user to
overwrite the default definitions, which might be too specific in
some cases. For example the main-chain atoms are usually defined
by the default definition DFMAIN N CA C O
but this can be
replaced by the command statement DFMAIN N CA C O CB
.
The ALIAS
command allows the user to define his/her own key-
words in terms of meaningful EDPDB command(s). For example, a
user-defined keyword DIRE (using ALIAS DIRE SYSTEM WAIT
DIRECTORY
) might be used to call the VMS/DCL command DIRECTORY
.
Thus, by typing DIRE
the user can, for example, list the file
names in the current directory without terminating EDPDB.
They include comment , C , FILE , HELP , PROMPT , SETENV and SHDF .
(1) Preliminary inspection and statistical analysis of a file.
INITIALIZE ; initialize working buffer space for ON atoms ZONE ALL ; select all the atom records ZONE ; show the zone information RESIDUE ; show the number of residues for each type of residue ATOM ; show the number of atoms for each type of atom ANALYSIS ; give statistical information for X, Y, Z, W and B(see Appendix A)
(2) Backbone zeta angle calculations. The angle zeta of an amino acid residue is the pseudo torsion angle defined by connecting in sequence the atoms Cą, N, C and C-beta. For a well-refined protein structure, this angle should equal approximately +33.5o for every residue. A negative zeta for an L-amino acid residue indicates a chirality error.
DFABCD CA N C CB 1 1 1 1 ; define the template for a torsion angle calculation ; where the numbers indicated that all the atom are within the same ; residue INITIALIZE ATOM N CA C CB ; select the atoms needed for the calculation ABCD ; calculate all the torsion angles that fit the above template(3) Search for all interactions between nitrogen and oxygen (i.e. potential hydrogen bonds) within a protein.
INITIALIZE ATOM N* O* ; select nitrogen and oxygen atoms ; * indicates a wild card to include all types of N and O atoms GROUP P ; define these atoms as group P (i.e. "polar") DISTANCE P 2.0 3.5 3 ; list every polar atom pair with a distance ; between 2.0 and 3.5* and separated by at least three residues(4) Structural superposition or overlay of molecules A and B, each assumed to contain 164 residues.
INITIALIZE GROUP A FROM {MAIN A1-A164} ; define the backbone atoms of molecule A as group A GROUP B FROM {MAIN B1-B164} ; define the backbone atoms of molecule B as group B LOAD B ; select group B which contains the backbone atoms of molecule B OVERLAY A rtn.dat ; calculate the matrix that gives the optimum least-squares superposition ; of molecule B on molecule A and write the matrix to a file named ; rtn.dat INITIALIZE AXIS RTN.DAT ; analysis of the rotation-translation matrix written in the file rtn.dat CHAIN B ; select the whole of molecule B RTN FILE RTN.DAT ; apply the rotation-translation matrix of rtn.dat to the currently selected ; atoms, i.e. to the whole of molecule B
(5) Check and resequence a coordinate file according to the standard dictionary file pdbstd.dat supplied with the program.
INITIALIZE ZONE ALL SORT DFRES ; read file pdbstd.dat by default ; check the atom order, side-chain chirality and labeling SET ENTRY ; reset the entry number consistent with the new order of the records EXIT SORTED.PDB HEADER ; create a new PDB coordinate file named sorted.pdb with the old file ; headers but atoms reordered(6) Check all possible intermolecular contacts in a crystal with two molecules, A and B, each of 164 amino acid residues, per asymmetric unit.
CELL 80.0, 80.0, 50.0, 90.0, 90.0, 120.0, 6 ; input cell parameters and the alignment convention which in this case is ; #6 X//a, Y//b*, Z//(a x b*) @symmetry R32 ; input symmetry operators from the file symmetry.edp (see below) INITIALIZE GROUP A FROM {ZONE A1-A164} ; define molecule A as group A GROUP B FROM {ZONE B1-B164} ; define molecule B as group B LOAD A ; select molecule A MMIG A 3.5 ; check crystal contacts of atoms within 3.5*, between symmetry-related ; A molecules MMIG B 3.5 ; between all A molecules and all B molecules INITIALIZE LOAD B MMIG B 3.5 ; between symmetry-related B moleculesThe file symmetry.edp contains the symmetry operators for most of the commonly used space groups. Simple translations are not necessary since they are handled automatically.
; symmetry operators for space group R32 SYMMETRY X, Y, Z SYMMETRY -Y, X-Y, +Z SYMMETRY -X+Y, -X, +Z SYMMETRY Y, X, -Z SYMMETRY X-Y, -Y, -Z SYMMETRY -X, -X+Y, -Z(7) Construct a file that contains the average thermal factor, B, for each residue, where the averaging is (a) over the whole residue, (b) over the backbone atoms, and (c) over the side-chain atoms of each residue.
INITIALIZE CA ; select C-alpha atoms only BLANK ; blank the X, Y and Z fields of the C-alpha atom records ; these will be used to write the output MORE ; extend the selection to all residues which have C-alpha atoms, i.e. select all ; amino acid residues AVB X ; calculate average B for each residue ; write the result to the X field of the C-alpha atom EXCLUDE MAIN ; keep side-chain atoms only AVB Z ; calculate side-chain average B for each residue ; write the result to the Z field of the C-alpha atom ; for glycine the field is left blank INITIALIZE MAIN ; select main-chain atoms AVB Y ; calculate main-chain average B for each residue ; write the result to the Y field of the C-alpha atom INITIALIZE CA ; recall the modified C-alpha atom records WRITE AVB.LIS ; output the result to a file named avb.lis(8) Calculate the angle and the shortest distance between the axes of two alpha-helices in a protein. Assume that the helical regions include residues 115-122 and 126-134.
INITIALIZE GROUP TGT FROM {MAIN 115-121} MAIN 116-122 OVERLAY TGT V1.DAT ; the axis of helix 115-122 will be defined as the rotation axis that ; superimposes the backbone atoms of residues 115-121 on the partially ; overlapping residues 116-122 ; calculate this transformation and store in the file v1.dat INITIALIZE GROUP TGT FROM {MAIN 126-133} MAIN 127-134 OVERLAY TGT V2.DAT ; similarly, determine the transformation that will define the axis of helix ; 126-134 INITIALIZE AXIS V1.DAT V1 ; extract the vector, v1, which corresponds to the rotation axis in the ; matrix v1.dat AXIS V2.DAT V2 ; extract the vector, v2, which corresponds to the rotation axis in the ; matrix v2.dat VV V1 V2 ; calculate the angle and distance between the two axes(9) Search for candidate sites to introduce a disulfide bond by mutation. The C-beta - C-beta distance should be between 4.0-6.5 A, the C-alpha - C-beta - C-gamma angle should be larger than 80.0o, and the loop formed by the disulfide bond should, for example, be longer than 50 residues (e.g. Sowdhamini et al., 1989).
INITIALIZE DFBRG CA CB CB CA X 0 Y 0 ,,,, 4.0, 6.5, 80.0, 180.0, 0.0, 360.0 WXYZ 50 ; create a template for the search ATOM CA CB ; select the atoms needed for the search, define the search range BRIDGE ; perform the search ; list all the candidates that fit the template(10) Calculate the correlation between the solvent-accessible area (SAA) and the average thermal factor, including all residues in the protein.
INITIALIZE MORE FROM {CA} ; select all amino acid residues, i.e. the protein part of the PDB file ACCESS ; calculate the solvent-accessible area for each atom ; default van der Waals radii are assumed ; store the value in the W field AVB X ; store the average B in the X field of the C-alpha atom SUMW Y ; store the summation of SAA in the Y field of the C-alpha atom INITIALIZE CA ; select the CA atom records in which the X and Y fields store the ; average B and summation of SAA, respectively GROUP TMP CORRELATION TMP X Y ; calculate the correlation between fields X and Y(11) Calculate the solvent-accessible area (SAA) of molecule A in the presence and absence of molecule B. The difference is the solvent-accessible area of molecule A that is buried in the interface.
INITIALIZE GROUP MOLB FROM {CHAIN B} CHAIN A ACCESS MOLB ; calculate the SAA of molecule A in the presence of molecule B ACCESS ; calculate the SAA of molecule A in the absence of molecule B(12) Assume that a protein contains N-terminal and C-terminal domains, defined respectively by the amino acids 1-60 and 80-162. Assume also that the structure of this protein is determined in two different situations, A and B (e.g. in two crystal forms). Calculate the change of the interdomain hinge-bending angle between the N-terminal and C-terminal domains in the two independent protein structures, A and B.
INITIALIZE GROUP A FROM {MAIN A1-A60} MAIN B1-B60 OVERLAY A OVERLAY_N_DOMAIN.DAT ; calculate the overlay matrix between the two N-terminal domains ; starting from an arbitrary position ; store in the file overlay_n_domain.dat CHAIN B ; select the molecule B RTN FILE OVERLAY_N_DOMAIN.DAT ; superimpose molecule B on molecule A ; by applying the matrix stored in overlay_n_domain.dat which ; will superimpose the N-terminal domains INITIALIZE GROUP A FROM {MAIN A80-A162} MAIN B80-B162 OVERLAY A OVERLAY_C_DOMAIN.DAT ; now calculate the matrix that will superimpose the C-terminal domains ; starting from the position where the two N-terminal domains are ; already superimposed ; this is the desired transformation INITIALIZE AXIS OVERLAY_C_DOMAIN.DAT ; extract the rotation axis and the rotation angle from the transformation ; matrix the angle is the change of the hinge-bending angleThe above examples are by no means complete. They are intended only to illustrate the potential of EDPDB.
- it works like a line mode editor.EDPDB is available from the author who can be reached at the E-Mail address: cai-zhang@omrf.ouhsc.edu.
- it is easy to use.
- on-line help is available.
- specific structural parameters that may be required for a given task are input from simple database files, rather than coded in the program.
- the program is very versatile. It has many features that were developed for macromolecular crystallography but it also permits detailed structural analysis of a single molecule.
- one can write macros to extend its capabilities. It is programmable.
Connolly, M. L. (1983). Science 221, 709-713. Grindley, H. M., Artymiuk, P. J., Rice, D. W. & Willett, P. (1993). J. Mol. Biol. 229, 707-721.
IUPAC-IUB Commission on Biochemical Nomenclature. Abbreviations and Symbols for Description of the Conformation of Polypeptide Chains (1970). J. Mol. Biol. 52, 1-17.
Jones, T. A. (1978). J. Appl. Cryst. 11, 268-272. Laskowski, R. A., MacArthur, M. W., Moss, D. S. & Thornton, J. (1993). J. Appl. Cryst. 26, 283-291.
Lee, B. & Richards, F. M. (1971). J. Mol. Biol. 55, 379-400.
McLachlan, A. D. (1979). J. Mol. Biol. 128, 49-79.
Moras, D., Podjarny, A. D. & Thierry, J. C., Eds. (1991).
"Crystallographic Computing 5: From Chemistry to Biology", International Union of Crystallography, Oxford University Press.
Morris, A. L., MacArthur, M. W., Hutchinson, E. G. & Thornton, J. M. (1992). Prot.: Struct. Funct. Genet. 12, 345-364.
Sowdhamini, R., Srinivasan, N., Shoichet, B., Santi, D. V., Ramakrishnan, C. & Balaram, P. (1989). Prot. Engin. 3, 95-103.
(Omitted ...)