Welcome to EDPDB, version V95A!

This documentation contains the following categories.

EDPDB is a program to handle PDB (Brookhaven Protein Databank) format coordinate file(s). With EDPDB, a PDB file may work as a small database, where information like distances, angles etc. within the file can be easily obtained.

EDPDB is a command driven program. Each function in EDPDB is activated by a one-line input statement (a command or an input card). An input card starts with a keyword (ie. the name of the function) and includes parameters that may be required by the function. The leading keyword can be abbreviated as long as there is no ambiguity with other leading keywords. For example, command RESET may be abbreviated as RESE, but can not be abbreviated further (eg. RES) because of the existing command RESIDUE. The input parameters are separated from each other by function. The leading keyword can be abbreviated as long as there is no ambiguity with other leading keywords. For example, command RESET may be abbreviated as RESE, but can not be abbreviated further (eg. RES) because of the existing 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 expect, a comma may call the default value for that parameter if it exists. 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 x,y,z "coordinates", occupancy and B-factors of the current ON atoms will be listed. The order of the input cards, therefore, will determine the behavior of EDPDB.

Throughout this help documentation, in the syntax line a (...) means a list of parameters from which usually only one is needed, whereas [...] indicates that the parameters are optional.

By default, all the characters in an input statement will be converted to lower case before being interpreted, unless the environmental parameter tolower is set to off.

In an input statement, the text string within a pair of single quotation marks (ie. ' ') may be considered as a single parameter.

For more information on the general command syntax, see the command interpretation section in the glossary category, and a separate documentation titled as EDPDB: A Multi-Functional Tool for Protein Structure Analysis. (Zhang & Matthews (1995) J. Appl. Cryst.).

To report bugs, please contact

Cai X.-J. Zhang, at (chk@uoxray.uoregon.edu)

How To ....


start_edpdb

This paragraph discusses how to start EDPDB from a (VMS) DCL command line.

Syntax:
$ EDPDB [file_name_1 [mark_1]] [file_name_2 [mark_2]] [/EDPINI[=edp_file]]

Note:
1) A mark is a character string which can be used to distinguish different peptide chains. It is particularly useful when more than one PDB files are read in and the peptide chains need to be distinguished. Whenever a new chain is found, its chain name will be replaced with a new character in the character string of the mark, unless the character is an underscore `_'. In the latter case (which is the default), no substitution will be made. If all of the characters in the string have already been used, it starts from the first character of the string again. A string of mark characters of alphabetic order may be abbreviated with a hyphen, `-'. For example, a-f is equivalent to abcdef.
2) For the VMS version, the default file type of the input file is .pdb.
3) The edp_file is the file name of a macro which can be used to customize the initial configuration of EDPDB. The default file name is edpini.edp, if the qualifier /EDPINI is specified.

See also: QUIT

Examples:
1) Start EDPDB by reading a PDB file, pdb4lzm.pdb, on a VMS computer.

      $ edpdb pdb4lzm
2) Read two PDB files. One contains A, B, C and D four peptide chains, and is called abcd_1.pdb. The other contains A, B, C and D four peptide chains too, and is called abcd_2.pdb.
      $ edpdb abcd_1.pdb abcd abcd_2.pdb stuv
In this example, the peptide chains from the second PDB file will be labelled as S, T, U and V.

3) Customize EDPDB with a macro called vms.edp. (See the example in the ALIAS section).

      $ edpdb/edpini=vms.edp

A quick check

      ! Try this
      initial
      zone all
      zone 
      residue
      atom
      sort dfres
      analyze

Input multiple PDB files

1) Read in two files which have the same chain names (eg. A,B,C and D)
      read  file_a.pdb  abcd  initialize
              ; input the first file, keeping the chain names
      read  file_b.pdb  efgh
              ; input the first file, change the chain names
              ; to E,F,G and H
2) or start the program by typing
      $ edpdb file_a.pdb abcd file_b.pdb efgh
See also: READ

Save the intermediate result

1) If the result can be listed with the LIST command, WRITE command can be used to make an output file to save the result.

2) If the result is listed on the terminal with a prompt saying " return for more ... ", the result actually has a copy in a file of the same file-name as the 1st input PDB file and a file type of .scr. To save this file, one has to terminate the program using the QUIT command with the SAVE option.

3) To save other intermediate results, one may either run EDPDB in a batch job mode, or redirect the result to a file (eg. edpdb.log) using the following command.

      file log edpdb.log
See also: FILE

List the currently opened files

      file

List the header of the 1st input PDB file

      initial
      write junk.pdb header

Restart without quitting

      reset

Coordinate transformation

1) Command mode. Assume the transformation matrix has been stored in a file rtn.dat
      ! select the records on which the transformation are applied.
      ...
      rtn file rtn.dat
See also: RTN

Superimpose two structures

Overlay molecule A to molecule B, based on the least square minimization between main-chain atoms of the two molecules.
      group mola from { main from { chain a }}
      group molb from { main from { chain b }}
      initial
      load mola
      overlay molb rtn.dat
      chain a
      rtn file rtn.dat
See also: OVERLAY

Matrix manipulation

1) Copy the transformation matrix in the file rtn_a.dat to a file rtn_b.dat.
      initial
      rtn file rtn_a.dat save rtn_b.dat
2) Calculate the inverse transformation of a given one, eg. in file rtn.dat, store it in another file, say inv_rtn.dat.
      initial
      rtn file rtn.dat inve inv_rtn.dat
3) Multiply the transformation matrix in the file rtn.dat with the matrix of symmetry operator #2, store the production in rtn.dat.
      initial
      rtn symm 2 0 0 0 mult rtn.dat rtn.dat
                                
See also: RTN

Calculate solvent accessible area

An isolate protein molecule (eg. zone 1 - 164).
      initial
      zone 1 - 164
      access
See also: ACCESS

Calculate buried solvent accessible area

1) The buried solvent accessible area (SAA) of molecule A by molecule B equals the difference between the SAA of molecule A in the presence and absence of the molecule B. Note that the buried SAA of molecule A by molecule B is not necessary to equal the buried SAA of molecule B by molecule A.
      initial
      group molB from { chain B}
      chain A
      access molB
           ; get the SAA of molecule A
           ; in the presence of molecule B
      access
           ; get the SAA of molecule A
           ; in the absence of molecule B
See also: ACCESS

Calculate distance

1) List distance pairs between two groups of atoms. For example, the distances between oxygen atoms and nitrogen atoms.
      group Natm from { atom N* }
      group Oatm from { atom O* }
      initial
      load Oatm
      distance Natm 0.0 3.5 2 2000
See also: NAYB, NAYBR, MMIG and AB

Calculate angle

1) List all the C-alpha - C-beta - C-gamma angles.
	dfabc ca cb cg 0 0 0
	initial
	atom ca cb cg
	abc
2) Calculate the angle that formed by atoms from different residues, eg. the C-O-OH angle, where C and O are the carbonyl carbon and the carbonyl oxygen atoms of an amino acid residue and OH is a water molecule.
	dfbrg C O OH CA x 0 x 0  ,,,,  0.0 3.5 0.0 180.0 0.0 360.0 zwxy
		; The 1st 'x 0' indicates that the C atom (atom_w) belongs
		; to the same residue as the O atom (atom_x).
		; The 2nd 'x 0' indicates that the CA atom (atom_z) also 
		; belongs to the same residue as the O atom (atom_x).
		; The O-OH distance, the C-O-OH angle and CA-C-O-OH torsion
		; angle will be calculated.
	initialize
	atom C O OH
	bridge
See also: ABC and BRIDGE

Calculate torsional angles

1) Calculate the phipsi torsional angles
      @phipsi
      write phipsi.lis
2) Calculate the chi (I,II) angles.
      @chi
      write chi.lis
3) Calculate the zeta angles to check chirality.
      initial
      dfabcd ca n c cb
      atom ca n c cb
      abcd
      quit save
See also: ABCD command and RTN ABCD command.

Disulfide bridge geometry and prediction

1) Define a bridge of disulfide bond, and list out all the bridges.
      dfbrg cb sg sg cb x 0 y 0
      residue cys
2) Search for candidates of sites of engineered disulfide bridges. The search criterion is the following. The two residues should be 20 residues apart in the amino acid sequence. The Cb-Cb distance should be between 2.5 and 6.0 Å. One of the Ca-Cb-Cb angle should be between 80.0 and 180.0 degrees. (The Ca-Cb-Cb-Ca torsional angle is unrestricted).
      initial
      dfbrg ca cb cb ca x 0 y 0 t t t t 2.5 6.0 80 180 0 360 wxyz 20
      atom ca cb
      bridge

Hinge bending angle

Analyze the hinge bending angle between two molecules A and B, assuming that they have rigid body domains (residues 15 - 60) and (residues 80 - 160).
      initial
      group n_a from { main a15 - a60 }
      group n_b from { main b15 - b60 }
      load  n_a
      overlay n_b match_n_domain.dat
      initial
      group c_a from { main a80 - a160 }
      group c_b from { main b80 - b160 }
      load c_a
      rtn file match_n_domain.dat
      overlay c_b match_c_domain.dat
      initial
      axis match_c_domain.dat
           ; the hinge bending angle will be listed
           ; with the AXIS command.

Edit the PDB records

1) Reset the entry number

      sete
2) Split the chain name from the residue number in the input residue id.
      seti
See also: the editing category.

Standardize the PDB file

See also: SORT DFRES, SETI, SETC and PERMUTE

Sort the PDB file

1) Sort the records according to B factors
      zone all
      sort B
      list
2) Sort the records according to X coordinates
      zone all
      setw x
      sort w
      list
See also: SORT and SETW

Crystallographic symmetry

1) Input symmetry operators of space group P3(2)21 for T4 lysozyme enzyme.
      initial
      cell 61.2 61.2 96.8 90 90 120 1
      symmetry x, +y, +z
      symmetry -y, x-y, +z+2/3
      symmetry -x+y, -x, +z+1/3
      symmetry +y, x, -z
      symmetry -x, -x+y, -z+2/3
      symmetry x-y, -y, -z+1/3
2) Check the crystal packing contacts between molecules A and B.
      group mola from { chain A }
      group molb from { chain B }
      initial
      load mola
      mmig mola 4.0     ; check A-A contacts
      mmig molb 4.0     ; check A-B contacts
      initial
      load molb
      mmig molb 4.0     ; check B-B contacts
3) The solution of a molecular replacement search may put the protein molecule in an asymmetric unit which is far away from the origin. The MOVECENTER command can bring the molecule close to the origin (or any user specified asymmetric unit).
     zone all
     movecenter rtn.dat  0.0 0.0 0.0 0.5 0.5 0.5
     rtn file rtn.dat
See also: SYMMETRY, MMIG and MOVECENTER

Study a rotation function result

1) Assume that the space group is P3(2)21; the positions of the cross rotation function solution peaks are stored in a PDB format file.
	! First, input the polar angles using a PDB format file
	cell 61.2 61.2 96.8 90.0 90.0 120.0 1
		; input the cell parameters 
	@p3221
		; input the symmetry operators using a macro file
	zone all
	list	; take a look of the initial peaks
	polar to_polar 
		; standardize the angles
	list	; take a look again
	polar asymm 
		; convert the peaks to one asymmetric unit
	list	
	polar unique 3.
		; exclude redandent peaks
	list
	reset
	zone all
	polar move_to_o 1 ca
		; apply a rotation such that the first peak,
		; which is stored in the "CA" record of the residue "1",
		; will move to the origin.
	list
2) Assume that the space group is P3(2)21; the positions of the self rotation function solution peaks are stored in a PDB format file.
	! First, input the polar angles using a PDB format file
	cell 61.2 61.2 96.8 90.0 90.0 120.0 1
		; input the cell parameters 
	@p3221
		; input the symmetry operators using a macro file
	zone all
	list	; take a look of the initial peaks
	polar srf_red
		; convert the peaks to one asymmetric unit
	list	
	polar unique 3.
		; exclude redandent peaks
	list

Model mutation

1) Mutate residue at position 6 to Ile.
      initial
      zone all
      write backup.pdb   ; save the current file for safety
      @mut 6 ile         ; a VMS version
           ; to run this macro, one may need to copy the aalib.pdb
           ; to his/her current directory.
2) Set the chi-I and chi-II angles of residue 6 Ile to -60 and 170 degrees using a macro file, set_chi_ile.edp.
      @set_chi_ile  6  -60 170
where set_chi_ile.edp contains the following.
      ! set_chi_ile.edp
      initial
      side    $(p1)
      rtn abcd $(p1) n  $(p1) ca $(p1) cb  $(p1) cg1 $(p2)
      exclude atom cg2
      rtn abcd $(p1) ca $(p1) cb $(p1) cg1 $(p1) cd1 $(p3)

Fix the chirality problem

To fix a chirality problem brucely, a mirror operation has to be applied to some atoms.

1) Change the Ca position of residue 164.

      initial
      ca 164
      rtn overlay 164 N C CB 0 0 0 , ,,, ,,, inve tmp.dat
      rtn matrix  -1 0 0 0 1 0 0 0 1 0 0 0
      rtn file tmp.dat
2) Change the position of the side chain of residue 164.
      initial
      side 164
      rtn overlay 164 N CA C 0 0 0 , ,,, ,,, inve tmp.dat
      rtn matrix -1 0 0 0 1 0 0 0 1 0 0 0
      rtn file tmp.dat

Build a molecule, eg. a substrate

1) To build a molecule from scratch, See also: the exmaples in the NEWXYZ section

2) To build a molecule from pieces of fragments, see RTN OVERLAY command.


Analyze polar/eulerian angles

Convert polar angles to eulerian ones, assuming the x,y,z fields store the polar angles.
      zone all
      polar  to_euler

Selection/Deselection

Available commands: ATOM , B , CA , CHAIN , EXCLUDE , EXTRACT , GROUP , INCLUDE , INITIAL , LOAD , MAIN , MATCH , MMI , MMIR , MORE , NAYB , NAYBR , RESIDUE , SIDE , SWAP , TEXT , W , X,Y,Z and ZONE .

Selection/deselection commands define the ON/OFF status of the atom records, thereby preparing objects for other EDPDB commands or other programs. For example, EDPDB can easily be used to select atoms for some graphics utilities, which can read a PDB file as input but might be less powerful in selecting atoms. EDPDB selects records based on matching one of the PDB fields (except entry number) with a selection criterion. Three dimensional intra- or inter- molecular distances, including between symmetry related molecules, can be used as selection criteria, too.

Selection strategies of different logic, eg. logic and, logic or and logic not, can be constructed with selection commands. In particular, one has the following:

logic or -- parallel selection statements, using a series of selection command consequently.

logic and -- nested selection command (see {subcommand}).

logic not -- EXCLUDE, SWAP commands, and the EXCEPT option in ATOM and RESIDUE commands.


ATOM

Select specific types of atoms.

Function: Selection, Information

Syntax:
1) ATOM
2) ATOM atom_1 [atom_2 ... atom_16] [FROM (grp_id, {subcommand})]
3) ATOM EXCEPT atom_1 [atom_2 ... atom_16] [FROM (grp_id, {subcommand})]

Note:
1) The first form lists the atom names in the current input PDB file. The second form selects up to sixteen types of atoms. The third form selects every atom except the ones specified.
2) The specified atom names, atom_n, should be one of the input atom names.
3) ATOM is the only selection command where a wildcard (*) is accepted. RESIDUE and ATOM are the only two commands where one can use the EXCEPT option.
4) Because of the wildcard (*) as well as the use of (') for default delimiter in the command interpreter, atom names with these characters included may not be handled properly unless the wildcard or the delimiter is reset to some other character using SETENV command.

See also: SETENV and ZONE

Examples:
1) List out all the atom names. The number appearing in each pair of brackets [ ] is the number of ON atoms for the corresponding atom name.

      atom
2) Select every N, CA, C, CB atoms.
      atom n ca c cb
3) Select all atoms from a group of records (TMP), except those atoms whose names start with characters NE (eg. NE1, NE2)
      atom except ne* from tmp 

B

Select atoms which have B value greater, less than or between the given value(s), or select the (1st) single record that has the max B factor.

Function: Selection

Syntax:
1) B (<, >, <>) cutoff(s) [FROM (grp_id, {subcommand})]
2) B MAX [FROM (grp_id, {subcommand})]

See also: B and X,Y and Z

Examples:
1) Select atoms of 10.0 <= B <20.0

      b < 20.
      exclude  b < 10.
  or  
      b <> 9.999 20. 

  or
      b > 9.999 from { b < 20.3 }

CA

Select CA atoms.

Function: Selection

Syntax:
CA [FROM (grp_id, {subcommand})]

See also: DFCA and ZONE

Examples:
1) Select Ca atoms in region 1 - 50

      ca from {zone 1 - 50}
  or
      ca 1 - 50
           ; this syntax works for the CA, MAIN and SIDE 
           ; as well as the ZONE commands
           ; Do not use a syntax like
           ; ca 1 - 50 from { ... }
2) Select every amino acids
      ca      ; select ca first
      more    ; extent the selection to every residues
3) Select every O5 atoms
      dfca o5
      ca

CHAIN

Select the atoms which have residue ID starting with the given chain name.

Function: Selection, Information

Syntax:
1) CHAIN
2) CHAIN [chn_mark_1 chn_mark_2 ...] [FROM (grp_id, {subcommand})]

Note:
1) The first form lists the available chains. The numbers listed in the parentheses are the number of records selected from the corresponding chain.
2) A chain name is read in from the input PDB file. It can not be redefined, although the corresponding text string can be edited using SETC command.
3) A chain name in the residue ID can not be changed with the SETC command. Therefore the chain name in the residue ID may be different from that in the displayed text string.

See also: GROUP

Examples:
1) List all the chain names and the atom numbers in each chain

      zone all
      chain
2) Select chains A and C
      initial
      chain a c
3) Select atoms of B < 10.0 from chain A only
      chain a from { b < 10.0 }
  or       
      b < 10.0 from { chain a }

EXCLUDE

Records selected following the EXCLUDE command will be set to OFF status until an INCLUDE, INITIAL or RESET command is issued.

Function: Selection, Definition

Syntax:
1) EXCLUDE
2) EXCLUDE another_selection_command

Note:
1) The first form sets the selection switch to OFF.
2) In the second form, the OFF status effects only the selection- command which follows. The switch will be set back to whatever it was before the current command.

See also: INCLUDE, INITIAL, RESET and SHDF

Examples:
1) Turn off the CB atom.

      exclude atom CB
2) Analyze the x, y, z, w, b of main chain, side chain atoms and the whole protein.
      initial
      main
      analyze     ; analyze the main chain
      more
      analyze     ; analyze the whole protein
      exclude main
      analyze     ; analyze the side chain
3) Select the side chain atoms of all none charged residues
      zone all
      exclude     ; set the switch to OFF
      residue  asp glu   ; turn Asp Glu off
      residue  arg lys   ; turn Arg Lys off
      main        ; turn the backbone atoms off
      include     ; set the switch back to ON

EXTRACT

Select atoms (from a given GROUP) based on the matching between atoms of other two groups.

Function: Selection

Syntax:
EXTRACT grp_id1 sub_grp_id1 FROM grp_id2

Note: grp_id1 and grp_id2 are the ID of the two groups which should have the same number of atoms. The sub_grp_id1 contains a subset of atoms of grp_id1. The selected atoms will be a subset of grp_id2 which corresponds to the sub_grp_id1 of grp_id1.

See also: GROUP and MATCH

Examples:
1) In the following example, we are going to superimpose two sets of atoms from two models of the same protein molecule. One set of atoms in model A (chain A) are within a sphere of radius 8.0 Å and centered at CB atom of residue A10. The other set of atoms is the corresponding atoms in model B (chain B), but they may not fall in a sphere of radius 8.0 Å and centered at CB atom of residue B10.

      group moda from { chain a }
           ; define group moda 
      group modb from { chain b }
           ; define group modb
      group spha from { nayb  8.0 A10  cb from moda }
           ; select atoms from chain a within the sphere
      extract moda spha from modb  
           ; select corresponding atoms from chain b
      overlay spha
           ; overlay b to a
If chain A and chain B are not identical (eg. they may have different number of atoms because of mutation), the following procedure may be required.
      group ch_a from { chain a }
      group ch_b from { chain b }
      group modb from { match ch_a moda from ch_b }
           ; make sure the B model (modb) has 
           ; the same number of atoms as A model (moda).
      group spha from { nayb  8.0 A10  cb from moda }
           ; select atoms from a model (moda)
      extract moda spha from modb
           ; select corresponding atoms from b model (modb)
      overlay spha           
           ; overlay b to a

GROUP

Define a set of atoms as one group, which can be used in calculations such as DISTANCE, MMIG, OVERLAY, DIFF as well as other selection commands.

Function: Definition, Information

Syntax:
1) GROUP
2) GROUP group_id [FROM (grp_id, {subcommand})]

Note:
1) The first form will list the current non-empty group names.
2) The group_id is a character string of up to 4 characters. The group specified with the group_id will be created/overwritten to store the selected records.
3) The selection made within the subcommand will not affect the current ON atoms (the main buffer). The default selection is the ON atoms.
4) The group_id SCR is reserved for the program.
5) If the number of groups exceeds the program limit an error message will appear: some groups must be deleted before a new group can be defined.

See also: LOAD and SWAP

Examples:
1) List all the currently defined group names

      group
2) Define the current ON atoms as group A
      group a
3) Define CA atoms as group g_ca without change the current ON atom list.
      group g_ca from { ca }
4) Delete the group g_ca by defining it as an empty group.
      initial         
      group g_ca
  or
      group g_ca from { initial }

INCLUDE

Records selected following the INCLUDE command will be set to ON status until an EXCLUDE command is issued.

Function: Selection, Definition

Syntax:
1) INCLUDE
2) INCLUDE another_selection_command

Note:
1) The first form sets the selection switch to ON.
2) In the second form, the ON status effects only the selection- command which follows. The switch will be set back whatever it was before the current command.

See also: EXCLUDE, INITIAL, RESET and SHDF

Examples:
1) Set the selection switch to ON

      include
2) Turn the backbone atoms to ON
      include main

INITIAL

Set status of all atoms to OFF (ie. to empty the main buffer). Selection status is automatically switched to INCLUDE, ie. all atoms that are selected after INITIAL will be put into the main buffer.

Function: Selection, Definition

Syntax:
INITIAL

Note: INITIAL will change only the ON/OFF status (ie. pointer, or flag) of the records, but not any modification made to the records (eg. a coordinate transformation).

See also: RESET

Examples:
1) Turn all records OFF.

      initial
2) Analyze the x, y, z, W and B of the backbone and side chain atoms of zone 1 - 100.
      main from { zone 1 - 100 }
      analyze
           ; next to analyze the side chain of zone 1 - 100
      initial 
           ; the backbone atoms need to be turned OFF 
           ; before selecting the side chain atoms.
      side from { zone 1 - 100 }
      analyze

LOAD

Select a group of records which has been defined, for example, using the command GROUP.

Function: Selection

Syntax:
LOAD group_id [FROM (grp_id, {subcommand})]

Note:
A group named as SCR can be defined with some calculation commands such as DISTANCE.

See also: DISTANCE and GROUP

Examples:
1) Calculate the backbone coordinate rms deviation between molecules A, B and C, assuming they have the same number of atoms.

      group a from { main from { chain a }}
      group b from { main from { chain b }}
      group c from { main from { chain c }}
      initial
      load  a ; turn the main chain atoms of molecule A ON
      overlay b   ; get rms between A and B
      overlay c   ; get rms between A and C
      initial 
      load b  ; turn the main chain atoms of molecule B ON
      overlay c   ; get rms between B and C
2) Select atoms in molecule B which contact molecule A.
      group molA from { chain A }
      group molB from { chain B }
      initial
      load molA
      distance molB 0.0 3.5 1 2000 LOAD 
           ; the LOAD option of DISTANCE is turned on.
           ; it creates a new group SCR to store the contacted atoms;
           ; also the occupancy field of each ON atoms will be 
           ; changed to the number of its neighbor atoms.
      initial
      load SCR
           ; select the atoms 

MAIN

Select the main-chain atoms. Main-chain atoms are defined with the command DFMAIN. The program default is N, CA, C and O atoms.

Function: Selection

Syntax:
MAIN [FROM (grp_id, {subcommand})]

See also: DFMAIN and ZONE

Examples:
1) Select N CA CB C atoms

      dfmain N Ca Cb C 
      main
2) Select main chain atoms in zone 1 - 50
      main from { zone 1 - 50 }
  or
      main 1 - 50
           ; this   syntax works for the CA, MAIN and SIDE  
           ; as well as the ZONE commands
           ; Do not use a syntax like
           ; main 1- 50 from { .... } 

MATCH

Select atoms based on a matching with residues *and* atom-names of a given group.

Function: Selection

Syntax:
MATCH grp_id1 sub_grp_id1 [FROM (grp_id, {subcommand})]

Note:
1) This routine creates two sets of common atoms shared betweentwo list of records. One list, is specified by group id1, the other is specified by the FROM phrase, the default being the entire collection of input files. The matched atoms from group id1 are stored in subgroup id1, and those specified by the FROM phrase become the ON atoms. Both lists will match each other in terms of the number and order of atoms.
2) The matching is based on the order of the atoms in each list. The atomtypes of each record are compared on a residue-by-residue basis, and those that match are stored. Then matches for the next residue in each record are compared, until one of the lists are completed. The residue numbers are NOT compared, residue comparisons are determined soley by their ordering in each list.

See also: EXTRACT and GROUP

Examples:
1) The following example calculates the least square rms difference between segments 1 - 162 of model A and of model B, where model A is the wild type enzyme and model B is a mutant, eg. M6I, in which the methionine at position 6 has been substituted with a Isoleucine. In order to preform the OVERLAY calculation, one need to select two sets of records between which the records match one to one. It is assumed that the atom order in each residue is the same in both models, except for the residue 6. If it is not the case, the file needs to be standardized (See the command SORT DFRES).

      group wt  from { zone a1 - a162 }
           ; define model A as group wt
      group m6i from { zone b1 - b162 }
           ; define model B as group m6i
      initial 
      match wt wt_m from m6i            
           ; this command should be interpreted as 
           ; select records from m6i which match with wt;
           ; the records in group wt_m are 
           ; the matched atoms from model A (ie. the wild type);
           ; the selected records (ie. the ON atoms) are 
           ; the matched atoms from model B (ie. m6i).
      overlay wt_m
           ; overlay the model B to model A
2) Another way to program the above example.
      group a from { zone a1 - a162 }
      group m6i from { match a wt from {zone b1 -b162}}
           ; this command should be interpreted as 
           ; match records from group a with those of group b
           ; the records in group wt are 
           ; the matched atoms from model A (ie. the wild type);
           ; the records in group m6i are
           ; the matched atoms from model B (ie. m6i).
      initial
      load m6i
      overlay wt

MMI

Select the neighbor atoms of a given atom from symmetry related molecules. MMI (sounds strange!) stands for Molecular- Molecular-Interaction.

Function: Calculation, Selection

Syntax:
1) MMI radius [res_id [atom_name]] [FROM (grp_id, {subcommand})]
2) MMI radius CENTER x, y, z [FROM (grp_id, {subcommand})]

Note:
1) In the first format, the atom specified with res_id and atom_name serves as the search center. The default atom of the specified residue is the first atom in that residue. If there is no res_id specified, the first ON atom will serve as the search center.
2) The second form uses user specified x, y, z as the search center.
3) The W column of the selected records will be changed to the distance between the specified center atom and its neighboring atoms.
4) The symmetry operator listed in the output should be applied to the specified atom to achieve the contact. No unitary symmetry operator is included in this calculation.

See also: MMIG, MMIR, MOVECENTER, NAYB and NAYBR

Examples:
1) Select atoms that are in 4.0 Å crystal contact with Nd2 atom of residue 116.

      cell 61.2 61.2 96.8 90.0 90.0 120.0 6
           ; input the cell parameters
      @symmetry P3221
           ; input symmetry operators
      mmi 4.0 116 Nd2

MMIR

Select the neighbor atoms of a given residue from symmetry related molecules.

Function: Selection

Syntax:
MMIR radius res_id

Note:
1) Atoms in the symmetry related molecule that are within the radius of any atom in the specified residue will be selected.
2) Cell parameters and symmetry operator(s) are required for this command.

See also: MMI, MMIG, MOVECENTER and NAYBR

Examples:
1) Select atoms that are in 4.0 Å crystal contact with residue 116.

      cell 61.2 61.2 96.8 90 120 6
           ; input the cell parameters
      @symmetry p3221
           ; input symmetry operators
      mmir 4. 116 

MORE

Expand the current selection to the entire residue(s) or the entire molecule (ie. entire chain).

Function: Selection

Syntax:
1) MORE [i0 [i1]] [FROM (grp_id, {subcommand})]
2) MORE CHAIN

Note:
1) If there is any atom in the i-th residue that is currently ON, MORE command will turn every atoms in the zone from position (i+i0)th to position (i+i1)th to ON. The default i0 is 0, and the default i1 is i0.
2) MORE works in a positive way only. For example, if an atom in a residue is currently ON, MORE command will turn every atom in that residue ON, regardless of the status of the INCLUDE/EXCLUDE switch.
3) The FROM phrase in a MORE command is quite different from that in other selecting commands. In a MORE command, FROM means "expanding from", instead of "selecting from".
4) The CHAIN option will expand ON status from a single atom to the entire molecule.

Examples:
1) Select the protein molecule only, ie. all residues that contain Ca atoms.

      initial
      ca
      more
  or
      more from { ca }
2) Select all residues that contain atoms within 4.0 Å from residue 99.
      initial
      naybr 4.0 99    ; select atoms 
      more            ; expand to residues
  or
      more from { naybr 4.0 99 }
3) Select all tripeptides that have a Gly as the middle residue.
      initial
      residue Gly
      more -1 1

NAYB

Select neighboring atoms of a specified atom. (NAYB is an odd word borrowed from the program FRODO).

Function: Calculation, Selection

Syntax:
1) NAYB radius [res_id [atom_name]] [FROM (grp_id, {subcommand})]
2) NAYB radius CENTER x, y, z [FROM (grp_id, {subcommand})]

Note:
1) In the first format, the atom specified with res_id and atom_name serves as the search center. The default atom of the specified residue is the first atom in that residue. If there is no res_id specified, the first ON atom will serve as the search center.
2) No crystallographic symmetry information is required or used.

See also: AB, DISTANCE, MMI and NAYBR

Examples:
1) Select all polar atoms (ie. oxygen and nitrogen atoms) within 8.0 Å sphere from Oe1 of Glu 11.

      nayb 8.0 11 Oe1 from { atom O* N* }
2) Select all atoms that are close (eg. 6.0 Å) to the point (10.0, 20.0, 30.0).
      nayb 6.0 center 10.0 20.0 30.0

NAYBR

Select neighboring atoms of a specified residue.

Function: Calculation, Selection

Syntax:
NAYBR radius res_id [FROM (grp_id, {subcommand})]

Note:
No crystallographic symmetry information is required or used.

See also: AB, DISTANCE, MMIR and NAYB

Examples:
1) Select atoms within 4.0 Å shell from residue 11

      naybr 4.0 11
2) Select residues that have atoms within 4.0 Å shell from residue 11.
      initial
      naybr 4.0 11 
      more
  or
      more from { naybr 4.0 11 }

RESIDUE

Select specific type(s) of residues.

Function: Selection, Information

Syntax:
1) RESIDUE
2) RESIDUE res_type1 [res_type2 ... res_type16] [FROM (grp_id, {subcommand})]
3) RESIDUE EXCEPT res_type1 [res_type2 ... res_type16] [FROM (grp_id, {subcommand})]

Note:
1) The first form shows a list of residue types. The number enclosed in the brackets are the numbers of selected residues for every residue types.
2) RESIDUE and ATOM are the only commands where EXCEPT keyword can be used.

See also: ATOM and ZONE

Examples:
1) List out all the residue types, and count the number of each type of residue.

      zone all
      residue
2) Select alanine residues.
      residue ala
3) Select all amino acid residues (ie. the residues that have Ca atoms) that have side chain atoms beyond the CB atom.
      initial
      ca          ; select Ca atoms
      more        ; extend to amino acid residues
      group prt   ; define them as group PRT 
      initial
      residue except Ala Gly from prt       
  or
      initial
      more from { ca }
      exclude residue ala gly

SIDE

Select the non-main-chain atoms.

Function: Selection

Syntax:
SIDE [FROM (grp_id, {subcommand})]

Note:
1) The main chain atoms are defined with DFMAIN command.
2) Non main chain atoms often include solvent molecules.

See also: CA, DFMAIN, MAIN and ZONE

Examples:
1) Select side chain atoms in zone 1 - 50

      side from { zone 1 - 50 }
  or
      side 1 - 50
           ; this syntax works for the CA, MAIN and SIDE
           ; as well as the ZONE commands 
           ; Do not use a  syntax like 
           ; side 1 - 50 from { ... }
2) Select side chain atoms, including Ca atoms, of all Trp residues
      dfmain n c o
      side from { residue trp }

SWAP

Set ON atoms to OFF and vice versa or switch the ON atoms with those in a given group.

Function: Selection

Syntax:
1) SWAP
2) SWAP group_id

Note:
1) In the first form, all the ON records will be switched to OFF, and vice verse. By definition, the two sets of records have no overlap.
2) In the second form, all the records in the specified group (if there is any) will be turned ON; and the specified group will be redefined as the previous ON records (if there is any). A previous ON record will be turned OFF if it was not included in the specified group previously. An overlap between the set of the ON records and the set of the grouped records is allowed.

See also: SORT

Examples:
1) Select all atoms

      initial
      swap
2) Select all non-protein atoms
      initial
      ca
      more
      swap
3) Calculate the rotation-translation matrix of overlaying molecule A to molecule B and that of overlaying molecule B to molecule A.
      initial
      group tgt from { ca from { chain b}}
      ca from { chain a }
      overlay tgt a_to_b.dat
              ; calculate matrix a_to_b
      swap tgt
      overlay tgt b_to_a.dat
              ; calculate matrix b_to_a

TEXT

Select records which contains a given text-string.

Function: Selection

Syntax:
TEXT text_string [t1, t2] [FROM (grp_id, {sub-command})]

Note:
t1 and t2 specify the column number in the displayed text string between which the given string will be searched. The default is to search the entire displayed text string.

See also: PERMUTE and SETT UPDATE

Examples 1) select all the records that contain 12.345.

         text 12.345
2) select all the records that contain a in the chain mark column.
         text ' a ' 14 16
3) select all the records that contain both cb and arg.
         text cb from {text arg}

W

Select atoms which have W value (weight or occupancy) greater, less than or between the given value(s).

Function: Selection

Syntax:
W (<, >, <>) cutoff(s) [FROM (grp_id, {subcommand})]

See also: B, X,Y,Z and ZONE

Examples:
1) Select atoms that have W smaller than 1.0

      W < 1.0
2) Select solvent exposed atoms (eg. those atoms of solvent accessible area (SAA) larger than 5.0 Ų).
      initial
      zone 1 - 162
           ; assume the protein molecule contains zone 1 - 162
      access      
           ; calculate SAA, overwrite the W field with SAA
      exclude W < 5.0
           ; exclude the atoms with less than 5.0 Ų SAA.

X

Select atoms which have X values (in the displayed text) greater, less than or between the given value(s).

Function: Selection

Syntax:
X (<, >, <>) cutoff(s) [FROM (grp_id, {subcommand})]

See also: B and W

Examples:
1) Select atoms of X larger than 0.0

      x > 0.0 
2) Select atoms of -10.0 < x < 10.0
      initial
      x <> -10.0 10.0

ZONE

Select residue zone(s) or show the zones

Function: Selection, Information

Syntax:
1) ZONE
2) ZONE res_id1 [res_id2 ... res_id16] [FROM (grp_id, {subcommand})]

Note:
1) The first form shows the zone information. The number enclosed in the brackets is the number of currently selected records in the corresponding zone.
2) The res_idn can be a simple residue_id, a relative residue_id or a complex residue_id,or a range. This provides flexibility for writing macros.

a) A simple residue_id is a chain name (which can be a blank) immediately followed by the residue number. The simple res_id will be used as the register-zero for the next relative res_id if there is one.
b) A relative residue_id is a character `+' followed by an integer. It represents a residue separated from the register-zero by the given integer number of residues. The initial register- zero is the position before the first residue.
c) A complex residue_id is a chain name immediately followed by a relative residue_id. An underscore can be used for a chain which have a blank chain name. The corresponding residue_id is the one represented with the same text string but without the `+', and the register is adjusted so that the selected residue is the consistent with the relative residue_id in the text string.
d) A range contains two residue Ids separated with a hyphen `- ', or ` TO '.
3) A keyword first stands for the first residue, and a keyword last strands for the last residue. A keyword ALL is a shortcut of first - last.

See also: GROUP and {subcommand}

Examples:
1) Select all atoms

      zone all
           ; In this syntax, the keyword all means  
           ; every records
2) List the zone information
      zone all
      zone    ; list the number of selected atoms in each zone
3) Select residues 1 and 3 in chain A, and the range from residues 5 to 10 in chain B.
      zone A1 A3  B5 - B10
4) Select residues from A10 to A21
      zone A10 - +11
           ; where A10 is a simple residue_id
           ; and +11 is a relative residue_id with A10 as 
           ; the register-zero.
  or 
      zone a+10 - +21
           ; where a+10 is a complex residue_id for A10
           ; and +21 is a relative residue_id with A10 as 
           ; the register 10.
           ; 
5) A similar syntax is also used for the zone information of the FROM phrase. For example, to select CB atom zone 1 - 50, one has:
      atom CB from 1 to 50
  or
      atom CB from { zone 1 - 50 }

Calculation

Available commands: AB , ABC , ABCD , ACCESS , ANALYZE , AVB , AXIS , BRIDGE , DIFF , DISTANCE , EULER , HARKER , CLIQUE , CLOSER , CORRELATION , JIGGLE , MMIG , MOMENTINERTIA , MOVECENTER , NEWXYZ , OVERLAY , PLANAR , POLAR , RATIO , RMSW , RTN , SHAPE , SORT , SUMW , VECTOR , VOLUME ,

EDPDB performs various structural analyses and coordinate rotation-translation operations.

The commands MMIG, MOVECENTER, RTN, HARKER will apply crystallographic symmetry operators on the selected atoms. The commands ANALYZE, OVERLAY, MOMENTINERTIA, MOVECETER, RTN, AXIS can be used to create, apply and analyze a rotation-translation or other coordinate transformation.

The calculation commands HARKER, EULER and POLAR reference the xyz coordinate as non-Cartesian. In these cases, the PDB format is nothing more than a format to input data to EDPDB.

The result of a calculation will be written to the standard output device (eg. the terminal in an interactive process) and/or to a scratch file (file_name.scr). Some result may overwrite the field(s) of related records, eg. ACCESS command will overwrite the W field of each ON atom with the solvent accessible area of that atom. Therefore, these calculation commands can be considered as editing commands as well.

Similarly, some calculation commands can also be considered as selection commands.


AB

Calculate the distance of every DIST pair defined by DFAB.

Function: Calculation, Selection, Editing

Syntax:
AB [(A, B) [(X, Y, Z)]]

Note:
1) If A or B is specified, the corresponding atoms, which satisfy the bond criterion defined with DFAB, will be selected and stored in (ie. overwrite) the group SCR.
2) Furthermore, if the X, Y or Z option is used, the corresponding field in the displayed text string will be overwritten with the A- B distance.

See also: ABC, ABCD, DFAB and LOAD

Examples:
1) Calculate the N-CA bonds in amino acid residues

      dfab n ca
      atom n ca
      ab
2) Calculate the CA-CA bonds between successive residues.
      dfab ca 0 1
      ca
      ab
3) List all the CB atoms which are within 3.0 Å from the carbonyl oxygen of the same residue.
      initial
      dfab cb o  ,,,,  0.0 3.0
      atom cb o
      ab a
      initial
      load scr
      list
4) Make a list of N-Ca, Ca-Cb, Ca-C distances, and store them in the x, y, z fields respectively.
      atom ca cb n c
      dfab n ca
      ab b x  ; store N-Ca to the x field of Ca
      dfab ca cb
      ab a y  ; store Ca-Cb to the y field of Ca
      dfab ca c
      ab a z      ; store Ca-C to the z field of Ca
      initial
      load scr
      list

ABC

Calculate angles using the angle group defined with the command DFABC.

Function: Calculation, Selection, Editing

Syntax:
ABC [(A, B, C) [(X, Y, Z)]]

Note:
1) If A, B or C is specified, the corresponding atoms which satisfy the angle criterion defined with DFABC will be selected and stored in (ie. overwrite) the group SCR.
2) Furthermore, if the X, Y or Z option is used, the corresponding field in the displayed text string will be overwritten with the A- B-C angle.

See also: AB, ABCD, DFABC and LOAD

Examples:
1) Calculate the N-CA-C angles in amino acid residues

      dfabc n ca c
      atom  n ca c
      abc
2) Calculate the CA-CA-CA angles in successive residues.
      dfabc ca 1 2 3
      ca
      abc
3) Calculate a hydrogen bond angle formed with C(residue 10) - O(residue 10) - HOH (solvent 200).
      dfabc c o hoh 10 10 200
      atom c o hoh from { zone 10 200 }
      abc

ABCD

Calculate torsion angles using the torsion angle group defined with the command DFABCD.

Function: Calculation, Selection, Editing

Syntax:
ABCD [(A, B, C, D}, [(X, Y, Z)]]

Note:
1) If A,B,C or D is specified, the corresponding atoms which satisfy the angle criterion defined with DFABCD will be selected and stored in (ie. overwrite) the group SCR.
2) Furthermore, if x,y or z option is used, the corresponding field in the displayed text string will be overwritten with the A-B-C- D torsion angle.

See also: AB, ABC, DFABCD and LOAD

Examples:
1) Calculate the N-CA-C-N (psi) angles in the peptide.

      dfabcd n ca c n 0 0 0 1
      atom   n ca c
      abcd
2) Calculate the CA-CA-CA-CA torsion angles in the peptide.
      dfabcd ca ca ca ca 1 2 3 4
      ca
      abcd
3) Check the chirality of each amino acid residue
      initial
      dfabcd ca n c cb
           ; define zeta angle
      atom ca n c cb
      abcd
           ; the zeta angle should be about 33.5 degrees.
4) List amino acid residues which have the alpha conformation, ie. -90.0 < phi < 0. and -90.0 < psi < 0.0 .
      ca
      blank
           ; erase the displayed text in ca records
      dfabcd c n ca c 0 1 1 1 f f t f -90. 0.0
           ; define phi torsion angle,
           ; limited between -90.0 and 0.0 degrees
      abcd c x
           ; store the torsion angle in x field of the third atom (ca)
      initial
      load scr
           ; select only the ca atoms of residues of
           ; -90.0 < phi < 0.0
      Dfabcd n ca c n 0 0 0 1 f t f f -90.0 0.0
           ; define psi torsion angle,
           ; limited between -90.0 and 0.0 degrees
      Abcd b y
           ; store the torsion angle in y field
           ; of the second atom (ca)
      initial
      load scr
           ; select only the ca atoms of residues
           ; that satisfy the double selection criteria
      list
           ; note that the x and y field are filled with
           ; phi and psi angles, and the z field is blank.

ACCESS

Calculate the solvent accessible area of each ON atom in the presence of other specified atoms (Ref. Lee & Richards, 1971).

Function: Calculation, Editing

Syntax:
ACCESS [grp_id] [r_probe] [zstep] [ISOLATED] [file_name]

Note:
1) grp_id is a group ID defined with command GROUP. If it is not specified, no background atoms will be considered. In other words, the default background is an empty group.
2) r_probe is the probe radius. The default is 1.4 Å.
3) zstep is the integration step size along z direction. The default is 0.2 Å .
4) If the option ISOLATED is used, the solvent accessible area of each ON atom will be evaluated in a context free of other ON atoms.
5) A database file in the current directory or in the default directory (ie. edp_data: for VMS, and edp_data/ for unix) is required to define VDW radii. A file in the current directory has higher priority than the file in the default directory. The default file name is the one previously specified, initially acc.dat. The acc.dat file can be used as a template to create user specific data files.
6) After the calculation, the occupancy of each ON atom will be replaced by the accessible area. If there is only one atom in the ON atom buffer, a list of accessible area vs. Z-section will be output in a Z-increasing order.

See also: FILE, SHAPE, SUMW and VOLUME

Examples:
1) Calculate the solvent accessible area (SAA) of an isolated residue, eg. residue 99.

      initial
      zone 99
      access
2) Calculate the SAA of molecule A (ie. chain A ) in the presence of molecule B (ie. chain B).
      initial
      group molB from { chain B}
      chain A
      access molB 1.4 0.2
3) Calculate the SAA of all the crystallographical located solvent molecule (residue type = SOL) to the bulk water, within the context of the protein molecule (say, zone 1 - 162), using a data file called my_acc.dat to assigning the Van de Waals radii. In this calculation, each solvent molecule should be calculated independently, without considering other solvent molecules. The individual SAA is stored in the W field of each ON atom.
      initial
      group prt from { zone 1 - 162 }
      residue sol
      access prt 1.4 0.2 isolated my_acc.dat

ANALYZE

Calculate the average, min., max., max-min, and sigma or rms of the displayed X,Y,Z coordinates, Occupancy and B values. The displayed XYZ are the coordinate fields shown on the screen with the LIST command that may be different from those stored in the x,y,z arrays for geometry calculations.

Function: Calculation

Syntax:
ANALYZE [ANGLE]

Note:
1) The definitions of sigma and rms are the following.

sigma(R) = sqrt(av((X-av(X))²+(Y-av(Y))²+(Z-av(Z))²))
sigma(B) = sqrt(av((B-av(B))²))
rms(R) = sqrt(av(X²+Y²+Z²))
rms(W) = sqrt(av(W²))
where av() stands for average, and sqrt() stands for square root.
2) If the ANGLE option is chosen, the x,y,z,w and b values will be considered as angles in degrees. All the angles are first converted into the region between -180 and 180 degrees before the statistics is done. The statistics for each field is done by shifting a 360 degree window to find the minimum sigma, so that eg. the average of -179.0 and 179.0 degrees would be 180.0 degrees, not 0.0 degree. (This option has bugs!)

See also: AVB, MOMENTINERTIA, RMSW and SUMW

Examples:
1) Calculate the statistics of backbone atoms

      Main
      Analyze
2) Count number of atoms of solvent molecules
      Residue SOL
      Analyze

AVB

Average the B value of the ON atoms over each residue, and overwrite the X, Y, Z or W fields of the CA atom with the average B.

Function: Calculation, Editing

Syntax:
AVB (X, Y, Z, W}

See also: ANALYZE, RMSW and SUMW

Examples:
1) In the following example, we will calculate the average B factor of each amino acid residue, of its main chain atoms and of its side chain atoms. The result will be stored in the x, y, z fields of the corresponding Ca record.

      Initial
      Ca
      Blank       ; clean the Ca x,y,z fields.
           ; This is particularly for the Gly residue which
           ; does not have side chain atoms
      Main
      Avb  y      ; store the main chain average B in the y column
      More
      Avb  x      ; store the residue average B in the x column
      Exclude Main
      Avb  z  ; store the side chain average B in the z column
      initial
      Ca
      List        ; display the statistic results
2) Select residues that have an average B larger than 40.0 A².
      more from { Ca }
           ; select the amino acid residues
      Avb w
           ; store the average B in the W column of Ca atom
      Initial
      W > 40.0 from { Ca }
           ; select the Ca atoms of W > 40.0
      More
           ; Expand the selection to residues

AXIS

Read a matrix file (eg. rtn.dat created with the command RTN), analyze the rotation translation of the matrix. Then, replace the W field of each ON atoms with the distance from the atom to the axis.

Function: calculaiton

Syntax:
AXIS file_name [vector_id, [axis_id]]

Note:
1) A matrix file is required to input the matrix to be analyzed.
2) If a vector_id is specified rotation axis will be stored as the vector. The vector will start at the point listed in the output of the AXIS command (ie. the point that the screw axis passes through). If specified, the vector may start from the y-z, z-x or x-y planes; the corresponding axis_id would be X,Y and Z.

See also: RTN and VECTOR

Examples:
1) Analyze the rotation-translation matrix in the file rtn.dat which is the default file name.

      axis rtn.dat
See also: the example on how to calculate a Hinge bending angle.


BRIDGE

Calculate the distance X-Y, the angle W-X-Y and the torsion angle W-X-Y-Z defined with the command DFBRG. This may be useful for studying a structural geometry between two atom groups (ie. the X and Y groups) which may be close in 3D space but not in the amino acid sequence.

Function: Calculation, Selection

Syntax:
BRIDGE [(W, X, Y, Z)]

Note:
The optional atom_id W, X, Y or Z, determines which atom in the bridge group is going to be stored in the SCR group.

See also: AB, ABC, ABCD and DFBRG

Examples:
1) Search for candidates of sites of engineered disulfide bridges. The search criterion is the following. The two residues should be 20 residues apart in the amino acid sequence. The Cb-Cb distance should be between 2.5 and 6.0 Å. One of the Ca-Cb-Cb angle should be between 80.0 and 180.0 degrees. (The Ca-Cb-Cb-Ca torsional angle is unrestricted).

      dfbrg ca cb cb ca x 0 y 0 t t t t 2.5 6.0 80 180 0 360 wxyz 20
      initial
      atom ca cb
      bridge

DIFF

Calculate the difference between the displayed (x, y, z, w, b) (multiplied by a scale factor) of the ON atoms and that of a given group. The difference is defined as
           value(group_atom) - value(ON_atom)*scale. 
The result is stored in the text string of the ON atoms. If an optional RMS is chosen, distance between the atom pair will be calculated and stored in the W column of the ON atom.

Syntax:
DIFF group_id [(SCALE [scale], RMS)]

Note:
1) The number of the ON atoms should be equal to the number of atoms in the specified group.
2) The default scale is 1.0.
3) Two consecutive DIFF operations, with default SCALE option, make the values of the ON records unchanged.

See also: ANALYZE and RATIO

Examples:
1) Calculate the coordinate shift between two sets of coordinates of the same molecule, say chains A and B.

      group moda from { chain a }
      group modb from { chain b }
      initial
      load moda
      diff modb rms
      analyze
2) Assume that two molecules A and B contact to each other in the crystal structure. List the buried solvent accessible area (SAA) of each atoms of molecule A.
      group mola from { chain a }
      group molb from { chain b }
      initial 
      load mola
      access 
           ; calculate the SAA of an isolated molecule A.
      write mola_acc.pdb
      close
      read  mola_acc.pdb c
      group tmp from { chain c }
      access molb
           ; calculate the SAA of molecule A 
           ; in the presence of molecule B
      diff tmp
           ; the W field will be the value of the SAA
           ; of molecule A buried by molecule B.

DISTANCE

Calculate the distances between the ON atoms and atoms of a given group.

Function: Calculation, Selection

Syntax:
DISTANCE group_id dmin dmax skip_# [max_output_#] [(LOAD, PREKIN [file_name])] Note:
1) The group_id specifies a group of records; the distance between this group and the ON atoms will be calculated.
2) The dmin is the minimum distance criteria (0.0 < dmin), and the dmax is the maximum distance criteria (dmin < dmax).
3) The skip_# is the smallest residue number between two residues in the input-residue-sequence that will be included in the calculation ( 0 <= skip_# ). For example, skip_# = 4 indicates that only the atom pair which is 4 or more residues apart will be searched.
4) The max_output_# is the maximum number of output lines for the calculation. It is designed to prevent an unexpected long calculation. The default is the maximum number of atoms that the program allows.
5) If the LOAD option is used, the atoms in the group satisfying the distance criteria will be stored in the SCR group.
6) The W field of each ON atom will be changed to the number of its neighbors counted in this calculation.
7) If the selection switch is currently set to OFF (ie. an EXCLUDE command is used), the atoms in the specified group that satisfy the distance criterion will be turned OFF during the calculation.
8) The PREKIN option will create a PREKIN format file, which can be display with the PREKIN program (ref. the journal protein Science). The default PREKIN file name is the file name of the first input PDB file with file type .kin.

See also: AB, MMIG and NAYB

Examples:
1) Calculate 4.0 Å distance pairs between two zones, say zone 1 - 60 and zone 80 - 160.

      group tmp from { zone 80 - 160 }
      initial 
      zone 1 - 60
      distance tmp 0.0 4.0 0 2000
2) Select atoms which involve in the contact between zone 1 - 60 and zone 80 - 160.
      group tmp from { zone 1 - 60 }
      initial
      zone 80 - 160
      distance tmp 0.0 4.0 0 2000 load
      exclude w < 1.0
           ; keep contacting atoms in zone 80 - 160
      load scr
           ; select contacting atoms in zone 1 - 60
3) Assume there are two sets of water molecules (a1 - a100, b1 - b100), and they partially overlap. The following command will select unique water molecules only.
      initial
      zone a1 - a100 b1 - b100
      group wtr
      exclude distance wtr 0.0 0.5 1 200
           ; the duplicated water molecules will be turned OFF,
           ; only the first one in each cluster will be kept as ON.

EULER

Assuming the xyz are Eulerian angles (z,y',z"), the EULER command calculates the symmetry equivalent angles, and expresses them in either Eulerian or polar system. It is useful for understanding the rotation function solutions.

Function: Calculation

Syntax:
EULER TO_EULER
EULER TO_POLAR
EULER SYMMETRY symm_#
EULER MOVE_TO_O res_id, atom_name
EULER ASYMM [e1, e2, e3]

Note:
1) TO_EULER option converts the (z, y', z") angle into the standard range, ie. (-180.0 < z < 180.0, 0.0 < y' < 180.0, - 180.0 < z" < 180.0) .
2) TO_POLAR option converts (z, y', z") angle into polar angle. 3) If SYMMETRY option is used, the symm_# symmetry operator will be applied to the Eulerian angle before the standardization. Symmetry information is required for this operation.
4) MOVE_TO_O option applies the inverse rotation of the specified record to every ON records.
5) With ASYMM, the eulerian angles stored in the ON records will be converted to their symmetry mates which have the smallest rotation angles from the rotation specified by the eulerian angles (e1, e2, e3).

See also: ANALYZE, POLAR and SYMMETRY

Examples:
1) Convert the eulerian angles in the ON records to the standard range.

      euler to_euler
2) Convert the eulerian angles in the ON records to POLAR angles.
      euler to_polar
3) Convert the eulerian angles to one asymmetric unit.
      ... (input cell parameters)
      ... (input symmetry information)
      initial
      zone all
      euler asymm 0 0 0
4) Convert the eulerian angles in the ON records to their fourth symmetry mates.
      euler symmetry 4
5) Assume one has a set of rotation function peaks. If one of the peak (e.g. stored in residue 1, atom CA) was applied, where would the other peaks be?
      euler move_to_o 1 ca
      list

HARKER

Calculate the positions of Harker peaks, assuming the position of the atom(s) in real space is given by the records of the first (two) ON atom(s) in gridding or fractional coordinates. It is useful for checking heavy atom sites in MIR.

Function: Calculation

Syntax:
HARKER [grid_a, grid_b, grid_c] [symm_#1 [symm_#2]] [CROSS]

Note:
1) The grid_x is the grid number along the corresponding cell edge. The default is (1.0, 1.0, 1.0), ie. the coordinates are assumed to be fractional.
2) Symmetry information is required for this calculation. The symm_#1 and symm_#2 specify the Harker peak which are related by the two symmetry operators. The default symm_# goes through all of the symmetry operators.
3) If the CROSS option is specified, the position of cross peaks between the 1st and the 2nd atoms are calculated.

See also: SYMMETRY

Examples:
1) Assuming the coordinates in the selected record (zone 1) are fractional, calculate all the positions of its Harker peaks in fractional coordinates.

      cell 61.2 61.2 96.8 90.0 90.0 120. 1
      @symmetry p3221  ; for example
      initial
      zone 1 
      harker 1 1 1
2) The same assumption as above, calculate the position of the Harker peak between symmetry operators number 2 and number 5
      harker 1 1 1 2 5
3) Assuming the coordinates in the two selected records (zone 1 2) are in (100, 100, 100) gridding coordinates, calculate all the positions of their cross peaks with the same gridding.
      initial
      zone 1 2
      harker 100 100 100 , , cross

CLIQUE

Find matches between subsets of the ON atoms and subsets of atoms in a given group.

Function: Calculation

Syntax:
CLIQUE group_id min_clique rms_cutoff eps max_#_cliques

Note:
1) The min_clique is the minimum number of atomic matches for a clique to be listed. The rms_cutoff sets restriction of the rms coordinate difference for a clique to be listed. The eps sets criterion for a pair of distances to be considered as similar. The max_#_cliques sets limit to the output list. Only will the first few cliques be listed.
2) For a pair of atoms to match, the first characters of their atom name must be the same.
3) This calculation requires large arrays. To solve a real problem, the array dimensions in the subroutine mcs_atm may need to be modified.

Reference: H.M. Grindley et.al. J. Mol. Biol. (1993), 229, 707-721.

See also: BRIDGE and OVERLAY

Examples:
1) To find a similar residue arrangement to the Ser-His-Asp catalytic triangle.

      initial
      atom oh            from a1 ;a1 defined as the Ser
      atom nd1 ne2       from a2 ;a2 defined as the His
      atom od1 od2       from a3 ;a3 defined as the Asp
      group tri
      initial
      side from { residue ser his asp }
      clique tri 3 0.5 0.5 20
In the above example, cliques of at least 3 pairs of atomic matches are searched. The rms coordinate difference should be less than 0.5 Å and difference of bond length should be less than 0.5 Å too. The top 20 cliques will be listed.

CLOSER

Given two groups of atoms, CLOSER classifies the ON atoms according to the shortest distance to the atoms in each group.

Function: Calculation, Selection, Editing

Syntax:
CLOSER grp_id1 grp_id2 dmax

Note:
1) The grp_id1, and grp_id2 specify two groups. The two groups should not overlap with each other.
2) The dmax is the maximum distance criterion. Only the atoms that are within dmax distance from the first group will be considered in the calculation.
3) The occupancy of the ON atoms will be change in the following way. If the atom is closer to the first group than to the second group, its W column is set to the shortest distance. Otherwise, it is set to 999.0.
4) No crystallographic symmetry information is considered in this calculation.

See also: DISTANCE and MMIG

Examples:
1) For the protein molecule which has interdomain hinge bending motion, we need to assign the solvent molecules to different domains in order to superimpose the solvent molecules from different models. In the following, assume that the two domains are zone 1 - 75 and zone 76 - 162. The solvent molecules closer to the zone 1 - 75 will be selected.

      group n_dm from { zone 1 - 75 }
      group c_dm from { zone 76 - 162 }
      initial
      residue sol
      closer n_dm c_dm 3.5
      exclude w > 3.5

CORRELATION

Calculate the correlation between a given column of the ON atoms and a given column of a group.

Function: Calculation, Editing

Syntax:
CORRELATION grp_id (X,Y,Z,W,B) (X,Y,Z,W,B) [(X,Y,Z,W,B)]

Note:
1) The correlation between two sets of data, eg. W and B, is defined as

sum((w-av(w))*(b-av(b)) /
sqrt(sum((w-av(w))²)*sum((b-av(b))²)),
where sum() stands for a summation, av() stands for an average, and sqrt() stands for a square root.
2) The second and the third parameters specify the data columns of the ON atoms and the group, between which a correlation will be calculated.
3) As an optional result of this calculation, the last specified field, X, Y or Z, in the text string of the ON atom will be overwritten with the discrepancy W - (c1*B + c2), where c1 and c2 are determined by minimizing
sum((W - (c1*B + c2))²).

See also: DIFF and RATIO

Examples:
1) Calculate the correlation between the distance of each protein atoms to a hinge bending axis and the B factor. Assume that the hinge bending axis is stored as a matrix in a file called hinge.dat (see the examples of AXIS).

      initial 
      more from { ca }
      group tmp
      axis hinge.dat
           ; W column is replaced with the distance
           ; from each atom to the axis.
      correlation tmp w b 

JIGGLE

Introduce random errors to X, Y, Z, W or B values of the ON atoms, changing both the coordinates and the displayed text string.

Function: Calculation, Editing

Syntax:
JIGGLE (X, Y, Z, W, B) limit [shift]

Note:
1) X, Y, Z, W or B is the field to be jiggled. The limit is the jiggling amplitude. The shift is the amount of extra shift added to the value; the default shift is 0.0. As the result of this calculation, one has
new_value = old_value + random * limit + shift
where the random is a random number between -1.0 and 1.0.

Examples:
1) Introduce 1.5 Å random rms difference in the 3D coordinates of the ON atoms.

      jiggle x 1.5
      jiggle y 1.5
      jiggle z 1.5
2) Increase the B factor by 10.0.
      jiggle b 0.0 10.0

MMIG

Calculate crystal packing contacts between the ON atoms and atoms in a given group. MMIG stands for Molecular-Molecular- Interaction (between) Groups (of atoms).

Function: Calculation, Selection, Output

Syntax:
MMIG group_id distance [(LOAD, MOVE, MOVE_ALL)] [inner_dist_cutoff]

Note:
1) The group_id specifies a group. This group of atoms are fixed, while the ON atoms moves according to the crystallographic symmetry, during the crystal packing contacts are searched.
2) distance is the distance criterion. Any pair of atoms, from the two groups, of a distance shorter than distance will be listed. To prevent unnecessary calculation, the criterion is limited so that 0.0 < dist < 7.0 Å. (If a distance larger than 7.0 Å is desirable, add a plus sign before the distance, eg. +8.0).
3) If the LOAD option is used, the atoms in the specified group that satisfy the distance criterion will be stored in the group named SCR.
4) If the MOVE option is used, the displayed x, y, z of the ON atoms will be replaced by the new coordinate at the position where the shortest distance is found. This option is useful to bring a water molecule close to the protein molecule. With this option, the W value of each ON atom will be replaced by the shortest distance.
5) Option MOVE_ALL is similar to option MOVE, except new PDB records will be output to an opened PDB file for every positions of each ON atom that satisfy the distance criterion.
6) The inner_dist_cutoff is the minimum distance criterion. The default is 0.0.
7) The symmetry operator listed as the calculation result should be applied to the ON atoms to achieve the contacts.
8) If any ON atom is also included in the specified group, the calculation will not be performed for the unitary symmetry operator.

See also: DISTANCE, LOAD, MMI, MOVECENTER, RTN and SYMMETRY

Examples:
1) Calculate the crystal contacts between the molecule A and molecule B.

      group mola from { chain A }
      group molb from { chain B }
      initial
      load mola
      mmig mola 4.0      ; check A-A contacts 
      mmig molb 4.0      ; check A-B contacts
      initial
      load molb
      mmig molb 4.0      ; check B-B contacts
2) Move all the solvent molecules close to the protein molecule.
      group prt from { more from { ca }}
      initial 
      residue sol
      mmig prt 4.0 move
      write moved_sol.pdb

MOMENTINERTIA

Calculate the moments of inertia (in dalton Ų) of the ON atoms about the x, y and z axes, the principle axes of the inertia tensor, the radii of gyration (in Šunit) and the matrix which can take the principle axes to coincide with the x,y and z axes.

Function: Calculation

Syntax:
MOMENTINERTIA [file_name] [vector_id1] [vector_id2], [vector_id3]

Note:
1) The value of the W field in each record will be used as the mass for the corresponding atom in this calculation.
2) The current moments of inertia are calculated relative to the origin, while the principle axes of inertia tensor is calculated relative to the center of mass.
3) The file_name specifies the output file to store the matrix. The default file name is rtn.dat.
4) The vector_idn specifies a vector to store the unitary vector that starts from the center of mass and directs along each of the three principle axes of the molecule. The vector_idn is an text-string of upto four characters.

See also: RTN and VECTOR

Examples:
1) Calculate an approximate radii of gyration of the protein molecule along each principle axis.

      initial
      more from { ca }
      setw 1.0
           ; all atoms are evenly weighted
      momentinertia
2) Calculate the moments of inertia of the protein molecule.
      initial 
      atom c*
      setw 15.0   ; define mass for carbon groups
      initial
      atom n*
      setw 17.0   ; for nitrogen
      initial
      atom o*
      setw 19.0   ; for oxygen
      initial
      atom s*
      setw 36.0   ; for sulfur
      initial
      more from { ca }
           ; select the protein molecule
      momentinertia      
           ; calculate the principle axes of the inertia tensor
3) Assume that we have a long straight helix of 100 residues in an arbitrary orientation and position. The following command will bring the center of mass of that helix to the origin and align the helix axis along the Z axis.
      initial
      zone 1 - 100
      setw 1.0
      momentinertia rot_inertia.dat
      rtn file rot_inertia.dat
      momentinertia
           ; this 2nd momentinertia command will show that 
           ; the principle axes of the inertia tensor coincide
           ; with the xyz axes.

MOVECENTER

Calculate a transformation matrix that brings the geometric center of the ON atoms close to a specified fractional coordinate.

Function: Calculation

Syntax:
MOVECENTER [file_name] [fx1 fy1 fz1 [fx2 fy2 fz2]]

Note:
1) The file_name defines the file to store the matrix. The default file name is rtn.dat.
2) The fx1, fy1, fz1 are the fractional coordinates of the 1st point to which the geometric center of the ON atoms is expected to be close. If there are more than one symmetry operator which give the same distance, the 2nd point (fx2, fy2, fz2) provides the 2nd reference. The initial default of (fx1, fy1, fz1) is (0.5,0.5, 0.5). In general, the default of (fx1, fy1, fz1) is the center position determined in the previous run of MOVECENTER. The default of (fx2, fy2, fz2) is (0.0, 0.0, 0.0).
3) Cell parameters and symmetry operators are required.

Examples:
1) Assume there are two molecules per asymmetric unit. The following commands will bring the molecule A close to the center of the unit cell and bring the molecule B close to molecule A.

      initial 
      chain A
      movecenter rtn.dat
      rtn file rtn.dat
      initial
      chain B
      movecenter rtn.dat
      rtn file rtn.dat

NEWXYZ

Calculate the coordinates of a new point.

Function: Calculation, Editing

Syntax:
NEWXYZ [(A, B, C)]

Note:
1) If no option is used, the new coordinates will be written to the currently opened output PDB file using the text string of the atom_a. The W field in the new record will be set to 0.0, and the B field will be set to 99.99.
2) The option A, B or C specifies whether the text string of atom_a, atom_b or atom_c will be replaced with the new coordinates.

See also: DFNEWXYZ

Examples:
1) Benzene
Let's start from the following pseudo PDB file, to build a benzene ring.

  ATOM      1  A0  UNK     1    0.000   0.000   0.000  1.00  1.00
  ATOM      2  A1  UNK     1    1.000   0.000   0.000  1.00  1.00
  ATOM      3  A2  UNK     1    0.000   1.000   0.000  1.00  1.00
  ATOM      4  A3  UNK     1    0.000   0.000   1.000  1.00  1.00
The 1st atom in the ring will be called C1, and located at (0.0, 0.0, 0.0).
      initial
      zone all
      write tmp.pdb
              ; create a temporary file to store intermediate coordinates
      setr bnz
              ; the residue name of the new records will be called bnz
      seti 2 1
              ; the residue ID of the new records will be set to 2
      seta c1
              ; the atom name of the first new records will be set to C1
      dfnewxyz a0 a1 a2 0 0 0 t t t 0.0 0.0 0.0
              ; describe the coordinates of the first record
      newxyz
              ; write the new record to the opened temporary 
              ; PDB file
      close
              ; close the temporary PDB file, so that it can be read 
      read tmp.pdb , initial
              ; read in the newly created/closed PDB file
              ; no chain name is reassigned
              ; overwrite the old coordinates
The 2nd atom in the ring will be called C2, and located along the x axis.
      initial
      zone all
      write tmp.pdb
      seta c2
      dfnewxyz c1 a1 a2 0 0 0 t t t 1.395 0.0 0.0
      newxyz
      close
      read tmp.pdb , initial
The 3rd atom in the ring will be called C3, and located on the x-y plane.
      initial
      zone all
      write tmp.pdb
      seta c3
      dfnewxyz c2 c1 a2 0 0 0 t t t 1.395 120.0 0.0
      newxyz
      close
      read tmp.pdb , initial
The 4th atom in the ring will be called C4, and C4-C3 is 1.395 Å, C4-C3-C2 is 120.0 degrees, and C4-C3-C2-C1 is 0.0 degree.
      initial
      zone 2
      write tmp.pdb
      seta c4
      dfnewxyz c3 c2 c1 0 0 0 t t t  1.395 120.0 0.0
      newxyz
      close
      read tmp.pdb , initial
The 5th atom in the ring will be called C5.
      initial
      zone 2
      write tmp.pdb
      seta c5
      dfnewxyz c4 c3 c2 0 0 0 t t t  1.395 120.0 0.0
      newxyz
      close
      read tmp.pdb , initial
And finally, the 6th atom in the ring will be called C6.
      initial
      zone 2
      write tmp.pdb
      seta c6
      dfnewxyz c5 c4 c3 0 0 0 t t t 1.395 120.0 0.0
      newxyz
      close
      read tmp.pdb , initial
      zone all
      list
2) Macro
This is a macro version of the Benzene example. Again let's start from the following PDB file, to build a benzene ring.
  ATOM      1  A0  UNK     1    0.000   0.000   0.000  1.00  1.00
  ATOM      2  A1  UNK     1    1.000   0.000   0.000  1.00  1.00
  ATOM      3  A2  UNK     1    0.000   1.000   0.000  1.00  1.00
The macro to be iteratively used is the following.
      ! new_xyz.edp
      initial
      zone all
      write tmp.pdb
      seta  $(p1)
      dfnewxyz $(p2)  $(p3)  $(p4)  ,,, ,,,  $(p5)  $(p6)  $(p7)
      newxyz
      close
      read tmp.pdb , initial
The following procedure creates the same model as the other example does, using the macro new_xyz.edp.
      @new_xyz c1 a0 a1 a2           0.0     0.0     0.0
      @new_xyz c2 c1 a1 a2         1.395     0.0     0.0
      @new_xyz c3 c2 c1 a2         1.395   120.0     0.0
      @new_xyz c4 c3 c2 c1         1.395   120.0     0.0
      @new_xyz c5 c4 c3 c2         1.395   120.0     0.0
      @new_xyz c6 c5 c4 c3         1.395   120.0     0.0
      atom c1 c2 c3 c4 c5 c6 from { zone 1 }
      setr bnz
      list

OVERLAY

Calculate the matrix which overlays the ON atoms to a given atom group, based on least-square minimization between the two sets of coordinates. (Mclachlan,1979. JMB 128, 49-79.)

Function: Calculation

Syntax:
OVERLAY group_id [file_name] [WEIGHT]

Note:
1) The group_id specifies the target group to which the ON atoms will be superimposed. The number of atoms in the target group should be the same as the number of the ON atoms.
2) The file_name defines a file to store the superposition matrix. The default file name is rtn.dat.
3) If the WEIGHT option is used, the atoms will be weighted according to the values in the W (occupancy) field of the ON atoms.

See also: RTN and SETW

Reference: A.D Mclachlan (1979). JMB 128, 49-79.

Examples:
1) Overlay the Ca atoms of residue 1 - 20 of molecule A to the corresponding atoms in molecule B.

      group mola from { ca a1 - a20 }
      group molb from { ca b1 - b20 }
      initial
      load mola
      overlay molb rtn.dat
      rtn file rtn.dat
2) Overlay molecule A to molecule B based on the superposition of the residues 3 5 and 7 in chain A to the residues 303, 305 and 307 in chain B. The main chain atoms will be given three times weight as the side chain atoms.
      group tgt from { zone b303 b305 b307 }
      initial

      side a3 a5 a7
      setw 1.0
      initial
      main a3 a5 a7
      setw 3.0
      more
      overlay tgt rtn.dat
           ; calculate the matrix
      chain a
      rtn file rtn.dat
           ; apply the matrix
3) Determine the axis of a long helix, say residues 60 - 80
      group  a from { main 60 - 79 }
      group  b from { main 61 - 80 }
      load a
      overlay b rtn.dat
      initial
      axis rtn.dat

PLANAR

Calculate the least square plane of the ON atoms. The plane is represented by its normal vector. The vector starts from the geometric center of the atoms, which is on the plane by definition.

Function: Calculation

Syntax:
PLANAR vector_id

Note:
1) At least three non co-linear atoms are required.
2) The normal vector is specified with vector_id which is an text-string of upto four charactors. For example, it may be one of the V0, V1, ... V9.

See also: VECTOR

Examples:
1) Check the planarity of a Phe side chain, say residue 4

      initial
      side 4
      planar v0
2) Calculate the angle between the rings of two Phe side chains, say residues 4 and 67.
      initial
      atom cg cd1 cd2 ce1 ce2 cz from { zone 4 }
      planar v1
           ; define v1 as the normal of the ring of residue 4
      initial
      atom cg cd1 cd2 ce1 ce2 cz from { zone 67 }
      planar v2
           ; define v2 as the normal of the ring of residue 67
      vector vv v1 v2
           ; calculate the angle

POLAR

Assuming the xyz are polar angles (phi, omega, kappa), this command calculates the symmetry equivalent angles, and expresses them in either an Eulerian or a polar system. It is useful for understanding the rotation function solutions. The convention for the polar angle system is that phi is the angle between the x axis and the projection of the rotation axis on the x-y plane; omega is the angle between the rotation axis and the z axis; and kappa is the rotation angle about the rotation axis.

Function: Calculation

Syntax:
POLAR TO_POLAR
POLAR TO_EULER
POLAR SYMMETRY symm_#
POLAR MOVE_TO_O res_id, atom_name
POLAR ASYMM [p1, p2, p3]
POLAR SRF_RED [p1, p2, p3]
POLAR UNIQUE delta_angle

Note:
1) TO_POLAR option convert the (phi, omega, kappa) angle into the standard range, ie. (0.0 < phi < 180.0, 0.0 < omega < 180.0, -180.0 < kappa < 180.0).
2) TO_EULER option converts (z, y', z") angle into eulerian angle.
3) If SYMMETRY option is used, the symm_# symmetry operator will be applied to the polar angle before the standardization. Symmetry information is required for this operation.
4) MOVE_TO_O option applies the inverse rotation of the specified record to every ON records.
5) With the ASYMM option , the polar angles stored in the ON records will be converted to their symmetry mates which have the smallest rotation angles from the rotation specified by the polar angles (p1, p2, p3).
6) With the SRF_RED option, the polar angles stored in the ON records will be considered as self-rotation function solutions and converted to their symmetry mates which have the smallest rotation angles from the rotation specified by the polar angles (p1, p2, p3).
7) With the UNIQUE option, a record that different from a previous one by an angle smaller than the delta_angle will be turned off.

See also: AXIS). ANALYZE, EULER and SYMMETRY

Examples:
1) Convert the polar angles in the ON records to the standard range.

      polar to_polar
2) Convert the polar angles in the ON records to eulerian angles.
      polar to_euler
3) Convert the polar angles to one asymmetric unit.
      ... (input cell parameters)
      ... (input symmetry information)
      initial
      zone all
      polar asymm 0 0 0
4) Convert the polar angles in the ON records to their fourth symmetry mates.
      polar symmetry 4
5) Assume one has a set of rotation function peaks. If one of the peak (e.g. stored in residue 1, atom CA) was applied, where would the other peaks be?
      polar move_to_o 1 ca
      list

RATIO

Calculate the ratio between the displayed (x, y, z, w, b) (multiplied by a scale factor) of the ON atoms and that of a given group. The ratio is defined as value(group_atom) divided by value(ON_atom)*scale. The result is stored in the text string of the ON atoms as well as the W an B fields. If the value of the ON atom is about 0.0 (less than 0.005), the corresponding result is set to a default value. If there is any other error, the W field of the corresponding ON atom is set to the default value. BE CAREFUL!

function: Calculation

Syntax:
RATIO group_id [scale] [def_value]

Note:
1) The number of the ON atoms should be equal to the number of atoms in the specified group.
2) The default scale is 1.0. The default def_value is 999.99.

See also: ANALYZE and DIFF

Examples:
1) Assume that we have two models of the same peptide chain. One is a folded model, say chain A. The other is an extended model, say chain B. The following example calculates the ratio of the solvent accessible area (SAA) of the folded model relative to the extended model for each amino acid residue.

      group mola from { chain a }
      group molb from { chain b }
      initial 
      load mola
      access 
      sumw b
           ; the B field of the CA has been change to 
           ; SAA of the residue of the folded model
      initial
      load molb
      access
      sumw b
           ; the B field of the CA has been change to 
           ; SAA of the residue of the extended model
      initial
      group a from { ca from mola }
      group b from { ca from molb }
      load b
      sett 24 31 ' 1.0'  ; set the x field to 1.0 
      sett 31 38 ' 1.0'  ; set the y field to 1.0
      sett 39 47 ' 1.0'  ; set the z field to 1.0
      setw  1.0          ; set the w field to 1.0
      ratio a 1.0 999.99
      list 
           ; the B field is the ratio, ie. the fractional SAA.

RMSW

Calculate the rms of the W value of the ON atoms over each residue, and overwrite the X, Y, Z or B of the CA atom with this calculated rms(W). It can be used for calculating the rms shift of coordinates of each residue.

Function: Calculation

Syntax:
RMSW (X, Y, Z, B}

Note:
1) The definition of rms of W is that rms(W) = sqrt(av(W²)).
2) The X, Y, Z or B is used to specify the field in the CA atom where the result for each residue will be written.

See also: ANALYZE, AVB, DFCA, DIFF and SUMW

Examples:
1) Calculate the coordinate difference between two models (say A and B) of the same protein molecule.

      group a from { chain a }
      group b from { chain b }
      initial
      load a
      diff b rms
           ; the W field of each atom is changed to 
           ; the coordinate shift. 
      rmsw b
           ; the B field of the CA atom is changed to 
           ; the rms shift of the residue.
      initial
      ca from a
      list

RTN

Perform coordinate transform to the ON atoms. RTN changes both the coordinate and the displayed text string.

Function: Calculation, Editing

Syntax:
RTN main_option (parameters) [(SAVE, MULT, INVE) [file_name(s)]]

Note:
1) One has three options to manipulate the currently used matrix and to store it in a matrix (ASCII) file specified with file_name. The default file name is rtn.dat.

SAVE -- save it as a rtn.dat file; overwrite the old file if exists.
MULT -- left-multiply the matrix to an existing matrix in the matrix file, store the product matrix in another file.
INVE -- calculate the inverse matrix of the currently used matrix, save it in the matrix file.
2) To use these three options, all parameters required by the main_option need to be specified.

Available main_options are ABCD , AXIS , CENTER , DEORTH , EZXZ , EZYZ , FILE , MATCH , MATRIX , ORTHOG , OVERLAY , POLAR , SYMMETRY and V_ALIGN .


ABCD

Reset a torsion angle, which is defined with four atoms, by predictively moving the 4th atom. Useful for resetting side chain rotamers.

Syntax:
RTN ABCD res_a [atom_a] res_b [atom_b] res_c [atom_c] res_d [atom_d] torsion_angle

Note:
The default atom name for each specified residue is the first atom of the residue, and should be called using a comma.

See also: AXIS option and ABCD command

Examples:
1) Set the chi-I torsion angle of residue 4 to -176.0 degrees, regardless what the current values is.

      initial
      side 4
      rtn abcd 4 n 4 ca 4 cb 4 cg -176.0
           ; since the side chain atoms including the CG 
           ; have been rotated, if the same command is repeated,
           ; it will produce zero rotation-translation.
      rtn abcd 4 n 4 ca 4 cb 4 cg -176.0
2) Set both the chi-II and chi-III torsion angles of Methionine residue 1 to -60.0 degrees.
      initial 
      side 1
           ; select atoms CB CG SD and CE
      rtn abcd 1 ca 1 cb 1 cg 1 sd -60.0
      exclude atom cb cg sd
           ; only the CE atom need to move
      rtn abcd 1 cb 1 cg 1 sd 1 ce -60.0

AXIS

Rotate about a two-atom bond, plus a translation parallel to the rotation axis.

Syntax:
RTN AXIS vector_id rotation_angle [translation]

Note:
1) The vector_id defines the axis of the rotation. The "right-hand convention" (ie. looking down and counterclockwise) is used to determine the direction of the rotation.
2) The default translation along the rotation axis is 0.0.

See also: ABCD option and VECTOR BY_ATOM command

Examples:
1) Rotate side chain chi-I angle (N-CA-CB-CG) of residue 4, by (- 120.0) degrees.

	initial
	side 4
	vector by_atom cacb 4 ca 4 cb
	rtn axis cacb -120.0, 0.0
2) Rotate the whole protein molecule by 90.0 degrees about an axis which passes through the Ca atom of residue 55 and the Ca atom of residue 127, and translated by 5.0 Å.
	initial
	more from { ca }	; select the protein molecule
	vector by_atom v1 55 ca 127 ca
	rtn axis v1 90.0 5.0

CENTER

Translate the ON atoms so that the geometric center of the ON atoms is at the origin (0, 0, 0).

Functin: Calculation

Syntax:
RTN CENTER

Note:
The geometric center is calculated only based on the
currently selected atoms.

See also: MOMENTINERTIA

Examples:
1) Set the geometric center of the ON atoms to the origin.

      rtn center
2) Rotate the molecule by a rotation of (10.0, 20.0 30.0) in polar angles at the geometric center of the currently selected model.
      rtn center inve
           ; move the geometric center to the origin
           ; and save the inverse translation matrix 
      rtn polar 10.0 20.0 30.0 
           ; perform the rotation
      rtn file rtn.dat
           ; move back to the original coordinate frame.

DEORTH

De-orthogonalize the coordinates, changing them from a Cartesian system to a crystal gridding system or a fractional coordinate system.

Syntax:
RTN DEORTH grid_a grid_b grid_c

Note:
1) The convention of the alignment of the (xyz) Cartesian system relative to the (abc) crystallographic axes is read in from the header of the (1st) input PDB file or is defined with a CELL command.
2) The grid_a, grid_b and grid_c are the grids of the unit cell along the crystallographic a, b and c axes.

See also: ORTHOG option and CELL command

Examples:
1) Convert the coordinates of the ON atoms from Cartesian coordinates to crystallographic fractional coordinates.

      rtn deorth 1.0  1.0  1.0
2) Assume that the current coordinate is in Cartesian system. We are going to apply a translation (10.0, 20.0, 30.0) to the ON atoms in a gridding system of (grid_a, grid_b, grid_c) = (60, 60, 100).
      rtn deorth 60 60 100
           ; convert the ON atoms to gridding 
      rtn ezxz   0.0 0.0 0.0 10.0 20.0 30.0
           ; apply a zero rotation and 
           ; a (10.0, 20.0, 30.0) translation
      rtn orthog 60 60 100
           ; convert the ON atoms back to the Cartesian system

EZXZ

Perform a rotation defined with a (zx'z") eulerian angle, plus some translation specified in the Cartesian coordinate.

Syntax:
RTN EZXZ e1 e2 e3 [t1 t2 t3]

Note:
1) The operation order is: a) rotating the object (not the coordinate frame) by e3 (degrees) about the Z axis; b) rotating the object by e2 (degrees) about the X axis; c) rotating the object by e1 (degrees) about Z axis; d) translating the object by (t1, t2, t3) if specified.
2) The default (t1, t2, t3) is (0.0, 0.0, 0.0).

See also: EZYZ and POLAR options as well as AXIS command

Examples:
1) To rotate the ON atoms about X axis by 30.0 degrees.

      rtn ezxz 0.0 30.0 0.0
2) To rotate the ON atoms first about the X axis by 1.0 degree and then about the Y axis by 2.0 degrees and then about the Z axis by 3.0 degrees.
      rtn ezxz 0.0 1.0 0.0
           ; first 1.0 degree about X
      rtn ezyz 3.0 2.0 0.0   
           ; then  2.0 degrees about y and 3.0 degrees about z

EZYZ

Perform a rotation defined with a (zy'z") eulerian angle, plus some translation specified in the Cartesian coordinate.

Syntax:
RTN EZYZ e1 e2 e3 [t1 t2 t3]

Note:
1) The operation order is: a) rotating the object (not the coordinate frame) by e3 (degrees) about the Z axis; b) rotating the object by e2 (degrees) about the Y axis; c) rotating the object by e1 (degrees) about Z axis; d) translating the object by (t1, t2, t3) if specified.
2) The default (t1, t2, t3) is (0.0, 0.0, 0.0).

See also: EZXZ and POLAR options as well as AXIS command

Examples:
1) To rotate the ON atoms about Y axis by 30.0 degrees.

      rtn ezyz 0.0 30.0 0.0
2) To rotate the ON atoms first about the X axis by 1.0 degree and then about the Y axis by 2.0 degrees and then about the Z axis by 3.0 degrees.
      rtn ezxz 0.0 1.0 0.0
           ; first 1.0 degree about X
      rtn ezyz 3.0 2.0 0.0   
           ; then  2.0 degrees about y and 3.0 degrees about z

FILE

Read a matrix from an existing matrix file, and apply it to the ON atoms.

Syntax:
RTN FILE file_name

Note:
1) The data in a matrix file should have free format, ie. are separated from each other with space or . The order of the data is the following: r11, r12, r13, r21, ...r32, r33, t1, t2, t3. The matrix is used as

           x'= r11*x + r12*y + r13*z +t1
           y'= r21*x + r22*y + r23*z +t2
           z'= r31*x + r32*y + r33*z +t3
where (x, y, z) stands for old coordinate, and (x', y', z') stands for the new coordinate.
2) The default file name, specified with a comma (,), is rtn.dat.

See also: MOMENTINERTIA, MOVECENTER and OVERLAY

Examples:
1) To apply the transformation matrix in a file rtn.dat to the Ca atoms.

      initial
      Ca
      rtn file rtn.dat
2) To apply the inverse matrix of the matrix in the rtn.dat file to the Ca atoms.
      initial
      rtn file rtn.dat  inve inverse_matrix.dat
           ; create a file of the inverse matrix
      Ca
      rtn file inverse_matrix.dat
3) Matrix multiplication. Assume that one has two coordinate transformations, A and B, stored in files a.dat and b.dat. The following commands create another file to contain the combination transformation AB.
      initial
      rtn file b.dat save b.dat
      rtn file a.dat mult b.dat ab.dat 

MATCH

Match two atoms by performing a given POLAR rotation, eg. to apply a non-crystallographic symmetry. The two atoms may represent two heavy atom sites binding to two protein molecules and the rotation may be a non-crystallographic rotation obtained from a self rotation function search.

Syntax:
RTN MATCH res_id1 [atom_1] res_id2 [atom_2] phi omega kappa

Note:
1) The res_id1 and atom_1 specify the residue ID and atom name of the 1st atom; and the res_id2, atom_2 for the 2nd. The default atom name for each specified residue is the first atom of the residue.
2) The polar angle (phi, omega, kappa) specifies the rotation.
3) The vector connecting the two atoms should not be parallel to the rotation axis.

See also: POLAR option

Examples:
1) To match the Ca of residue A1 to the Ca of residue B1 by a 72 degree rotation about an axis parallel to the X axis.

      rtn match A1 Ca B1 Ca 0.0 90.0 72.0

MATRIX

Read a matrix from the input line, and apply it to the ON atoms.

Syntax:
RTN MATRIX r11, r12, r13, r21, ...r32, r33, t1, t2, t3

Note:
1) The matrix is used as

           x'= r11*x + r12*y + r13*z +t1
           y'= r21*x + r22*y + r23*z +t2
           z'= r31*x + r32*y + r33*z +t3
where (x, y, z) stands for old coordinate, and (x', y', z') stands for the new coordinate.

See also: the FILE option

Examples:
1) Rotate the coordinates by 180 degrees about Z.

      initial
      zone all
      rtn matrix -1 0 0, 0 -1 0, 0 0 1, 0 0 0
2) Fix a chirality problem of a given residue (eg. residue 164) by changing the position of Ca to its mirror position.
      initial
      ca 164
      rtn over $(p1) n c cb 0 0 0 , ,,, ,,, inv tmp.dat
           ; the mirror is defined by the N, CB and C atoms
           ; first move the mirror to the y-z plane
      rtn matrix -1 0 0 0 1 0 0 0 1 0 0 0
           ; set x:=-x
      rtn file tmp.dat
           ; move the mirror plane back

ORTHOG

Orthogonalize the coordinates of the ON atoms, changing them from a crystal gridding system, including the fractional coordinate system, to a Cartesian system.

Syntax:
RTN ORTHOG grid_a grid_b grid_c

Note:
1) The convention of the alignment of the (xyz) Cartesian system relative to the (abc) crystallographic axes is read in from the header of the (1st) input PDB file or is defined with a CELL command.
2) The grid_a, grid_b and grid_c are the grids of the unit cell along the crystallographic a, b and c axes.

See also: DEORTH option and CELL command

Examples:
1) Convert the coordinates of the ON atoms from the crystallographic fractional coordinates to Cartesian coordinates.

      rtn deorth 1. 1. 1.
2) Assume that the current coordinate is in a Cartesian system of an alignment of x//a*, y//b, z//(a* X b) (convention #1), and that we want to convert the coordinate to a Cartesian system of an alignment of x//a, y//b*, z//(a X b*) (convention# 6).
      cell  61.2 61.2 96.8 90.0 90.0 120.0 1
      rtn  deorth 1.0 1.0 1.0
           ; convert to fractional coordinates, 
           ; assuming convention #1
      cell  61.2 61.2 96.8 90.0 90.0 120.0 6
      rtn  orthog 1.0 1.0 1.0
           ; convert back to Cartesian coordinates,
           ; assuming the new convention, #6

OVERLAY

Perform a three-atom to three-atom superposition, useful for making a model mutation.

Syntax:
RTN OVERLAY res_id1 [atom_11 atom_12 atom_13] [reg_11 reg_12 reg_13] [res_id2 [atom_21 atom_22 atom_23] [reg_21 reg_22 reg_23]]

Note:
1) The rotation-translation matrix is calculated from two groups of coordinates. Each group contains three atoms. The first atom of the first group will be translated to the position of the first atom of the second group. The second atom of the first group will be aligned so that the two vectors from the first atom to the second atom of the two groups are co-linear. The third atom of the first group is aligned so that the six atoms of the two groups are co-planar.
2) The res_idn is the residue ID of the corresponding group It is the registration zero for the group. The atom_nn is the atom names of the 1st, 2nd and 3rd atoms in the corresponding groups. The default atom_11, atom_12 and atom_13 are CA N C. The default atom_21, atom_22 and atom_23 are the same as atom_11, atom_12 and atom_13, if res_id2 has been specified. The reg_nn is the registration number relative to the res_idn for the corresponding atom_nn, so that, eg. atom_11, atom_12 and atom_13 do not have to be in the same residue. The default reg_nn is 0.
3) In case that res_id2 is not specified, the default coordinate of the second group is ((0.0, 0.0, 0.0), (0.0, 0.0, 1.0), (0.0, 1.0, 0.0)}, so that the transformation will bring the first atom in the first group to the origin, the second atom on Z axis, and third atom on y-z plane.

See also: the V_ALIGN option and OVERLAY command

Examples:
1) Rotate-translate the side chain of residue A100 by overlaying its backbone atoms to that of residue B100.

      initial
      side a100
      rtn overlay a100  ,,,  ,,,  b100  ,,,  ,,,
2) Assume we want to make a model of Met to Ile substitution at position 6. A library PDB file that contains a standard building block of Ile is required, in which the Ile model that we want to use is called I1, for example. The following commands will create a new PDB file called m6i_model.pdb. It will contain the wild type coordinates except at position 6, where the Met will be changed to an Ile.
      initial
      zone first - 5
      write m6i_model.pdb
      initial
      zone i1
      rtn overlay i1  ,,,  ,,,  6 ,,, ,,,
           ; overlay the Ile block (ie. I1) to the residue 6
      seti 6 1
           ; rename the Ile block as residue 6
      append
      initial
      zone 7 - last
      append      
      close

POLAR

Perform a rotation defined with a polar angle, plus some translation specified in the Cartesian coordinate.

Syntax:
RTN POLAR phi omega kappa [t1 t2 t3]

Note:
1) The phi is the angle between the x axis and the projection of the rotation axis on the x-y plane; omega is the angle between the rotation axis and the z axis; and kappa is the rotation angle about the rotation axis.
2) The default translation vector, (t1, t2, t3), is (0.0, 0.0, 0.0).

See also: EZXZ and EZYZ options as well as AXIS command

Examples:
1) To rotate the ON atoms about Y axis by 30.0 degrees.

      rtn polar 90.0 90.0 30.0
2) To rotate the ON atoms with a polar rotation (10.0, 20.0, 30.0) at the geometric center of the molecule, followed by a translation of (40.0 50.0, 60.0).
      zone all
      rtn center inve
           ; bring the molecule to a coordinate system 
           ; in which the geometric center is at the origin and 
           ; the xyz axes are parallel to the original ones;
           ; save the inverse matrix
      rtn polar 10.0 20.0 30.0 40.0 50.0 60.0
           ; perform the rotation-translation
      rtn file rtn.dat
           ; bring the molecule back the original 
           ; coordinate system

SYMMETRY

Apply a symmetry operator, plus an optional crystallographic translation, to the ON atoms. The ON atoms can be treated either as a rigid body or as individuals.

Syntax:
RTN SYMMETRY [symm_#] [fx fy fz]

Note:
1) The default symm_# is 0. The default fractional coordinate, (fx, fy, fz) is (0.0, 0.0, 0.0).
2) If the symm_# equals 0, atoms will be transformed individually into a box of one unit cell centered at (fx, fy, fz).
3) If the symm_# is greater than zero, the corresponding symmetry operator in the symmetry operator list will be applied followed by a translation specified with the fractional coordinate (fx, fy, fz).
4) If the symm_# is negative, the inverse matrix of the corresponding (positive) symmetry operator will be applied, *followed* by a translation specified with the fractional coordinate (fx, fy, fz).

See also: MMIG, MOVECENTER and SYMMETRY

Examples:
1) Apply the second symmetry operator (see SYMMETRY command), plus a translation along crystallographic C axis by one unit cell, to the ON atoms.

      rtn symmetry 2 0 0 1
2) Transfer the ON atoms by half unit cell along each crystallographic axis. let's assume the first symmetry operator in the symmetry operator list is the unitary operator (ie. X, Y, Z)
      rtn symmetry 1 0.5 0.5 0.5
3) Transfer the ON atoms into a box of a unit cell centered at the (0.5, 0.5, 0.5) in fraction coordinate.
      rtn symmetry 0 0.5 0.5 0.5
4) Assume that there is one protein molecule per asymmetric unit. The residue 45 has a crystal contact with residue 116 through some crystallographic symmetry operator (to be determined). In the following, a coordinate file of the protein molecule will be created, in which residue 116 will contact the residue 45 of the original model.
      ...  
           ; input the cell parameters and the symmetry operators
      initial
      group r_45 from { zone 45 }
      zone 116
      mmig r_45 4.0
           ; In the output of this command, 
           ; we find the message:
           ; symm.# 3: y-x, -x, z+1/3 plus [ 1, 1, 0] 
      zone all
      rtn symmetry 3 1 1 0
           ; apply the third symmetry operator
           ; plus (1,1,0) translation.
      write new_model.pdb
           ; output the rotated-translated model to a PDB file.

V_ALIGN

Given two vectors, perform a rotation-translation such that the first vector will start at the origin and end on the positive z axis and the second vector will lie on a plane parallel to the y-z one.

Syntax:
RTN V_ALIGN vector_id1 vector_id1

See also: the OVERLAY option and VECTOR command

Examples:
1) align the protein molecule such that its shortest axis becomes parallel to z axis.

	initial
	more from {ca}
	momentinertia    ,  long med sht
	rtn v_align  sht med

SHAPE

Generate random probes around a cavity or a cleft. The position of a probe will be chosen such that there is no overlap between the Van de Waals sphere of the probe and that of the ON atoms. The collection of these probes provides approximate information about the shape, volume and surface area of the cavity or cleft.

Function: Calculation

Syntax:
SHAPE search_radius res_id [atom_name] max_RT [probe_radius] [file_name] [random_seed]

Note:
1) Given a search background and a search center, SHAPE command will randomly generate probes within a sphere, check whether there is any bad contact between the probe and the background, and write out the legal probes.
2) The ON atoms will be used as the search background. An atom specified with the res_id and atom_name will serve as the search center. The default atom is first atom of the specified residue. Max_RT number of random probes will be generated within a sphere of the search_radius.
3) A legal probe is a probe which does not have any bad contact with the background atoms based on the Van der Waals radius of the ON atom and the probe_radius. The default probe_radius is 1.4 Å. The search will start around the center atom in a sphere of a radius about twice the summation of the probe radius and the maximum Van der Waals radius of the ON atoms. In each step, a new probe will be generated around the previously determined legal probe.
4) The legal probes will be written to the currently opened output PDB file. The text string of the output records will be copied from that of the center atom. However, the coordinates will be replaced with that of the probe position, and the B factor of the record is replaced by the B factor of the nearest ON atom. Its W field is set to zero.
5) The random_seed is an integer; if the result is expected to be repeatable, the random_seed should be given explicitly. The default value is a random number.
6) A database file (specified with the file_name) in the current directory or in the default directory is required to define the VDW radii of the ON atoms. (See ACCESS command documentation for more details).
7) Since the calculation is based on random number generator, and for small cavity the result is very likely to be sensitive to the starting position of the search, verification of the result by repeated calculations and/or graphic display is strongly recommended.

See also: ACCESS, FILE and VOLUME

Examples:
1) Generate random probes which mimic the shape of a cavity in the carboxy terminal domain of T4 lysozyme (pdb4lzm.pdb). In the following example, the search center is read from a separated PDB file, center.pdb, which contain one record.

  ATOM      1  PRB SOL C   1   28.800  10.300  0.600  1.00  1.00
The following macro may be repeated a few times to verify the result.
      reset
      read center.pdb
      write prb.pdb
           ; open a PDB file to output the legal probes
      nayb 10.0 c1 prb from { zone 1 - 162 }
           ; select the background atoms form the protein molecule
      shape 6.0 c1 prb 3000 
           ; 6.0 search radius, 3000 tries
      close
      read prb.pdb , initial
      zone all
      volume      
           ; calculate the volume of the cluster of the probes.
           ; If the number of probes generated is large, this volume 
           ; should be very close to the true result of the model.

SORT

Reset the order of the output records.

function: Calculation, Selection

Syntax:
SORT [option]

Note:
1) The option is one of the following

a) B -- sort by B value in an ascending order
b) -B -- sort by -B value in a descending order
c) W -- sort by W value in an ascending order
d) -W -- sort by -W value in a descending order. (See also: SETW)
e) DFRES -- sort by DFRES definitions (default from edp_data:pdbstd.dat), check the side chain chirality and labelling, and set the status of the okey atoms to ON. (See also: DFRES)
f) SWAP -- swap the ON atoms with the atoms in a given group as well as their output order. (See also: SWAP)
g) LOAD -- sort by groups in a given loading order. (See also: GROUP)
h) blank -- set to the original order.
2) The sort command will work on all records regardless of their current status. The DFRES option will also change the status if proper.

Examples:
1) Sort the records by the B factor in an ascending order.

      sort B
2) Sort the records by the W value in a descending order.
      sort -W
3) Reset the records to the original order.
      sort
4) Fix the labelling problem
      initial
      sort dfres
5) Switch the output order of chain A and chain C, assuming the input order is chains A, B and C.
      group molc from { chain c }
      initial
      chain a
      sort swap molc
           ; The new order is that chain A is after chain B
           ; and chain C is before chain B. 
      chain a b c
      write cba.pdb
6) Set the output order to chains C, and B and A.
      group mola from { chain a }
      group molb from { chain b }
      group molc from { chain c }
      sort load c b a
           ; The new order is that chain A follows chain B
           ; and chain B follows chain C.
           ; Note that this sort command does not select any records.
           ; Also if there is any records other than chains a, b 
           ; and c, they will locate after the records of chain a.
      initial
      zone all
      write cba.pdb

SUMW

Calculate the summation of the W value of the ON atoms over each residue, and overwrite the X, Y, Z or B of the CA atom with this summation.

Function: Calculation

Syntax:
SUMW (X, Y, Z, B}

Note:
The X, Y, Z or B is used to specify the field in the CA atom where the result for each residue will be written.

See also: AVB, DFCA and RMSW

Examples:
1) Calculate the solvent accessible area of each residue.

      initial
      ca
      blank   ; clean the CA text string
      more    ; select the protein molecule 
      access
      sumw x  
           ; store the summation of each residue to the x field
      exclude main
      sumw z 
           ; store the summation over side chain atoms to the z field
      initial
      main
           ; store the summation over main chain atoms to the y field
      initial
      ca
      list

VECTOR

Function: Calculation

Syntax:
VECTOR main_option parameter(s)

Available main_options are BY_ATOM, BY_NUM , DELETE , LIST , PV , VP and VV


BY_ATOM

Define a new vector using two atoms.

Syntax:
VECTOR BY_ATOM res_id1 [atom_id1] res_id2 [atom_id2]

Note:
1) res_id1 and atom_id1 specify the first atom, ie. the starting point of the vector; and res_id2 and atom_id2 specify the second atom, ie. the end point of the vector. 2) the default atom is the first atom in the specified residue.

Examples:
1) create a vector passing through CA atom of residue 10., and CA atom of residue 30.

	vector by_atom  v1 10 ca 30 ca
2) rotation the side chain of residue 4 about the CA-CB bond by -120.0 degrees.
	initial
	side 4
	vector by_atom v1 4 ca 4 cb 
	rtn axis v1  -120.0  0.0 

BY_NUM

Create a new vector using numbers.

Syntax:
VECTOR BY_NUM vector_id p1, p2, p3, r1, r2, r3, [length]

Note:
1) p1, p2, p3 are the x, y, z coordinates of the starting point of the vector.
2) if r1²+r2²+r3² = 1.0 and length is not zero, r1, r2, r3 are taken as the directional cosine of the vector. Otherwise, they are taken as the x, y, z coordinates of the end point of the vector.

Examples:
1) create a vector along z axis, of length 2.

	vector by_num v1 0 0 0, 0 0 1,  2
  or 
	vector by_num v1 0 0 0, 0 0 2

DELETE

Delete an existing vector.

Syntax:
VECTOR DELETE vector_id

Examples:
1) delete vector v1.

	vector delete v1

LIST

List the current vector(s).

Syntax:
VECTOR LIST [vector_id]

Examples:
1) list all the current vectors.

	vector list

PV

Calculate the distance from the starting point of a given Vector to a specified atom (Point); also calculate the angle between the given vector and the connection vector which starts from the starting point of the given Vector and ends at the specified atom (ie. the Point).

Syntax:
VECTOR PV vector_id [res_id [atom_name]]

Note:
1) The vector_id specifies the input vector. 2) The default atom is the first atom in the residue if specified. If the res_id is not specified, the first ON atom will be used.

Examples:
1) Calculate the distance and angle between the Phe ring of residue 4 and the Ce1 atom of Phe 67.

      initial
      atom cg cd1 cd2 ce1 ce2 ca from { zone 4 }
      planar v1
           ; define v1 as the normal of the ring of residue 4
      vector pv v1 67 ce1
           ; calculate the distance/angle between v1 and 
           ; the ce1 atom of residue 67  

VP

Calculates a new point on the axis defined by a given vector. Replaces both xyz and text string of a given atom with the new coordinates.

Syntax:
VECTOR VP vector_id [res_id [atom_name]] [length]

Note:
1) The vector_id specifies the input vector. 2) The default atom is the first atom in the residue if specified. If the res_id is not specified, the first ON atom will be used.
3) The coordinates of the new position will be on the straight line which is co-linear to the vector.
4) The length of the vector determines distance between the starting point of the vector and the new position. If the length is negative, the new position will be at the opposite direction of the vector. The default is the vector length of vector_id

See also: AXIS, PV and VV

Examples:
1) Assume we have the rotation matrix in the file rtn.dat. The following commands make a pair of pseudo atoms to display the rotation axis.

	axis rtn.dat v1
	vector vp v1 jnk1 O -100.0
	vector vp v1 jnk2  O 100.0
		; select any atom which can be overwritten.
	initial
	atom O from { zone jnk1 jnk2 }
	write axis.pdb
		; make a PDB file to store the two pseudo atoms.
2) Generate a record to store the geometric center of the protein molecule.
	initial
	more from { ca }
	setw 1.0
	momentinertia  ,  v0
	initial
	vector vp v0 1 ca 0.0
           ; the coordinate of the Ca atom of residue 1 is replaced.

VV

Calculate the projected (shortest) distance and the angle between two vectors. It is useful for, for example, determining of the distance and angles between two helices.

Syntax:
VECTOR VV vector_id1 vector_id2 [vector_id3]

Note:
1) The vector_idn is an text-string of upto four charactors. For example, it may be one of the V0, V1, ... V9. 2) Vector_id1 and vector_id2 specify two existing vectors.
3) If the parameter vector_id3 is given, the corresponding vector will store the normalized cross product of the two input vectors (ie. cross from vector(1) to vector(2)). The starting point will be the intersection of vector(1) and the shortest distance line between the two vectors.

See also: AXIS, PV and VP

Examples:
1) Calculate the angle and shortest distance between helix 93 - 104 and helix 115 - 122.

      ! determine the axis of helix 93 - 104
      initial
      group tmp from { main 93 - 103 }
      main 94 - 104
      overlay tmp rtn.dat
      initial
      axis rtn.dat v1
      ! determine the axis of helix 115 - 122
      initial
      group tmp from { main 115 - 121 }
      main 116 - 122
      overlay tmp rtn.dat
      initial
      axis rtn.dat v2
      ! calculate the angle and distance
      vector vv v1 v2

VOLUME

Calculate the volume of the ON atoms enclosed within the solvent accessible surface. (Ref. Lee & Richards, JMB 1971, Vol 55, pp 379-400). Note that this volume is not the "molecular volume" enclosed within the "molecular surface" defined by Connolly (Ref. Connolly, J. Am. Chem. Soc., Vol 107 No. 5, 1985).

Function: Calculation

Syntax:
VOLUME [probe_radius] [zstep] [file_name]

Note:
1) The default probe_radius is 0.0 Å.
2) The zstep is the integration step size along z direction. The default is 0.2 Å.
3) A database file in the current directory or in the default directory is required to define the Van der Waals radii of the ON atom.
4) The accuracy of the result can be verified by rotating the object and repeating the calculation.

See also: ACCESS and FILE

Examples:
1) Calculate the van der Waals volume of the side chain of Leu (say residue 99) beyond the CA atom.

      initial
      zone 99
      volume
           ; denote the result as v(99)
      initial
      main 99
      volume
           ; denote the result as v(99m)
The difference of v(99) - v(99m) will be the volume beyond the CA atoms.

2) Estimate the "molecular volume" of the protein molecule.

      initial
      ca
      more
      access , 1.4
           ; get the solvent accessible surface (S) of the protein
           ; molecule with a 1.4 Å probe.
      volume 1.4
           ; get the volume (V) with 
           ; radius = (Van_de_Waals_radius + 1.4Å)
           
      The estimated volume is (V - S*1.4).

Editing

Available commands: BLANK , PERMUTE , SET , SETA , SETB , SETC , SETE , SETI , SETR , SETT , SETW , SWITCHWB and UPDATE .

Editing commands modify the output fields, ie. text strings, W and B values, of the selected records. Specifically, every character in the text string can be modified. The editing commands listed below will not change the internal xyz coordinates (which may be used for geometry calculations).


BLANK

Blanks the x, y, z fields of the ON atoms.

Function: Editing

Syntax:
BLANK

Example: 1) To erase the x, y and z fields of the Ca atoms.

      initial
      Ca 
      blank

PERMUTE

Permute columns in the text string of the ON atoms. PDB files output from different programs may have slightly different formats. For example, some fields may shift relative to each other. PERMUTE command can be used to fix this kind of problem by reformatting the record.

Function: Editing, Information

Syntax:
1) PERMUTE
2) PERMUTE i0 i1 shift

Note:
1) The first form outputs a ruler which defines the column number.
1) The i0, i1 are the starting and ending column numbers, respectively.
2) The shift is the number of times of one-character-permutations, which can be either positive or negative.

Examples:
1) To display the current test string and the column ruler.

      zone all
      permute
2) Shift the residue number, which is currently at positions 16 - 19 of the text string, right-ward by one character.
      permute 16 20 1
3) Shift the atom name, which is currently the at positions 8 - 10 of the text string, left-ward by two characters.
      permute 6 10 -2
4) Reformat the record to switch the residue type (eg. Ala, Asp) at position 11 - 13 and the atom name at position 7-9.
      permute 7 13 3
      permute 
           ; to check the result of the permutation.
           ; it does not look as expected
      permute 7 13 -3
           ; to restore the record, then try again
      permute 7 14 4
           ; or permute 6 13 4

SET

Set new text string etc. to all the ON atoms.

Function: Editing

Syntax:
SET (ATOM, RESIDUE, CHAIN, ID, WEIGHT, B, TEXT, ENTRY) parameters
Note:
The SET command duplicates the following SETx commands.
1) option ATOM -- SETA
2) option RESIDUE -- SETR
3) option CHAIN -- SETC
4) option ID -- SETI
5) option WEIGHT -- SETW
6) option B -- SETB
7) option TEXT -- SETT
8) option ENTRY -- SETE

See also: RESET and RTN

Examples:
1) Set chain name of the ON atoms to A

      set chain A
2) Set the entry number for the ON records.
      set entry 

SETA

Set new atom name to all the ON atoms.

Function: Editing

Syntax:
SETA atom_name

See also: SET

Examples:
1) Change atom name from WT to HOH

      initial
      atom wt
      seta hoh

SETB

Set the B-factor of the ON atoms to a given value or with the average B of the ON atoms of each residue.

Syntax:
1) SETB
2) SETB [b]

Note:
1) The first form sets the B factor to the average B of the ON atoms of each residue.
2) The second form sets the B factor to b, where -99.0 < b < 999.0.

See also: AVB and SET

Examples:
1) Set the B factors of the ON atoms to 25.0

      setb 25.0
2) Set the B factors of side chain atoms to the average B of the side chain for each residue.
      initial
      side 
      setb

SETC

Set new chain name to all the ON atoms.

Function: Editing

Syntax:
SETC [chain_name]

Note:
1) The chain_name is the new chain name (one character).
2) This command will not change the residue ID in the internal array (used for selection criterion), but will affect all the subsequent output (eg. LIST and WRITE commands).
3) If a chain_name is not input, SETC command will try to catch the last non-numeric character in the residue_id field of the text string of each ON atom, using it as the chain name, and erase the non-numeric characters from the residue_id field in the displayed text string.

See also: SET and SETI

Examples:
1) Set the chain name of the ON atoms to A

      setc a
2) Set the chain name of the ON atoms to blank
      setc ' '
3) Split the res_id in the text string into a chain name and a pure number.
      setc

SETE

Set new entry number to the ON atoms in the current displaying order.

Function: Editing

Syntax:
SETE

See also: SET and SORT

Examples:
1) Reset the entry number after relabeling the atoms.

      sort dfres
      sete
2) Use the entry number to indicate the B factor order.
      zone all
      sort b  ; sort the records in an ascending B order.
      sete    ; set the entry number according the B order.
      sort    ; set the record order back to the original one.
      list    ; the entry number indicates the order of the B factors.

SETI

Set new residue_number (ID) to all the On atoms.

Function: Editing

Syntax:
1) SETI
2) SETI [new_res_# [incr_#]]

Note:
1) With the first form, SETI command will try to catch the last non-numeric character in the residue_id field of each ON atom, using it as the chain name. Note that the information comes from the residue_id, but not the text of the records.
2) With the second form, if the incr_# is specified, or the new_res_# is not an integer number, the residue_id field in the text string will be set to the new_res_#.
3) If both new_res_# and incr_# are integers, the residue_id field will be set to integer numbers starting from the new_res_# and increased by incr_#.

See also: SET and SETC

Examples:
1) Some programs punch out PDB files in which the chain name and the residue number are stacked together. To split them into two parts, type

      seti
2) Set residue ID of the ON records to a100
      seti a100
3) Set residue ID of the ON records to numbers starting from 401 and increased by 1.
      seti 401 1

SETR

Set new residue type to all the ON atoms.

Function: Editing

Syntax:
SETR residue_type

See also: SET

Examples:
1) Set the residue_type of all the ON atoms to ALA.

      setr  ala
2) Change the residue type of WAT residues to SOL
      initial
      residue wat
      setr sol

SETT

Set new TEXT to all the On atoms.

Function: Editing

Syntax:
SETT column_1 column_2 text_string

Note: column_1 and column_2 are the starting and ending column numbers of the region where the text_string is to be written.

See also: PERMUTE, SET, TEXT, and UPDATE

Examples:
1) Set the atom name of the ON atoms to OH.

      sett 7 10 'OH  '
           ; the same as seta oh
2) Set the Z field to blank.
      permute
           ; check the column numbers for the Z field.
      sett 40 47 ' '


SETW

Set the W field of the ON atoms with a user specified value or a calculated value.

Function: Editing

Syntax:
1) SETW
2) SETW (wv, X, Y, Z, B, file_name) [(+W, -W, *W, /W)]

Note:
1) The first form sets the W field to res_#*0.1, where res_# is the residue order number in the input PDB coordinate file.
2) The wv is a real number to which the W column will be set. The option X, Y, Z or B will set the W column equal to the correspond column. The file_name specifies an acc.dat like file, and the W column will be set according the data in this file.
3) The options +W -W *W and /W can be used to modify the W value.

See also: ACCESS, AXIS, DISTANCE, SET and SWITCHWB

Examples:
1) Set the occupancy of the ON atoms to 0.5

      setw 0.5
2) Set the occupancy to 1.0 after a command, say AXIS, which may cause unwanted changes in the occupancy column (ie. the W field).
      axis rtn.dat
      setw 1.0
3) Create a PDB file (new_coor.pdb) in which the B factor is proportional to the residue position number in the amino acid sequence.
      initial
      setw
      switchwb
      setw 1.
      write new_coor.pdb
4) Multiply the value in the B column by a factor 10.0.
      setw 10.0
      setw b *w
      switchwb
5) Sort the records according to Z coordinates.
      zone all
      setw z
      sort w
6) Calculate the approximate molecular weight of the protein molecule. The numbers used in this example are nothing more than Examples:.
      initial
      atom c*
      setw 13.0
           ; set the W column of carbon atoms to 13.0
      initial
      atom n*
      setw 14.0
           ; set the W column of nitrogen atoms to 14.0
      initial
      atom o*
      setw 16.5
           ; set the W column of oxygen atoms to 16.5
      initial s*
      setw 33.0
           ; and set the W of sulfur atoms to 33.0
      zone all
      sumw x
           ; Calculate the summation of the W column.

SWITCHWB

Switch B and W columns. This command is useful for sharing EDPDB utilities between B and W columns.

Function: Editing

Syntax:
SWITCHWB

See also: AVB, RMSW, SETW and SUMW

Examples:
1) Switch the B and W columns.

      switchwb
2) Calculate the average W for each residue. (Note that the value in the W field could be any real number).
      switchwb 
      avb x   ; store the average W in 
           ; the X field of the CA atom for each residue.

UPDATE

Update the xyz, W or B fields of the ON records.

Function: Editing

Syntax:
UPDATE (XYZ, W, B) file_name fortran_format
UPDATE T column_1 column_2 file_name fortran_format

See also: SETT and SETW

Examples:
1) Change the xyz coordinates according to the data in a text file.

      initial
      zone        all
      update      xyz new.dat '(3f8.3)'
2) Change the B factor of atom CA in residue 1 to 25.0 (on a vms system).
      initial
      atom ca from {zone 1}
              ! or simply 'ca 1 ' 
      update      b  tt  (f10.0)
      10.0
              ! On VMS system, tt stands for the current terminal

Input/output

Available commands: APPEND , EXIT , LIST , READ , SEQUENCE and WRITE ,

As an editing program, EDPDB can output the editing result to either the terminal or to new PDB format files. It can also read multiple PDB files.


APPEND

Append the ON atom to an opened PDB format output file.

Function: Output

Syntax:
APPEND [comment]

Note:
The optional comment, which is usually a text string, will be written in front of the output records.

See also: WRITE

Examples:
1) Append the current ON atoms to the opened PDB file.

      append
2) Switch the order of two molecules, A and B, in the output file.
      initial
      chain b
      write ba.pdb 'REMARK molecule B the first'
      initial
      chain a
      append  'REMARK molecule A follows molecule B'

EXIT

Make an output a PDB file, and terminate EDPDB.

Function: Output, Control

Syntax:
EXIT [file_name] [(COS, HEADER, title )]

Note:
1) The default file name is the same as that of the (1st) input PDB file. To use the default file name, type a comma instead of a file name.
2) The default file type is .pdb.
3) The EXIT command is equivalent to a WRITE statement followed by a QUIT statement without the SAVE option.
4) See the documentation of the WRITE command for the information of the header options.

See also: QUIT and WRITE

Examples:
1) Write the current ON atoms to a new PDB file, and quit from EDPDB.

      exit new_coor.pdb
2) Write a new PDB file including the cell parameter information, and quit from EDPDB.
      cell 61.2 61.2 96.8 90.0 90.0 120.0 1 
           ; T4 lysozyme, P3221 crystal form
      exit new_t4l.pdb cos

LIST

List the ON atoms on the terminal.

Function: Output

Syntax:
1) LIST [ n1 [n2] ] 2) LIST ZONE

Note:
1) The n1 and n2 are the sequential numbers of the sorted ON records, which between which the records will be listed.
The default of n1 is 1, and the default of n2 is the end of ON atoms.
2) The second form lists the currently selected zone(s).

See also: SORT and WRITE

Examples:
1) List all the ON atoms.

	list
2) List the 100th-110th Ca atoms.
	initial
	Ca
	list 100 110
3) List the 1500th ON atom and its following atoms.
	list 1500
4) List the top 40 best ordered solvent molecules, ie the solvent molecules of the lowest B factors.
	initial
	residue sol
	sort b
	list 1 40
5) List the residues that are within 4.5 A from OG atom of residue 16.
	initial
	nayb 4.5 16 OG
	list zone

READ

READ the ATOM records from an existing PDB file.

Function: Input

Syntax:
READ file_name [mark] [INITIALIZE]

Note:
1) The mark is a character string, which will be used to substitute the chain names in the input file. (See Start EDPDB for more information).
2) If the INITIALIZE option is used, the original records stored in the program will be overwritten. Otherwise, the new records will be appended to the original ones.
3) The file input with a READ command can not be recovered with the RESET command.

See also: RESET and Start EDPDB

Examples:
1) Read a PDB file, keep the chain name as it is, and overwrite the previously input records.

      read  file_b.pdb  ,  initialize
  or
      read  file_b.pdb  _  initialize
2) Read a PDB file (abcd.pdb) which contains A, B, C and D four chains. The chain names will be changed to S, T, U and V when they are read in.
      read  abcd.pdb stuv

SEQUENCE

Create an output file containing the single character sequence of the selected residues. The three character to one character change is based on the information input with the DFRES command or the pdbstd.dat file.

Function: Output

Syntax:
SEQUENCE [file_name] [format] [C]

Note:
1) The file_name defines an output file name for the sequence. The default file name is the input file name with a .seq file type.
2) The format is a FORTRAN output format for output of the sequence characters. The default format is (5(1X,10A1)).
3) If the optional C is used, the chain name of the first ON atom of each residues will be output as the sequence characters.

See also: DFRES, FILE and SETC

Examples:
1) Output the amino acid sequence of residues 1 - 164 to a file called aa.seq.

      zone 1 - 164
      sequence aa.seq
2) Output the burial-solvent_exposure pattern of the protein molecule.
      initial
      ca
      setc b
           ; B stands for burial, to initialize with
      more
      access
      sumw x
           ; calculate the solvent accessible area of each residue    
      initial
      ca from { x > 20.0 }
           ; select solvent exposed residues
      setc E  ; E stands for exposed 
      ca
      sequence pattern.seq

WRITE

Make a new file to output the current ON atoms. The file will remain opened and APPEND-able until is CLOSEd. The WRITE command also automatically closes the previous output PDB file if exists.

Function: Output

Syntax:
WRITE file_name [(COS, HEADER, title )] [format]

Note:
1) The default file type of the output file is .pdb (for VMS only).
2) If the option COS is used, the CRYST, ORIGX and SCALE information will be written onto the new PDB file.
3) If the option HEADER is used, the header from the 1st input PDB file will be copied to the new file.
4) The title is a text string that is enclosed with a pair of quotation mark (' '). It will be output before other records.
5) The format must be a FORTRAN output format for a text string and two real numbers. It can be used to reformat the output records. The default is the PDB format.
6) The order of the output records can be affected by the SORT command.

See also: APPEND, CELL, CLOSE, CLOSER, MMIG, READ, SHAPE and SORT

Examples:
1) Output the Ca atoms to a PDB file, eg. called Ca.pdb

      initial
      ca
      write Ca.pdb
2) Output the ON atoms to a PDB file and add the CRYST, ORIG and SCALE information.
      cell 61.2 61.2 96.8 90.0 90.0 120.0 1
      write new_coor.pdb cos
3) Output the ON atoms to a PDB file and copy the header from the original (1st) input PDB file.
      write new_coor.pdb header
4) Output the ON atoms to a PDB file and add a title to the PDB file. Note that the double quotation mark is to prevent changing the title to lower cases.
      setenv tolower off
      write new_coor.pdb 'REMARK This is a test PDB file.'
5) Output the ON atoms to a file in which the W, B column is at the beginning of each record.
      write new_coor.dat , '(t20,a,t1,2f8.3)'

Control

Available commands: @macro_file , CLOSE , GOTO , label_statement: , MAXERR , PARAMETER , PAUSE , QUIT , RESET , RETURN , REWIND and SYSTEM .

Control commands are used to change the status of either the program or the input-output files. For example it is possible for a user to call a system command or to create a sub-process without terminating EDPDB.


@macro_file

Read and execute commands from an existing macro file.

Function: Control

Syntax:
@macro_file [parameters]

Note:
1) The macro_file is the file name of a macro. The default file type is .edp.
2) A macro file can call other macro files. The number of nesting levels can be up to 9.
3) If no directory information is used in the file name, `@' will try to call the macro file in the current directory first. If unsuccessful, the file in the default directory will be used if exists. The default directory is defined with SETENV command.
6) A macro file can be used to customize the initial configuration of EDPDB, either as the parameter of the /EDPINI qualifier of EDPDB command in a VMS system, or as the fifth argument of the edpdb program in a unix system.

See also: GOTO, RETURN and SETENV

Examples:
1) The following is an example macro, print.edp, that output the ON atoms to a printer.

      ! print.edp: output the ON atoms to the laser printer
      write tmp.pdb
      close
      system print/que=laser/delete tmp.pdb
2) Run a macro file, test.edp, in the directory [user.edp_lib]. The two parameters will be passed to the macro to replace $(p1) and $(p2).
      @[user.edp_lib]test parameter_1 parameter_2
The user may define his/her own keyword to call this macro. For example,
      alias  my_command @[user.edp_lib]test
      setenv echo off
      my_command parameter_1 parameter_2

CLOSE

Release the output PDB file opened by a WRITE command.

Function: Control

Syntax:
CLOSE

Note: It is allowable to close an unopened file.

See also: APPEND and WRITE

Examples:
1) Print out the current ON atoms

      write tmp.pdb
      close
      system print/delete tmp.pdb

GOTO

Look for the first occurrence of a label statement in a macro file that follows the GOTO statement (in a circular way) and matches the given label. If the search succeeds, it sends the control to the next command of the label statement. If it fails, it closes the macro file and generates an error message.

Function: Control

Syntax:
GOTO label

Note:
GOTO command can only used within a macro.

See also: label_statement: and $(parameter)

Examples:
1) In a macro, one may have the following structure. The program will skip command_set_1, execute command_set_2 and return to the upper level command.

      goto $(p1) ; $(p1) can be label1, label2 or label3
      label1:
      ...(command_set_1)
      return
      label2:
      ...(command_set_2)
      return
      label3:
      ...(command_set_3)
      return
2) Construct a loop running through 1 to 100
      parameter i = 1
      loop:
      ...
      parameter i + 1 100 exit
      goto loop

label_statement:

Put a mark in a macro file for the GOTO command.

function: Control

Syntax:
label:

Note: A label starts with an alphabetic character and is followed by a colon `:'. There is no space allowed before or within the label, (leading space(s) may cause the label statement to be unrecognizable). The label may contain up to 80 characters.

See also: GOTO command and $(parameter)

Examples:
1) In a macro, one may have the following structure. If the $(p1) is assigned to label2, the program will skip command_set_1, execute command_set_2 and return to the upper level.

      goto $(p1)
      label1:
      ...(command_set_1)
      return
      label2:
      ...(command_set_2)
      return
      ...

MAXERR

Set the maximum tolerable number of errors.

Function: Control, Information Syntax:
1) MAXERR
2) MAXERR max_err [(EXIT, QUIT)]

Note:
1) The first form shows the currently defined maximum number of errors as well as the number of currently accumulated errors.
2) The second form sets the value of max_err which is the maximum tolerable number of errors, and initializes the number of currently accumulated errors to zero. The initial default is that max_err=256.
3) If the option EXIT is used, the program will return to the upper level whenever the number of errors is greater than max_err. If the option QUIT is used, the program will quit in the case that the number of errors becomes greater than max_err. The default option is QUIT.
4) To prevent an infinite loop, the number of accumulated errors increases by 1 whenever a REWIND command (with blank option) is used.
5) To prevent an infinite ALIAS substitution, the number of errors increases for each substitution.

Examples:
1) Show the current maximum number of errors.

      maxerr
2) Set the maximum number of errors to 32 and choose EXIT option.
      maxerr 32 exit

PARAMETER

Define or show variables, include the pre-defined variable P1, ... P8 and user-defined variables. The current version allows up to 20 variables, including the eight reserved ones. The name of each variable contains up to eight characters.

Function: Control, Definition, Information

Syntax:
1) PARAMETER [Pn]
2) PARAMETER Pn = [value]
3) PARAMETER Pn ? [prompt_string] [default_value] [(EXIT, REPORT) ]
4) PARAMETER Pn (+, -) step_size limit [(EXIT, REPORT)]
5) PARAMETER Pn group_id (ENTRY, ATOM, RESIDUE, CHAIN, ID, X, Y, Z, W, B) [(EXIT, REPORT) ]

Note:
1) The Pn is one of the P1, ... P8 or a user-defined variable. If defined, the value of Pn will replace the text string $(Pn) in an input statement read from a macro file.
2) The first form shows the current definition of Pn. The default is every currently defined variables.
3) The second form assigns a value to Pn. The value is a character string in general. If the character string contains a space or comma, it should be enclosed with a pair of quotation marks (or other delimiters). Assigning a null string (the default) is equivalent to delete that parameter.
4) The third form inquires a value for Pn when executed. The default prompt_string is "input ". The default_value will be assigned to Pn if the respond to the inquiry is a . The default default_value is the current Pn value. Control-Z (ie. end-of-file) will cause EXIT from the macro or an error status, depending on the option specified. The default option is to REPORT error.
5) In the fourth form, the parameter Pn will be increased or decreased by the step_size which usually is an integer; the limit set the limit condition for the loop control; the default choice at the end of the loop is to REPORT error.
6) The fifth form gets a variable value from the first record of a specified group and delete the record from the group. An empty group gives a limit condition which causes either EXIT or an error report.

See also: @macro_file, $(Pn), ALIAS, REWIND and SETENV DELIMITER

Examples:
1) List the current P1 parameter

      parameter p1
2) Define P1 as number 5.
      parameter p1 = 5
3) Define P2 as a text string (eg. This is a test.).
      setenv tolower off
      parameter p2 = 'This is a test'
4) Inquiry RES_TYPE on the terminal, with ala as the default.
      parameter res_type  ?  'res_type? ' 'ala'
It appears on the terminal as
      res_type? [ala] _____
5) Construct a loop in a macro to handle residues 1 through 100, one residue at a time. The parameter P1 should be initialized as 1, when the macro is called.
      ! beginning of the macro
      ...
      zone $(p1)
      ...
      parameter p1 + 1 100 exit
      rewind
6) Construct a loop in a macro to handle chain a through z, one chain at a time. The parameter P1 should be initialized as a, when the macro is called.
      ! loop thru a to z
      parameter chain = a
      loop:
      chain $(chain)
      ...
      parameter chain + 1 z exit
      goto loop
7) Construct a loop in a macro to loop through every amino acid residues.
      ! loop thru every a.a. residues
      group aa from { ca }
      loop:
      parameter doit aa id
      zone $(doit)
      ...
      goto loop

PAUSE

Pause the program, useful for saving the message on the terminal screen when executing a macro file. Function: Control

Syntax:
PAUSE

Note:
The PAUSE command is deactivated by SETENV INTER NO command. PAUSE will only work in interactive mode.

See also: PARAMETER, SETENV INTER and @macro_file

Examples:
1) In a macro, a PAUSE command can be used to display interesting data, which otherwise will pass the terminal too quickly. For example, a macro containing the following command is handy for taking an overall look at a PDB file.

      ! overall information ...
      zone all
      zone
      pause
      atom 
      pause
      residue 
      pause
      analyze
      pause

QUIT

Terminate EDPDB without writing a new PDB coordinate file.

Function: Control

Syntax:
1) QUIT [SAVE]
2) control-Z (for VMS)
or control-D (for unix)

Note:
1) The optional SAVE will save both the .edp file which contains a list of the completed commands and the .scr file which stores some intermediate result. Both of these two files will be deleted with the default QUIT or EXIT commands.
2) The second form is the same as QUIT SAVE.

Examples:
1) Output the ON atoms to a PDB file called new_coor.pdb, terminate EDPDB and save the .edp file and the .scr file. (Note that the EXIT command will not save the .edp and .scr files).

      write new_coor.pdb
      quit save

RESET

Reread all records from the original PDB file(s). All prior modifications to the records will not be save. The selection switch is set to INCLUDE (ie. ON). The ON atom buffer is initialized to empty.

Function: Input, Control

Syntax:
RESET

See also: INITIAL and READ

Examples:
1) Erase any modification made to the records

      reset

RETURN

Quit from a macro file.

Function: Control

Syntax:
RETURN

Note: It has no effect as a top level command.

See also: GOTO and $(Pn)

Examples:
1) In a macro, one may have the following structure. The real parameter of $(P1) determines which part of the macro will be executed.

      goto $(p1)
      label1:
      ...
      return
      label2:
      ...
      return
      label3:
      ...
      return

REWIND

Rewind the working files

Function: Control

Syntax:
1) REWIND
2) REWIND (EDP, SCR, PDB}

Note:
1) The first form rewinds the currently executed (lowest level) macro file.
2) According to the options chosen, the second form rewinds the recording (.edp) file, the scratch (.scr) file or the currently opened PDB file, respectively.

See also: FILE and WRITE

Examples:
1) Create a macro, test.edp, of a loop structure.

      ! test.edp : a loop macro
      ...
      parameter P1 + 1 $(p2) exit
      rewind
One can run this macro 100 times, starting from (P1 = 1) and ended when (P1 > 100).
      @test 1 100

SYSTEM

Execute a system command (eg. a DCL command in a VMS system or a c-shell command in a unix system) or create a subprocess without terminating EDPDB.

Function: Control

Syntax:
SYSTEM [[WAIT] system_command]

Note:
If the option WAIT is chosen, EDPDB will wait until the sub-process finishes. This can be used to synchronize related calculations.

Examples:
1) Spawn a subprocess

      system
2) Print out the ON atoms.
      write tmp.pdb
      close
      system print/delete tmp.pdb
3) Run a VMS command file (eg. test.com), and wait until it finishes.
      system wait @test

Definition

Available commands: ALIAS , CELL , DFAB , DFABC , DFABCD , DFBRG , DFCA , DFNEWXYZ , DFMAIN , DFRES and SYMMETRY .

One philosophy of EDPDB is that the user should be allowed to teach the program what to do, and EDPDB provides the algorithms about "how to do it". For example, the command DFABCD can be used to define a calculation of backbone or side chain torsion angles or any types of pseudo torsion angles, eg. a torsion angles formed with four sequential Ca atoms. As a general purpose program, EDPDB allows the user to overwrite the default definitions of the program, which might be too specific in some cases. For example, a user may use the command DFMAIN N CA C O CB to overwrite the default definition of DFMAIN N CA C O.


ALIAS

Create a User-Defined command leading Keyword (UDK in short). A UDK has higher priority than the build-in command leading keywords.

Function: Definition, Information

Syntax:
1) ALIAS
2) ALIAS xxxx
3) ALIAS xxxx yyyy
or ALIAS xxxx := yyyy
4) ALIAS xxxx ''
or ALIAS xxxx :=

Note:
1) The xxxx stands for a UDK which is a character-string of up to 8 characters; and the yyyy stands for a text-string of up to 60 characters, which will replace the UDK during command interpretation.
2) The first form lists the current available UDKs. The second form shows the current definition of the UDK specified. The third form defines a new UDK, or overwrites the old one (if one exists) with the new definition. And the fourth form deletes the specified UDK by assigning an empty string to it.
3) Up to ten keywords can be defined simultaneously. Over ten definitions will overwrite the earlier defined alias permutatively.
4) To prevent a looped definition, during command interpretation, each UDK substitution increases the number of accumulated errors by one. Error message will be given if the number of error exceeds max_err, (see MAXERR command).
5) Since a UDK has higher priority, it may prohibit the function of some built-in commands. For example, a user-defined keyword cake will deactivate built-in EDPDB commands C and CA until the definition of cake is deleted. One way to avoid this problem is to add a prefix, eg. an underscore `_' or a dollar sign $, to the UDK.

See also: PARAMETER

Examples:
1) An example macro to define keywords for calling some VMS commands.

      ! vms.edp
      alias dire      system wait dire
      alias type      system wait type/page
      alias edit      system wait edit/edt
      alias show      system wait show
      alias copy      system wait copy
  or
      ! vms.edp
      dire :=         system wait dire
      type :=         system wait type
      edit :=         system wait edit
      show :=         system wait show
      copy :=         system wait copy
2) List the PDB files in the current directory.
      alias dire system wait directory
      dire *.pdb

CELL

Define the cell parameters and the convention used to align the (xyz) Cartesian coordinate systems relative to the crystallographic axes, a, b and c.

Function: Definition, Information

Syntax:
1) CELL
2) CELL [a b c alpha beta gama] [convention#]

Note:
1) The first form displays the current cell parameter information.
2) The second form defines the cell parameters. It also initializes the current symmetry information. The default value is the corresponding old value, if it exists.
3) If no cell parameters have been defined when they are required by the program, the cell parameters from the 1st input PDB file will be used, if they exist.

See also: RTN, SHDF and SYMMETRY

Convention#
The convention number is an integer between 1 and 8.

1: x//a*, y//b, z//(a* X b)
2: x//(b X c*), y//b, z//c*
3: x//(b* X c), y//b*, z//c
4: x//a*, y//(c X a*), z//c
5: x//a, y//(c* X a), z//c*
6: x//a, y//b*, z//(a X b*) -- #6 is the convention used by FRODO
7: x//(a-b), y//(a+b-2c), z//(a+b+c) -- only for R+ lattice
8: x//(a-c), y//(2b-a-c), z//(a+b+c) -- only for R- lattice

Examples:
1) Display the current cell parameters and the alignment convention.

      cell
2) To define the cell parameters (eg. of T4 lysozyme P3(2)21 crystal form) and the alignment convention x//a*, y//b, z//(a* X b).
      cell 61.2 61.2 96.8 90.0 90.0 120.0 1

DFAB

Define a template for distance pair search.

Function: Definition, Information

Syntax:
1) DFAB
2) DFAB atom_a atom_b [reg_a reg_b] [status_a status_b] [Dmin Dmax]

Note:
1) The first form shows the current AB definition.
2) The atom_x is the atom name (eg. Ca, OG).
3) The reg_x is the relative registration number, which is an integer. The default is 0.
4) The status_x is either a T (stands for true) or an F (stands for false). It determines whether the calculation is based on an ON atom for the corresponding position or not. The default is T, which means an ON atom is required for the calculation.
5) Only will the distance smaller than the Dmax and larger than the Dmin be listed. The default Dmin and Dmax are 0.0 and 99.0.

See also: AB, DFABC, DFABCD, DISTANCE and SHDF

Examples:
1) Define every N, CA atoms in the same residue as a distance pair.

      dfab n ca
2) Define the Ca atomS in the (i)th and (i+1)th residues as a distance pair.
      dfab ca ca 0 1
3) Calculate the distance from the O atom in the (i)th residue to the N atom in the (i+4)th residue, and list the result if the O atom is selected as an ON atom and the distance is between 2.0 and 3.5 A.
      dfab o n 0 4 t f 2.0 3.5
      atom o n
      ab

DFABC

Define a template for an angle group search.

Function: Definition, Information

Syntax:
1) DFABC
2) DFABC atom_a atom_b atom_c [reg_a reg_b reg_c] [status_a status_b status_c] [Amin Amax]

Note:
1) The first form shows the current ABC definition.
2) The atom_x is the atom name (eg. Ca, OG).
3) The reg_x is the relative registration number, which is an integer. The default is 0.
4) The status_x is either a T (stands for true) or an F (stands for false). It determines whether the calculation is based on an ON atom for the corresponding position or not. The default is T, which means an ON atom is required for the calculation.
5) Only will the angle smaller than the Amax and larger than the Amin be selected. The default Amin and Amax are 0.0 and 180.0 degrees.

See also: ABC, DFAB, DFABCD and SHDF

Examples:
1) Define every N, CA and CB atoms in the same residue as an angle group.

      dfabc n ca cb 0 0 0 t t t 0.0 180.0
2) Define the CA atoms in the (i-1)th, (i)th and (i+1) residues as an angle group.
      dfabc ca ca ca -1 0 1
3) Calculate the angles formed with Ca-C-O atoms in the same residue and larger than 135.0 degrees
      dfabc Ca C O  ,,,  ,,,  135.0 180.
      atom Ca C O
      abc

DFABCD

Define a template for a torsion_anglesearch.

Function: Definition, Information

Syntax:
1) DFABCD
2) DFABCD atom_a atom_b atom_c atom_d [reg_a reg_b reg_c reg_d] [status_a status_b status_c status_d] [Tmin Tmax]

Note:
1) The first form shows the current ABCD definition.
2) The atom_x is the atom name (eg. Ca, OG).
3) The reg_x is the relative registration number, which is an integer. The default is 0.
4) The status_x is either a T (stands for true) or an F (stands for false). It determines whether the calculation is based on an ON atom for the corresponding position or not. The default is T, which means an ON atom is required for the calculation.
5) Only the angles that are smaller than the Tmax and larger than the Amin will be selected. The default Tmin and Amax are - 180.0 and 180.0 degrees.

See also: ABCD, DFAB, DFABC, RTN and SHDF

Examples:
1) Define every N, CA, CB and CG atoms in the same residue as a torsion_anglegroup (ie. chi-I) which ranges between 0.0 and 360.0 degrees.

      dfabcd n ca cb cg 0 0 0 0 t t t t 0.0 360.0
2) Define the CA atoms in the (i)th, (i+1)th, (i+2)th and (i+3)th residues as a torsion_anglegroup.
      dfabcd ca ca ca ca 0 1 2 3
3) Calculate the peptide phi torsion angles which range between (- 90.0) and 0.0 degrees.
      dfabcd  c n ca c 0 1 1 1  ,,,,  -90.0 0.0
      atom c n ca c
      abcd

DFBRG

Define a template for a BRIDGE group search.

Function: Definition, Information

Syntax:
DFBRG atom_w atom_x atom_y atom_z [Rw reg_w Rz reg_z] [status_w status_x status_y status_z] [Dmin Dmax Amin Amax Tmin Tmax] [(WXYZ, ZWXY)] [skip]

Note:
1) The atom_w etc. are atom names (eg. Ca, OG).
2) Rw and Rz are either X or Y, indicating whether the atom_w or atom_z is registered relative to atom_x or atom_y. The default is X.
3) The reg_w and reg_z are (integer) registration numbers of atom_w and atom_z. The default is 0.
4) The status_w etc. are either T (stands for true) or F (stands for false). It determines whether the calculation is based on an ON atom for the corresponding position or not. The default is T, which means an ON atom at that position is required for the calculation.
5) Dmin, Dmax, Amin, Amax, Tmin, Tmax are the selection criteria of the X-Y distance, the W-X-Y angle and the W-X-Y-Z or Z-W-X-Y torsion angle. The default values are 1.0, 4.0 Å, 90.0, 120.0 degrees, and 0.0, 360.0 degrees respectively.
6) The torsion angle is defined as W-X-Y-Z if WXYZ option is used or by default; it can also be defined as Z-W-X-Y using the ZWXY option.
7) The integer skip is the minimum atom_x - atom_y distance in terms of the residue number in the input PDB file. The default is zero.

See also: BRIDGE, DFAB, DFABC and DFABCD

Examples:
1) Define a bridge of disulfide bond, and list out all the bridges. By default, it will looking for interatomic distance (X-Y) between 1.0 and 4.0 Å.

      dfbrg cb sg sg cb x 0 y 0 
      residue cys
      bridge
3) Define a bridge of hydrogen bond formed between N and O atoms in the zone 1 - 60.
      dfbrg c n o ca x -1 x 0  ,,,,  2.3  3.5  100.0  140.0 150.0 210.0 
           ; The 'x -1' indicates that the C atom (atom_w) belongs
           ; to the previous residue of the N atom. 
           ; The 'x 0' indicates that the CA atom (atom_z) belongs
           ; to the residue of the N atom.
      main 1 - 60
      bridge
           ; list all the hydrogen bonds, which have N-O bond 
           ; length between 2.3 and 3.5 Å, C(-1)-N-O angle 
           ; between 120.0(+/-)20.0 degrees, and 
           ; C(-1)-N-O-Ca torsion angle (default option WXYZ) 
           ; between 180.0(+/-)30.0 degrees.

DFCA

Redefine CA atom type.

Function: Definition, Information

Syntax:
1) DFCA
2) DFCA atom_name

Note:
The first form display the current Ca definition.

See also: AVB, CA, DFMAIN, RMSW, SHDF and SUMW

Examples:
1) Define the O5' atom as CA for a DNA molecule.

      dfca O5'
2) Define the N atom as CA, and store the result of the AVB command to the x field of the N atom records.
      dfca n
      avb x

DFNEWXYZ

Define the rule to create the coordinates of new points.

Function: Definition, Information

Syntax:
1) DFNEWXYZ
2) DFNEWXYZ atom_a atom_b atom_c [reg_a reg_b reg_c] [status_a status_b status_c] [distance] [angle] [torsion_angle]

Note:
1) The first form shows the current definition.
2) The atom_x is the reference atom name; the reg_x is the relative registration number (eg. the default value 0 0 0 indicates that the three atoms are in the same residue); the status_x indicates whether the reference atom needs to be selected as an ON atom in order to perform the calculation. The default is t t t (t stands for logical true).
3) The distance is the distance between the new_atom and atom_a; the angle is defined as new_atom - atom_a - atom_b; and torsion_angleis defined as new_atom - atom_a - atom_b - atom_c. The default distance, angle and torsion_angle are zeros.

See also: NEWXYZ

Examples:
1) Define the rule of creating a Tyr from a Phe, ie. the rule of create the OH atom in the Tyr.

           dfnewxyz Cz Ce1 Cd1 0 0 0 t t t 1.38 120.0 180.0
2) Define the coordinate of possible water molecules that bind to the carbonyl oxygens of a solvent exposed helix.
      dfnewxyz o c ca 0 0 0 t t t 2.93 122.1 23.0
      initial 
      write   sol.pdb 
           ; open an empty PDB file 
           ; to store the new coordinates
      ... (select solvent exposed helices)
      setenv tolower off
      seta HOH
           ; change the atom name in the text string 
           ; to HOH, which will be used for 
           ; the new record                
      newxyz

DFMAIN

Redefine main chain atom types.

Function: Definition, Information

Syntax:
1) DFMAIN
2) DFMAIN atom_1 [atom_2 ... atom_20]

Note:
The first form shows the current main chain definition.

See also: DFCA, MAIN, SHDF and SIDE

Examples:
1) Define backbone atoms including Cb atoms as the main chain atoms.

      dfmain n ca c o cb
2) Select N, Ca and C atoms
      dfmain n ca c
      main

DFRES

Define atom order in a given residue and a single character name for that residue. This information is used by the SORT and SEQUENCE commands.

Function: Definition, Information

Syntax:
1) DFRES
2) DFRES res_type [:id] [(atom_names)]

Note:
1) The first form lists the current definition of residues.
2) EDPDB reads the DFRES definition from a file called pdbstd.dat in the current directory or in the edp_data: directory for the VMS version (or the edp_data/ for the unix version, when the information is needed.
3) The user's definition is always given priority over the definition read from the pdbstd.dat file.

See also: FILE, SEQUENCE, SHDF and SORT

Examples:
1) Define residue ALA. In the following example, the ala is the residue type to be defined, :a means that in a sequence file a residue of this type appears as a character a; and the following n ca c o cb are the five atom names that the residue ala should contain; it also indicates the order of the atoms appearing in a sorted list.

      dfres ala :a n ca c o cb
2) Define residue SOL as anything. The default shortcut name is u which stands for Unknown.
      dfres sol 
3) List the current residue definitions
      dfres
4) Make a pattern file of the hydrophobicity of the peptide. The :n stands for a non-polar residue, and :p stands for a polar residue.
      dfres  ala :n
      dfres  asp :p
      dfres  cys :n
      ...
      dfres  tyr :n
      initial
      ca
      sequence hydr_patt.seq

SYMMETRY

Input one symmetry operator in the International Crystallography Table format.

Function: Definition, Information

Syntax:
1) SYMMETRY
2) SYMMETRY symmetry_operator
3) SYMMETRY PUNCH file_name [O]

Note:
1) The first form displays the current symmetry operators. The second form inputs one symmetry operator. The third form is similar to the first form, except a copy of the displayed symmetry operators will be written to a text file.
2) CELL parameter information is required to input symmetry operators. The symmetry information is accumulated with each input symmetry card. A CELL command initializes the symmetry information.

See also: CELL, MMIG, MOVECENTER, POLAR and SHDF

Examples:
1) Input the symmetry operators of space group P3(2)21. Each symmetry operator card includes the leading keyword SYMMETRY, and three character strings separated with space or comma from each other.

      ! space group P3(2)21      
      symmetry x,y,z
      symmetry -y,x-y,z+2/3
      symmetry y-x,-x,z+1/3
      symmetry y,x,-z
      symmetry -x,y-x,-z+2/3
      symmetry x-y,-y,-z+1/3
2) Display the current symmetry information, including the symmetry operator number which is used to specify the operator in other commands (eg. MMIG).
           symmetry
In the output, the operator marked with an asterisk can be used as an elementary operator, ie. all other operators can be created from a set of elementary operators. The ord information tell that how many times the operator needs to operate on itself to get a unitary operator. If an operator is labelled as the product of two other operators, it indicates that the operator has not been input and is listed just for information.

3) Use elementary symmetry operators to create the operators for the full space group. For example, the following commands create a file of symmetry operators of space group P6.

      cell 100 100 100 90.0 90.0 120.0 1
      symmetry +y, -x+y, +z
      symmetry punch P6.edp
      cell , , , , , , ,
           ; initialize the SYMMETRY information
      @p6
           ; input the P6 symmetry operators 
4) Create a P6 symmetry file for program 'O'.
      cell 100 100 100 90.0 90.0 120.0 1
      @p6
      symmetry punch P6.sym o

Miscellaneous

Available commands: comment , C , FILE , HELP , PROMPT , RECALL , SETENV and SHDF .

This type of command is designed to make EDPDB more user-friendly and/or to provide the user with help when needed.


comment

Any text-string following a semicolon (;) or an exclamation mark (!) in an input statement will be considered as a comment and is omitted during command interpretation.

Function: Miscellaneous

Syntax:
1) ; comment
2) ! comment
3) command ;comment
4) command !comment
Note:
1) The first two forms are called comment statement, and the other two are called commands with comments.
2) A comment statement starting with a semicolon in a macro file will not be echoed. A comment statement starting with an exclamation mark will be echoed if the echo option is set to ON.

See also: SETENV and command interpretation


C

Clear the terminal screen.

Function: Miscellaneous

Syntax:
C


FILE

Show the file names which are currently used.

Function: Information, Control

Syntax:
1) FILE
2) FILE SCR file_name
2) FILE LOG file_name

Note:
1) The first form lists the currently used files. For the input PDB files, only the names of the first two and the last one will be listed.
2) Using the SCR option, the intermediate result will be redirected to a new scratch file, so that the old scratch file can be saved for other purposes.
3) Using the LOG option, the result that is usually piped to the sys$output will be redirected to a file.

See also: ACCESS, DISTANCE, HELP, READ, SHDF, SORT and @macro_file

Examples:
1) List the currently used files.

      file
2) Close the old scratch (.scr) file, say a.scr, and pipe the scratch output to a file called junk.scr. Then one can type the old scratch file.
      file scr junk.scr
      system wait type/page a.scr
3) Redirect some displayed result to a file tmp.log, and then switch back to the terminal.
      file log a.log
      ...
      file log tt:    ! for VMS terminal

HELP

Call EDPDB on-line help service.

Function: Information

Syntax:
1) HELP [category command_leading_keyword]
2) command_leading_keyword /?

Note:
1) In the first format, if no search information is specified, a "level by level" systematic search will start.
2) For the VMS version of EDPDB, the system help-library utility is used to run the on-line help. For the unix version, a separate program is used to mimic the VMS system utility. It may not have the full functions of the VMS version of on-line help.

See also: FILE, SETENV and SHDF

Examples:
1) To get help on selection commands.

      help selection
2) To get help on selection command CA.
      help selection ca
  or
      CA  /?
3) Assume that one wants to get help on a command named DISTANCE, for example, however it is not clear to which category the DISTANCE command belongs. The following command, which searches the command level in the on-help library, may be helpful. Note that the asterisk is part of the syntax of the VMS help-library utility.
      help  *  distance

PROMPT

One may reset the prompt, which consists of up to nine characters.

Function: Miscellaneous

Syntax:
PROMPT prompt_character_string

Examples:
1) Set the prompt to the text string CHK> followed by a space.

      setenv tolower off
      prompt 'CHK> '
2) Use the prompt to send messages, eg. from a macro file.
      prompt 'ok_1> '

RECALL

Recall a command, for saving typing.

Function: Miscellaneous Syntax:
1) RECALL
2) RECALL record_#
3) up/down arrows (for the VMS version only)

Note:
1) The first form lists up to 16 previously input legal commands (the command RECALL is not included), which may or may not be completed. The second form will repeat a command in the history list.
2) The up/down arrows can recall a previously typed-in text string no matter the consequence of that input. The recalled text string can be edited, just like a DCL command in the DCL environment.

Examples:
1) List the command input history.

      recall
2) Recall a command which was not completed. For example, one wants to find the (4.5 Å) neighboring atoms of the CB atom of residue B40 from molecule A.
      nayb 4.5 B40 CB from molA
           ; errmsg: wrong group/zone information
           ; The problem is that molA is undefined.
      initial
      group molA from { chain A }
      recall -3
           ; repeat 'nayb 4.5 B40 CB from molA'.

SETENV

Change environmental variables.

Function: Definition, Information

Syntax:
1) SETENV
2) SETENV variable
3) SETENV variable new_variables

Note:
The first form shows the current values. The second form resets the value to the default. And the third form sets the user specified value to the variable.

Available variables include the following. DELIMITER , ECHO , EDP_DATA , INTER , TOLOWER , WILDCARD and WINDOW_SIZE .


DELIMITER

Set the parameter delimiter.

Syntax:
SETENV DELIMITER [one_character]

Note:
The default delimiter is a single quotation mark (').

Examples:
1) Assume that we have a macro file, read.edp, which accepts a text string as its parameter. We can use the delimiter to enclose a text string containing spaces or commas as a single parameter, which otherwise would be considered as multiple parameters.

      @read 'this is a test.'
2) If a quotation mark (') needs to be included in the text string, the delimiter has to be changed to something else.
      setenv delimiter #
      @read #it's a test.#

ECHO

Turn the echo option ON/OFF for input commands from a macro file.

Syntax:
SETENV ECHO [(ON, OFF)]

Note:
The default option is ON.

Examples:
1) Turn the echo option off for the input from a macro.

      setenv echo off
      @a_well_tested_macro
2) Turn the echo option on for the input from a macro.
      setenv echo on
      @a_macro_to_be_tested

EDP_DATA

A user may setup his/her owner directory to keep the .edp macro files. By default, EDPDB reads an .edp file from the predefined directory: edp_data: for the VMS version and edp_data/ for the unix version, if it can not be found in the user's current directory. However, a user may change back and forth between the program-default and one's own default directory using this edp_data option.

Syntax:
SETENV EDP_DATA directory_name

Example:

      setenv edp_data [user.my_edp_lib]
           ; set default to the user specified directory
      @my_macro
      ...
      setenv edp_data
           ; back to the program default directory
      @an_edpdb_macro
      ...

INTER

EDPDB can run interactively or batch mode. The VMS version program will check the current working mode automatically, and use it as the default. The default mode for the unix version is interactive. To speed up the calculation, an interactive user may switch between the interactive and non-interactive modes. By doing this, the program will turn on/off HELP, LIST and PAUSE, as well as some screen outputs.

Syntax:
1) SETENV INTER
2) SETENV INTER ON
3) SETENV INTER OFF

Note:
The first form sets the mode to the default, without typing the scratch file on the screen. The second form sets the mode to the default, and will type the scratch file on the screen if the default mode is interactive. The third form sets the mode to 'non-interactive'.

Examples:
1) Displaying the scratch file can be time consuming, especially when it contains a large number of records. Therefore, the user may deactivate the display and read the file later.

      setenv inter off   ; deactivate the display
      ...
      setenv inter on    ; type the .scr file.
      ...

TOLOWER

By default, EDPDB converts all the characters in an input statement to lower case before interpreting the commands. All the build-in keyword are in lower case. The user can change the default so that the program will not perform the conversion to the input statement.

Syntax:
SETENV TOLOWER (ON, OFF)

Examples:
1) In the unix system, a file name is case sensitive. To read a file named, eg. UPPER_CASE.FILE, the tolower parameter should be set to off.

      setenv tolower off
      read UPPER_CASE.FILE
      setenv tolower on 

WILDCARD

Set the wildcard, which is a single character and is used for example in the SHDF and ATOM commands.

Syntax:
SETENV WILDCARD [one_character]

Note:
The default wildcard is an asterisk (*).

Examples:
1) Assume that, in the input PDB file, one of the atom name is O5*. If we want to select this specific atom type and do not mix it with other atom types such as O5 or O5A, the default wildcard (*) must be changed.

      setenv wildcard %
      atom O5*

WINDOW_SIZE

Set the number of lines per window. The default is 16 lines.

Syntax:
SETENV WINDOW_SIZE [number_of_lines_per_window]

Examples:
1) Set the window size to 40 lines.

      setenv window_size 40
2) Set the window size to the default value.
      setenv window_size

SHDF

Show the values defined by DFXXXX command.

Function: Information

Syntax:
SHDF [(*, MAIN, CA, AB, ABC, ABCD, BRG, RES, NEWXYZ, CELL, SYMM)]

Note:
Dfxxxx series commands without following any parameters will display the corresponding definition too.

See also: FILE and SETENV

Examples:
1) To show the status of the ON/OFF switch

      shdf
2) To show the current definitions, use the wildcard (which is an asterisk `*' by default).
      shdf *
3) To show the current definition of the torsion angle
      shdf abcd


Macros

Some example .edp files, which can be found in the edp_data directory:
acc.edp , avb.edp , chi.edp , helix.edp , phipsi.edp , sumw.edp and symmetry.edp .

The .edp macro file is used to save typing for a repeated calculation. The default file type of the command file is .edp (for both the VMS and the unix versions). The macros listed in this section may also be used as templates. The .edp file saved using the QUIT SAVE command may also be modified as a template macro file. The following .edp files are available in the edp_data: directory for the VMS version of EDPDB, and in the edp_data/ directory for the unix version. If one does not have a file of the identical name in the current directory, the following examples can be used directly.


acc.edp

Calculate the solvent accessible area of the given residue in the context of the rest part of the protein.

Syntax:
@acc res_id

Examples:
1) Calculate the solvent accessible area of residue 99.

      @acc 99

avb.edp

Calculate the average B of the each residue, its main chain atoms and its side chain atoms, store these values in the x, y, z fields of the CA atom.

Syntax:
@avb

Examples:
1) Make a PDB format file of the B factor information.

      @avb
      write avb.pdb

chi.edp

Calculate the chi-I, chi-Ib (if exists) and chi-II of each residue, store them in the x, y, z fields of the CA atom.

Syntax:
@chi

Examples:
1) Make a PDB format file of the chi angle information.

      @chi
      write chi.pdb

helix.edp

Calculate the phi, psi angles of each residue, and write a chain name `H' to the residues which are of alpha conformation.

Syntax:
@helix


phipsi.edp

Calculate the phi, psi angles of each residue, store them in x, y fields of the CA atom. The result can be output to a PDB format file using WRITE command.

Syntax:
@phipsi

Examples:
1) Make a PDB format file of the phipsi information.

      @phipsi
      write phipsi.pdb

sumw.edp

Calculate the summation of W value for each residue, its main chain atoms and its side chain atoms, and store them in the x, y, z fields of the CA atom.

Syntax:
@sumw

Examples:
1) Make a PDB format file of the solvent accessible area information.

      initial
      more from { ca }
      access
      @sumw
      write saa.pdb

symmetry.edp

This macro contains symmetry operators for most of the space groups that a protein crystallographer may need. It may also be used an example file for using the GOTO/label:/RETURN statements. Syntax:
@symmetry space_group_name

Examples:
1) To input symmetry operators for space group P212121.

      @symmetry  p212121

Glossary

Available commands: $(Pn) , command interpretation , {subcommand} , Special characters and unix_version .

$(Pn)

$(Pn) is not a command. One can use $(P1), ... $(P8) as virtual parameters when writing a macro (.edp) file. While calling a macro file, one may supply the parameters after the file name. The first parameter will substitute $(P1), and so on. In this way $(p1), $(p2) ... $(p8) can be defined. An alternative way to define $(Pn) is to use the PARAMETER command. A $(Pn) definition will hold until being re-defined.

One predefined parameter, file1, is initially defined to be the name of the (1st) input PDB file by EDPDB. Other parameters can be defined with the PARAMETER command.

On the terminal, one can see how the $(parameter) is substituted with the real parameter within a macro. A comma following a space can be used to retain the old definition of a parameter while other parameters are being changed. A text string enclosed within a pair of single quotation marks (' ') is considered as a single parameter.

$(Pn) can only be used in a macro.

See also: PARAMETER and @macro_file

Examples:
1) The following commands form a macro file. It can be used to calculate the chi-I angle of any amino acid residue which has a CG atom.

      ! chi_cg.edp
      initial
      dfabcd n ca cb cg 0 0 0 0 t t t t -180. 180.
      residue $(p1)
      abcd
For example, it can be used to calculate the chi-I angles of all Leu residues or all Phe residues. Note that $(p1) is substituted with leu and phe, respectively.
      @chi_cg leu
      @chi_cg phe

command interpretation

1) An input EDPDB command is first converted into lower case text string, unless the environmental parameter tolower has been set to off explicitly by the user.

2) For each input line, the command input is terminated by the first occurred semicolon (;), the exclamation mark (!) or .

3) If the command is read from a macro file, the $(Pn) is substituted with the real parameter if proper. The substitution is repeated until there is no $(Pn) in the input statement or the number of substitution exceeds nine (9). It is recommended to not use cross reference among the $(P1) ... $(P8). If the command is read from the system input device, this step is skipped.

4) The leading keyword is checked against the user-defined keyword list, followed by keyword-alias substitution if proper. This step is repeated until the first keyword is not in the list of user-defined keywords.

5) It is checked whether a macro file is to be called. If yes, $(Pn) parameters may be defined using the input that follows the macro file name. Then the macro file is opened, and the command interpretation finishes. If the answer is no, it continues.

6) The keyword is checked against the built-in dictionary, and a command is issued if proper.

7) The command will be hung up if a {subcommand} is met where it is proper.

8) The subcommand will go through steps 4-7. When the subcommand finishes, it returns the control to its parent command, and the parent command continues.

9) After the command finishes or some error is encountered, the program is ready for the next input.


{subcommand}

A subcommand is usually a selection command. The combination of a subcommand and its parent-command is called a nested command. The selection result of the subcommand is piped to its parent command. For most parent commands, the effect of records piped from a subcommand is the same as the effect of all input records on the non-nested command. A logic AND selection can be made from this kind of nested command. The exceptions are the GROUP and MORE commands; for these two commands, the records piped to them act the same as the ON atoms do to the non-nested GROUP and MORE.

Syntax:
parent_command FROM {subcommand}

Note:
1) A subcommand should be enclosed with a pair of braces ({ }). The subcommand connects with its parent_command through a keyword FROM.The keyword FROM plus a subcommand is one form of so called FROM phrases. In other forms of FROM phrases, a group_id or zone information can be used to replace the subcommand. The information input after the keyword FROM in a FROM phrase will be interpreted as a group_id first; if the corresponding group does not exist, it will be interpreted as zone information; if unsuccessful, it will be interpreted as a subcommand.
2) A subcommand may have its own subcommand. The maximum number of nest levels is 10.
3) A subcommand is completely independent of the current ON atoms, while the top level parent command may modify the ON atom buffer.
4) A subcommand can not repeat *any* of the upper level commands, otherwise the result of the recursive commands is unpredictable.

See also: GROUP

Examples:
1) Select Ca atoms of Gly residue.

      Ca from { residue gly }
  or
      initial
      residue gly
      group tmp
      initial
      ca from tmp
2) Define the backbone atoms as a group named bb.
      group bb from { main }
  or
      initial
      main
      group bb

3) Select all amino acid residues. more from { ca } or initial ca more

4) Select ca atoms from the group tmp.
      ca from tmp
  or
      ca from { load tmp }

5) Select Cb atoms from residues a1 through a99. atom cb from a1 - a99 ; the input of a1 - a99 is interpreted ; as zone information, assuming that ; there is no group called a1. or atom cb from { zone a1 - a99 } or initial zone a1 - a99 group tmp initial atom cb from tmp

6) Select the sulfur atoms of Methionine which are of B < 20.0.
      atom S* from { residue Met from { B < 20.0 }}
  or
      initial
      b < 20.0
      group tmp
      initial
      residue Met from tmp
      group tmp
      initial
      atom s* from tmp

Special characters

@
excuting a macro file.

:
define a single character symbol for a residue (see DFRES ); define a label statement.

'
delimiter of a parameter.

< and >
less than and greater than in X,Y,Z, W and B commands.

{ }
enclose a subcommand.

/?
ask for HELP on a specific command.

=
define PARAMETER.

:=
assignment (define ALIAS).

*
wildcard in the selection command ATOM and VMS on-line help.

; and !
start comment.

$(...)
virtual parameter.

/
short cuts for FROM to introduce a {subcommand}.

-
a hyphen, short cuts for ` TO ' in the zone information; used as a decrement sign in a PARAMETER command.

+
specify an unusually large search radius in the MMIG command; used as an incremental sign in a PARAMETER command; used in a relative or a complex residue_ID.

_
an underscore. It is used to replace a space, eg. within an atom name or in a complex zone definition. In a READ statement, in the position of a chain name, an underscore deactivates the corresponding chain name substitution.


unix_version

The unix version of EDPDB (u95a) runs differently from the VMS version (V95A) in the following aspects.

1) In the unix version, to input a file name of upper case letters, the environmental parameter tolower should be to off.

2) There is no default file type for the unix version of EDPDB, except for the macro (.edp) files.

3) In the unix version, the up/down arrows command-recall utility does not work.

4) There is no automatic job mode checking in the unix version. The default job mode is interactive.


Index

The current available commands are
AB , ABC , ABCD , ACCESS , ALIAS , ANALYZE , APPEND , ATOM , AVB , AXIS ,
B , BLANK , BRIDGE ,
CA , CELL , CHAIN , C , CLIQUE , CLOSE , CLOSER , CORRELATION ,
DFAB , DFABC , DFABCD , DFBRG , DFCA , DFMAIN , DFNEWXYZ , DFRES , DIFF , DISTANCE ,
EULER , EXCLUDE , EXIT , EXTRACT ,
FILE , GOTO , GROUP , HARKER , HELP ,
INCLUDE , INITIAL , JIGGLE , LIST , LOAD ,
MAIN , MATCH , MAXERR , MMI , MMIG , MMIR , MOMENTINERTIA , MORE , MOVECENTER ,
NAYB , NAYBR , NEWXYZ , OVERLAY ,
PARAMETER , PAUSE , PERMUTE , PLANAR , POLAR , PROMPT , QUIT ,
RATIO , READ , RECALL , RESET , RESIDUE , RETURN , REWIND , RMSW , RTN ,
SEQUENCE , SET , SETA , SETB , SETC , SETE , SETENV , SETI , SETR , SETT , SETW , SHAPE , SHDF , SIDE , SORT , SUMW , SWAP , SWITCHWB , SYMMETRY , SYSTEM ,
UPDATE , VECTOR , VOLUME , W , WRITE , X,Y,Z and ZONE .

Othere available information:
comment ,
command interpretation ,
label_statement: ,
@macro_file ,
$(Pn) ,
Special characters ,
{subcommand} ,
unix_version .


About the program

1) The program package of EDPDB V95A contains
INSTALL.COM -- VMS command file to install EDPDB.

SETUP.COM -- VMS command file for logical definition etc. Check the directory for EDPDB! Excuting this command file is required for running EDPDB. One may include @[...]setup.com in his/her login.com.

EDPDB.CLD -- VMS command definition, called by setup.com

EDPDB_V95A.HLP -- VMS help text file.

EDPDB.SOU -- The Fortran source code.
EDPDB.INC -- repeated code
EDP_DIM.INC -- array dimensions
EDP_DATA.INC -- repeated code
EDP_FILE.INC -- repeated code

ACC.DAT -- Van de Waals radii for atoms in the protein molecule
PDBSTD.DAT -- atom name dictionary for protein molecules

.... there are more macros (.edp files) available on requist.

2) This V95A version of EDPDB is FREE for ACADEMICS.

Downloading the program EDPDB implies the acceptance of the normal rules of conduct concerning freely available software, which can be summarized simply by "Do not do to this software what you would not like to be done to your own software".

To be more specific:

a) Not to redistribute, patent or sell EDPDB;
b) Not to modify or delete the names of authors in the programs (Modifications may be introduced in the programs, but the name of the person making the changes should be added to the program history list);
c) To inform the author of EDPDB of any useful modifications, so that these may be made available to the crytallographic community;
d) To properly acknowledge the use of the software EDPDB in any publications resulting from its use.

Copyright 1995, Cai X.-J. Zhang, All Rights Reserved.