LIBCHECK - library manager.

Version 3.1.1 /05.07.2000/ - FEATURES


CONTENTS


Reference

    Author:    A.A.Vagin
                email: alexei@ysbl.york.ac.uk

    Reference:

    A. A. Vagin, G. N. Murshudov and B. V. Strokopytov
    BLANC: the program suite for protein crystallography 
    J. Appl. Cryst. (1998). 31, 98 - 102

Complete monomer's description

Complete monomer's description defines the chemical structure of a monomer which doesn't depends on the conformation of monomer. Complete description consists of the list of atoms, atom's types, bonds, angles, tortions, chiralities, planarities. This description can be used for refinement, graphics, validation. The extended mmCIF format makes the dictionary self-understandable, simple to correct and to add new information. See an example of complete description.

Minimal monomer's description

Minimal description is the list of atoms, atom's types, bonds and types of bonds. Complete description can be derived from minimal by using energetic parameter dictionary. There are several kinds of minimal description:

  1. the list of atoms, atom's element names, bonds. In this case it is very important to include all H-atom to the atom's list.
  2. the list of atoms, atom's chemical types, bonds.
  3. the list of atoms, atom's element names, bonds and types of bonds. This is the best way to describe a monomer. See an example of minimal description. Type of bonds can be 'single', 'double' and 'triple'. Also, as option, it is possible to define the chiralities.

Dictionary

Dictionary contains information about:

  1. the chemical structure of the monomers (atom's types, bond's lengths, angles, chirality, planarity),
  2. the tree like structure of each monomer,
  3. chemical structure of links between monomers (peptide bond, disulfide bridges,...),
  4. chemical details of the modifications of monomers (e.g. termini of polypeptide chains,...)
  5. energetic parameters.

Some monomer has "minimal description : list of atom, atom's types and bonds. Complete description can be derived from minimal. See details in Dictionary of monomers

What program doing

Action depends on keywords and input file which are used. Some cases can be used only for special purpose.

  1. check description for some monomer ( keyword MON) in the libraries and create new correct description and coordinate file.

    Use keywords:

    MON, FILE_L, HFLAG, REF, ANGLE, NODIST

    in this case keyword COOR doesn't work.

  2. check all monomers in input file PDB or CIF or CSD (keywords: FILE_PDB, FILE_CIF, FILE_CSD )

    Use keywords:

    FILE_L, HFLAG, REF, ANGLE, NODIST, COOR MON,
  3. add two libraries (keywords: FILE_L, FILE_L2). The other keywords don't work.
  4. create the index of distributed libraries - special case.
  5. read PDB dictionary of ligands - special case.

In case of checking monomer description first of all program checks a presence of description of monomers.

Scheme of the check of the presence of description of monomers.

Global search is an algorithm to matching two description.
Make_new means to create new complete description.

         +------------------------------------+
         ! Look at the name in the dictionary !
         ! Is that in the dictionary ?        !
         +------------------------------------+
                !                     !
             no !                     ! yes
                v                     v
       +---------------+        +----------------------+
       ! Global search !   yes  !  Minimal description !
       !   matching ?  !--->----!         ?            !
       +---------------+        +----------------------+
               !                   !           ! 
            no !                   ! yes       ! no
               !                   !           v
               v                   v           ! 
               !                   !           !
               !                   !           !               
             +-----------------------+         v               
             !       Make_new        !         !               
             +-----------------------+         !               
                        !                      !               
                        !                      !               
                        v                      v               
                     +-----------------------------+
                     !  Create coordinate file     !
                     !        Refinement           !
                     !  Create PostScript file     !
                     +-----------------------------+

Make new ligands description

If the description of a monomer is absent in the library program will try to create library description and write it to special file for further inclusion to the library. Program creates PostScript files with the pictures of new monomers.

How program creates new description:

  1. create the list of bonds using input coordinates or takes it from the minimal description. Also takes from the minimal description atom chemical types, bond types and list of chiralities (if it is possible).
  2. creates the list of chirality centres and planes using coodinates and atom chemical types and bond types.
  3. defines the rings.
  4. defines atomic chemical types using the lista of bonds, rings and actual angles.
  5. checks and corrects the list of chiralities and planes using atomic chemical types
  6. corrects the list of planes trying to find common.
  7. create tree like structure of monomer.
  8. add H-atoms to the list of atoms.
  9. add H-atoms to the planes.
  10. get ideal values of parameters from energetic library.
  11. calculates observed values of parameters.
  12. without coordinate file generates and refines coordinates.
  13. writes to files new library description, coordinates and creates PostScript picture.

Input files

libcheck uses as input CIF or PDB_file and distributed libraries:

      mon_lib_com.cif   - description links and modifications
      mon_lib_prot.cif  - amino-acids
      mon_lib_na.cif    - DNA/RNA
      mon_lib_sug.cif   - sugars
      mon_lib_met.cif   - metals
      mon_lib_1.cif     - small molecules
      mon_lib_2.cif     -  - - - - -
       . . . . . . . . 
      ener_lib.cif,     - energetic parameters

Program can read additional library of monomers.

Output files

     1. with atomic coordinates  
     2. library description : standard values of bonds, angles, 
        torsion angles, chirality centres, plan groups.
        / file extension "lib"/
     3. PostScript file with the pictures of new monomer.

Dialogue and Keywords

Dialogue is a preferable way of running LIBCHECK. Keywords with short explanations are printed by the program at the beginning of execution. However, the program automatically produces a batch command file during dialogue. This feature might be useful to repeate calculations.

To get started with LIBCHECK, first you have to answer a question:

       Do you want to have FILE-DOCUMENT /makecif.doc/ ? /<N>/Y/A :

       N - means without DOC-file
       Y - with new contents
       A - means to keep old contents and add new information
          with DOC-file program creates batch file: libcheck.bat
    DOC  Y

After that you can use keywords in any order, if you want to use its.

Keywords:

FILE_L < >

additional library, " " means without this file

MON < >

gives information about this monomer. If MON = * , gives the list of all monomers in the library.

FILE_PDB < >

input PDB_file ," " means without this file

FILE_DIC < >

input PDB_DICT_file ," " means without this file

FILE_CIF < >

input CIFile ," " means without this file

FILE_CSD < >

input CSD CIFile," " means without this file

HFLAG <Y>/A/N

Y - use the hydrogen atoms where they are

A - use all hydrogen atoms (i.e. create if they absent)

N - without hydrogen atoms

IND <N>/Y

Y means to create index of "mon_lib.cif". output file: "new_mon_lib_ind.cif"

FILE_O <libcheck>

output files /library,coords,ps/ ( name without extention)

FILE_L2 < >

additional library (FILE_L) will be added to this library. In this case program performs only adding.

ANGLE <0>

rotation angle for PostScript picture ( around X )

LIST <M>/S/L

short output, L - long, M - medium

REF <Y>/N

Y means the refinement of new monomer ( with keyword MON only).

NODIST <N>/Y

Y means to read only non-distributed library (keyword FILE_L)

COOR <N>/Y

Y means to use observed values of parameters from coordinate file instead of value from libraries.

Makecif

MAKECIF
    - restrain maker.
           uses as input CIF or PDB_file and libraries mon_lib.cif,
           ener_lib.cif, symlib.blc and creates files:
           1. with atomic coordinates, symmetry and unit cell
              parameters. / file extension "crd"/ 
           2. with chemical structure description and atomic
              scattering structure factors. / file extension "str"/
           3. with restraints: standard values of bonds, angles, 
              torsion angles, chirality centres, plan groups, its
              actual values in the structure. / file extension "rst"/

Modcheck

MODCHECK
    - restrain checker.
           reads CIFiles of coordinates and restraints,
           gives information about restraints (writes to DOC_file),
           converts writes CIFile to PDB_file.

Emin

EMIN
    - energy minimization / or B_factor regularization / 
           minimizes the energy of structure using the restraints files
           from program MAKECIF.
  
           E_total = E_bond + E_angle + E_tors + E_vdw + E_hb
                                  
                 E_bond  = Sum ( Kb * (Bobs     -Bidl)**2    )
                 E_angle = Sum ( Ka * (ANGLEobs -ANGLEidl)**2)
                 E_tors  = Sum ( Kt * (PHIobs   -PHIidl)**2  )
                 E_vdw   = Lennard-Jones 6-12 potential
                 E_bond  = 10-12 potential

Installation

 See  Installation for MAKECIF

Example of Batch file

# --------------------------------
libcheck <<stop
# --------------------------------
# first line :   "_DOC  <N>,Y,A "
#   N - means without DOC-file: "libcheck.doc"
#   Y - create new file or rewrite if it is old file
#   A - means to keep old contents and add new information
#
_DOC  y
#
#
#      Keywords:
#
_MON  j1
_FILE_L  ttt.lib
_file_o new
_END
stop

Example of minimal description

data_comp_list
loop_
_chem_comp.id
_chem_comp.name
_chem_comp.group
_chem_comp.desc_level
j1   'j1'  'non-polymer'   M
#
data_comp_j1
#
loop_
_chem_comp_atom.comp_id                 
_chem_comp_atom.atom_id                 
_chem_comp_atom.type_symbol
 j1  P  P
 j1  OPP  O
 j1  O1P  O
 j1  O2P  O
 j1  O5*  O
 j1  N1   N
 j1  C6   C
 j1  C2   C
 j1  O2   O
 j1  N3   N
 j1  C4   C
 j1  O4   O
 j1  C5   C
 j1  C5A  C
 j1  C2*  C
 j1  C5*  C
 j1  C4*  C
 j1  O4*  O
 j1  C1*  C
 j1  C3*  C
 j1  O3*  O
loop_
_chem_comp_bond.comp_id                 
_chem_comp_bond.atom_id_1               
_chem_comp_bond.atom_id_2
_chem_comp_bond.type
 j1  P   OPP  single
 j1  P   O1P  double
 j1  P   O2P  single
 j1  P   O5*  single
 j1  O5* C5*  single
 j1  N1  C6   single
 j1  N1  C2   single
 j1  N1  C1*  single
 j1  C6  C5   double
 j1  C2  O2   double
 j1  C2  N3   single
 j1  N3  C4   single
 j1  C4  O4   double
 j1  C4  C5   single
 j1  C5  C5A  single
 j1  C2* C1*  single
 j1  C2* C3*  single
 j1  C5* C4*  single
 j1  C4* O4*  single
 j1  C4* C3*  single
 j1  O4* C1*  single
 j1  C3* O3*  single
loop_
_chem_comp_chir.comp_id
_chem_comp_chir.id
_chem_comp_chir.atom_id_centre
_chem_comp_chir.atom_id_1
_chem_comp_chir.atom_id_2
_chem_comp_chir.atom_id_3
_chem_comp_chir.volume_sign
 j1       chir_01  C4*  C5*  O4*  C3*     positiv

Example of complete description

data_comp_list
loop_
_chem_comp.id
_chem_comp.three_letter_code
_chem_comp.name
_chem_comp.group
_chem_comp.number_atoms_all
_chem_comp.number_atoms_nh
_chem_comp.desc_level
j1       j1  'j1                                  ' non-polymer        36  21 .
#
# --- DESCRIPTION OF MONOMERS ---
#
data_comp_j1
#
loop_
_chem_comp_atom.comp_id
_chem_comp_atom.atom_id
_chem_comp_atom.type_symbol
_chem_comp_atom.type_energy
_chem_comp_atom.partial_charge
 j1            O4   O    O         0.000
 j1            C4   C    CR6       0.000
 j1            N3   N    NR16      0.000
 j1            HN3  H    HNR6      0.000
 j1            C2   C    CR6       0.000
 j1            O2   O    O         0.000
 j1            C5   C    CR6       0.000
 j1            C5A  C    CH3       0.000
 j1            H5A3 H    HCH3      0.000
 j1            H5A2 H    HCH3      0.000
 j1            H5A1 H    HCH3      0.000
 j1            C6   C    CR16      0.000
 j1            H6   H    HCR6      0.000
 j1            N1   N    NR6       0.000
 j1            C1*  C    CH1       0.000
 j1            H1*  H    HCH1      0.000
 j1            C2*  C    CH2       0.000
 j1            H2*2 H    HCH2      0.000
 j1            H2*1 H    HCH2      0.000
 j1            O4*  O    O2        0.000
 j1            C4*  C    CH1       0.000
 j1            H4*  H    HCH1      0.000
 j1            C3*  C    CH1       0.000
 j1            H3*  H    HCH1      0.000
 j1            O3*  O    OH1       0.000
 j1            HO3* H    HOH1      0.000
 j1            C5*  C    CH2       0.000
 j1            H5*1 H    HCH2      0.000
 j1            H5*2 H    HCH2      0.000
 j1            O5*  O    O2        0.000
 j1            P    P    P         0.000
 j1            O1P  O    OP        0.000
 j1            O2P  O    OH1       0.000
 j1            HO2P H    HOH1      0.000
 j1            OPP  O    OH1       0.000
 j1            HOPP H    HOH1      0.000
loop_
_chem_comp_tree.comp_id
_chem_comp_tree.atom_id
_chem_comp_tree.atom_back
_chem_comp_tree.atom_forward
_chem_comp_tree.connect_type
 j1       O4   n/a  C4   START
 j1       C4   O4   C5   .
 j1       N3   C4   C2   .
 j1       HN3  N3   .    .
 j1       C2   N3   O2   .
 j1       O2   C2   .    .
 j1       C5   C4   C6   .
 j1       C5A  C5   H5A1 .
 j1       H5A3 C5A  .    .
 j1       H5A2 C5A  .    .
 j1       H5A1 C5A  .    .
 j1       C6   C5   N1   .
 j1       H6   C6   .    .
 j1       N1   C6   C1*  .
 j1       C1*  N1   O4*  .
 j1       H1*  C1*  .    .
 j1       C2*  C1*  H2*1 .
 j1       H2*2 C2*  .    .
 j1       H2*1 C2*  .    .
 j1       O4*  C1*  C4*  .
 j1       C4*  O4*  C5*  .
 j1       H4*  C4*  .    .
 j1       C3*  C4*  O3*  .
 j1       H3*  C3*  .    .
 j1       O3*  C3*  HO3* .
 j1       HO3* O3*  .    .
 j1       C5*  C4*  O5*  .
 j1       H5*1 C5*  .    .
 j1       H5*2 C5*  .    .
 j1       O5*  C5*  P    .
 j1       P    O5*  OPP  .
 j1       O1P  P    .    .
 j1       O2P  P    HO2P .
 j1       HO2P O2P  .    .
 j1       OPP  P    HOPP .
 j1       HOPP OPP  .    END
 j1       N1   C2   .    ADD
 j1       C2*  C3*  .    ADD
loop_
_chem_comp_bond.comp_id
_chem_comp_bond.atom_id_1
_chem_comp_bond.atom_id_2
_chem_comp_bond.type
_chem_comp_bond.value_dist
_chem_comp_bond.value_dist_esd
 j1       OPP  P       single      1.699    0.020
 j1       O1P  P       double      1.610    0.020
 j1       O2P  P       single      1.699    0.020
 j1       P    O5*     single      1.610    0.020
 j1       O5*  C5*     single      1.426    0.020
 j1       N1   C6      single      1.337    0.020
 j1       N1   C2      single      1.350    0.020
 j1       C1*  N1      single      1.465    0.020
 j1       C6   C5      double      1.390    0.020
 j1       O2   C2      double      1.330    0.020
 j1       C2   N3      single      1.337    0.020
 j1       N3   C4      single      1.337    0.020
 j1       C4   O4      double      1.330    0.020
 j1       C5   C4      single      1.384    0.020
 j1       C5A  C5      single      1.506    0.020
 j1       C2*  C1*     single      1.524    0.020
 j1       C2*  C3*     single      1.524    0.020
 j1       C5*  C4*     single      1.524    0.020
 j1       C4*  O4*     single      1.426    0.020
 j1       C3*  C4*     single      1.524    0.020
 j1       O4*  C1*     single      1.426    0.020
 j1       O3*  C3*     single      1.432    0.020
 j1       HOPP OPP     single      0.967    0.020
 j1       HO2P O2P     single      0.967    0.020
 j1       H6   C6      single      1.083    0.020
 j1       HN3  N3      single      1.040    0.020
 j1       H5A1 C5A     single      1.059    0.020
 j1       H5A2 C5A     single      1.059    0.020
 j1       H5A3 C5A     single      1.059    0.020
 j1       H2*1 C2*     single      1.092    0.020
 j1       H2*2 C2*     single      1.092    0.020
 j1       H5*1 C5*     single      1.092    0.020
 j1       H5*2 C5*     single      1.092    0.020
 j1       H4*  C4*     single      1.099    0.020
 j1       H1*  C1*     single      1.099    0.020
 j1       H3*  C3*     single      1.099    0.020
 j1       HO3* O3*     single      0.967    0.020
loop_
_chem_comp_angle.comp_id
_chem_comp_angle.atom_id_1
_chem_comp_angle.atom_id_2
_chem_comp_angle.atom_id_3
_chem_comp_angle.value_angle
_chem_comp_angle.value_angle_esd
 j1       O4   C4   N3    120.000    3.000
 j1       O4   C4   C5    120.000    3.000
 j1       N3   C4   C5    120.000    3.000
 j1       C4   N3   HN3   120.000    3.000
 j1       C4   N3   C2    120.000    3.000
 j1       HN3  N3   C2    120.000    3.000
 j1       N3   C2   O2    120.000    3.000
 j1       N3   C2   N1    120.000    3.000
 j1       O2   C2   N1    120.000    3.000
 j1       C4   C5   C5A   120.000    3.000
 j1       C4   C5   C6    120.000    3.000
 j1       C5A  C5   C6    120.000    3.000
 j1       C5   C5A  H5A3  109.470    3.000
 j1       C5   C5A  H5A2  109.470    3.000
 j1       C5   C5A  H5A1  109.470    3.000
 j1       H5A3 C5A  H5A2  109.470    3.000
 j1       H5A3 C5A  H5A1  109.470    3.000
 j1       H5A2 C5A  H5A1  109.470    3.000
 j1       C5   C6   H6    120.000    3.000
 j1       C5   C6   N1    120.000    3.000
 j1       H6   C6   N1    120.000    3.000
 j1       C6   N1   C1*   120.000    3.000
 j1       C6   N1   C2    120.000    3.000
 j1       C1*  N1   C2    120.000    3.000
 j1       N1   C1*  H1*   109.470    3.000
 j1       N1   C1*  C2*   109.470    3.000
 j1       N1   C1*  O4*   109.470    3.000
 j1       H1*  C1*  C2*   108.340    3.000
 j1       H1*  C1*  O4*   109.470    3.000
 j1       C2*  C1*  O4*   109.470    3.000
 j1       C1*  C2*  H2*2  109.470    3.000
 j1       C1*  C2*  H2*1  109.470    3.000
 j1       C1*  C2*  C3*   111.000    3.000
 j1       H2*2 C2*  H2*1  107.900    3.000
 j1       H2*2 C2*  C3*   109.470    3.000
 j1       H2*1 C2*  C3*   109.470    3.000
 j1       C1*  O4*  C4*   111.800    3.000
 j1       O4*  C4*  H4*   109.470    3.000
 j1       O4*  C4*  C3*   109.470    3.000
 j1       O4*  C4*  C5*   109.470    3.000
 j1       H4*  C4*  C3*   108.340    3.000
 j1       H4*  C4*  C5*   108.340    3.000
 j1       C3*  C4*  C5*   111.000    3.000
 j1       C4*  C3*  H3*   108.340    3.000
 j1       C4*  C3*  O3*   109.470    3.000
 j1       C4*  C3*  C2*   111.000    3.000
 j1       H3*  C3*  O3*   109.470    3.000
 j1       H3*  C3*  C2*   108.340    3.000
 j1       O3*  C3*  C2*   109.470    3.000
 j1       C3*  O3*  HO3*  109.470    3.000
 j1       C4*  C5*  H5*1  109.470    3.000
 j1       C4*  C5*  H5*2  109.470    3.000
 j1       C4*  C5*  O5*   109.470    3.000
 j1       H5*1 C5*  H5*2  107.900    3.000
 j1       H5*1 C5*  O5*   109.470    3.000
 j1       H5*2 C5*  O5*   109.470    3.000
 j1       C5*  O5*  P     120.500    3.000
 j1       O5*  P    O1P   108.200    3.000
 j1       O5*  P    O2P   109.500    3.000
 j1       O5*  P    OPP   109.500    3.000
 j1       O1P  P    O2P   109.500    3.000
 j1       O1P  P    OPP   109.500    3.000
 j1       O2P  P    OPP   109.500    3.000
 j1       P    O2P  HO2P  120.000    3.000
 j1       P    OPP  HOPP  120.000    3.000
loop_
_chem_comp_tor.comp_id
_chem_comp_tor.id
_chem_comp_tor.atom_id_1
_chem_comp_tor.atom_id_2
_chem_comp_tor.atom_id_3
_chem_comp_tor.atom_id_4
_chem_comp_tor.value_angle
_chem_comp_tor.value_angle_esd
_chem_comp_tor.period
 j1       CONST_1  O4   C4   N3   C2     180.000    0.000   0
 j1       CONST_2  C4   N3   C2   O2     180.000    0.000   0
 j1       CONST_3  C4   N3   C2   N1       0.000    0.000   0
 j1       CONST_4  O4   C4   C5   C6     180.000    0.000   0
 j1       var_1    C4   C5   C5A  H5A1   180.000   20.000   1
 j1       CONST_5  C4   C5   C6   N1       0.000    0.000   0
 j1       CONST_6  C5   C6   N1   C1*    180.000    0.000   0
 j1       CONST_7  C5   C6   N1   C2       0.000    0.000   0
 j1       var_2    C6   N1   C1*  O4*    180.000   20.000   1
 j1       var_3    N1   C1*  C2*  C3*    180.000   20.000   3
 j1       var_4    N1   C1*  O4*  C4*    180.000   20.000   1
 j1       var_5    C1*  O4*  C4*  C5*    180.000   20.000   1
 j1       var_6    O4*  C4*  C3*  O3*    180.000   20.000   3
 j1       var_7    O4*  C4*  C3*  C2*      0.000   20.000   3
 j1       var_8    C4*  C3*  O3*  HO3*   180.000   20.000   1
 j1       var_9    O4*  C4*  C5*  O5*    180.000   20.000   3
 j1       var_10   C4*  C5*  O5*  P      180.000   20.000   1
 j1       var_11   C5*  O5*  P    OPP    180.000   20.000   1
 j1       var_12   O5*  P    O2P  HO2P   180.000   20.000   1
 j1       var_13   O5*  P    OPP  HOPP   180.000   20.000   1
loop_
_chem_comp_chir.comp_id
_chem_comp_chir.id
_chem_comp_chir.atom_id_centre
_chem_comp_chir.atom_id_1
_chem_comp_chir.atom_id_2
_chem_comp_chir.atom_id_3
_chem_comp_chir.volume_sign
 j1       chir_01  C4*  C5*  O4*  C3*     positiv
 j1       chir_02  C1*  N1   C2*  O4*     positiv
 j1       chir_03  C3*  C2*  C4*  O3*     positiv
loop_
_chem_comp_plane_atom.comp_id
_chem_comp_plane_atom.plane_id
_chem_comp_plane_atom.atom_id
_chem_comp_plane_atom.dist_esd
 j1       plan-1    N1      0.020
 j1       plan-1    C6      0.020
 j1       plan-1    C2      0.020
 j1       plan-1    C1*     0.020
 j1       plan-1    N3      0.020
 j1       plan-1    C4      0.020
 j1       plan-1    C5      0.020
 j1       plan-1    O4      0.020
 j1       plan-1    H6      0.020
 j1       plan-1    HN3     0.020