Add initial support for python bindings
[alexxy/gromacs.git] / share / top / residues.dtd
1 <!--                                                              -->
2 <!-- GROMACS Data type description (DTD). 
3
4                 This source code is part of
5  
6                  G   R   O   M   A   C   S
7  
8           GROningen MAchine for Chemical Simulations
9  
10                         VERSION 3.1
11  
12  Copyright (c) 1991-2002
13  BIOSON Research Institute, Dept. of Biophysical Chemistry
14  University of Groningen, The Netherlands
15  
16  This program is free software; you can redistribute it and/or
17  modify it under the terms of the GNU General Public License
18  as published by the Free Software Foundation; either version 2
19  of the License, or (at your option) any later version.
20  
21  If you want to redistribute modifications, please consider that
22  scientific software is very special. Version control is crucial -
23  bugs must be traceable. We will be happy to consider code for
24  inclusion in the official distribution, but derived work must not
25  be called official GROMACS. Details are found in the README & COPYING
26  files - if they are missing, get the official version at www.gromacs.org.
27  
28  To help us fund GROMACS development, we humbly ask that you cite
29  the papers on the package - you can find them in the top README file.
30  
31  Do check out http://www.gromacs.org , or mail us at gromacs@gromacs.org .
32  
33  And Hey:
34  GROningen Mixture of Alchemy and Childrens' Stories
35
36                                                             
37  David van der Spoel 07/2001, 03/2002                        
38  The authorative version of this document can be found at    
39  http://www.gromacs.org/gromacs3.1.dtd                       
40  and also in the library directory of your local GROMACS     
41  installation.                                                
42  
43  Please use the following formal public identifier to identify it:
44      "-//RESIDUES//DTD Residues XML V1.0//EN"
45
46  <!DOCTYPE residues PUBLIC "-//RESIDUES//DTD Gromacs XML V3.1.0//EN"
47                     "http://www.gromacs.org/residues.dtd"
48                    [...]>
49 -->
50
51 <!-- This file defines the structure of the information necessary make
52      a molecule from simple building blocks (called residues). The
53      algorithm processing a sequence (or pdb file) should follow these
54      steps:
55      1. Do all the modification (moddef)
56      2. Add all the links between residues
57      3. Generate hydrogens
58      4. Generate angle and torsion descriptions                     
59 -->
60
61 <!ELEMENT macromolecules (residues,macromolecule*)>
62
63 <!ELEMENT residues (residue*,linkdef*,moddef*)>
64
65 <!ELEMENT residue (ratom+,rbond*,rangle*,rimproper*,rdihedral*,raddh*)>
66 <!ATTLIST residue
67           restype  ID    #REQUIRED
68           longname CDATA #REQUIRED>
69 <!-- We can not use ID here for atom names since there is no -->
70 <!-- hope to make them unique, e.g. all amino acids have the -->
71 <!-- same name for backbone atoms.                           -->
72 <!ELEMENT ratom EMPTY>
73 <!ATTLIST ratom
74           name  CDATA #REQUIRED>
75 <!ELEMENT rbond EMPTY>
76 <!ATTLIST rbond
77           a1 CDATA #REQUIRED
78           a2 CDATA #REQUIRED>     
79 <!ELEMENT rangle EMPTY>
80 <!ATTLIST rangle
81           a1 CDATA #REQUIRED
82           a2 CDATA #REQUIRED
83           a3 CDATA #REQUIRED>     
84 <!ELEMENT rimproper EMPTY>
85 <!ATTLIST rimproper
86           a1 CDATA #REQUIRED
87           a2 CDATA #REQUIRED
88           a3 CDATA #REQUIRED
89           a4 CDATA #REQUIRED>
90 <!ELEMENT rdihedral EMPTY>
91 <!ATTLIST rdihedral
92           a1 CDATA #REQUIRED
93           a2 CDATA #REQUIRED
94           a3 CDATA #REQUIRED
95           a4 CDATA #REQUIRED>
96 <!-- Definition of how to add (hydrogen) atoms to molecules  -->
97 <!-- using a certain geometry (see GROMACS manual)           -->
98 <!ELEMENT raddh EMPTY>
99 <!ATTLIST raddh
100           hclass   ( polar | aromatic | aliphatic ) 
101           addgeom  CDATA #REQUIRED
102           addnum   CDATA #REQUIRED
103           addto    CDATA #REQUIRED>
104           
105 <!-- Define a covalent link between two residues, given in restyp -->
106 <!-- and the atoms are given as well (atomprev and atomnext)      -->
107 <!-- A reference distance between the atoms does also have to be  -->
108 <!-- given in nm (but that does not have to be used).             -->
109 <!ELEMENT linkdef EMPTY>
110 <!ATTLIST linkdef
111           linktype ID     #REQUIRED
112           restype  IDREFS #REQUIRED
113           atomprev CDATA  #REQUIRED
114           atomnext CDATA  #REQUIRED
115           refdist  CDATA  #REQUIRED>
116
117 <!-- Description of termini, etc. or maybe other modifications too -->
118 <!-- It is important that the implementation deletes first, and    -->
119 <!-- adds atoms afterwards                                         --> 
120 <!ELEMENT moddef (moddelete*,modadd*,modrepl*)>
121 <!ATTLIST moddef
122           modtype ID    #REQUIRED>
123 <!ELEMENT moddelete EMPTY>
124 <!ATTLIST moddelete
125           delname CDATA #REQUIRED>
126 <!ELEMENT modreplace EMPTY>
127 <!ATTLIST modreplace
128           oldname CDATA #REQUIRED
129           newname CDATA #REQUIRED>
130 <!ELEMENT modadd EMPTY>
131 <!ATTLIST modadd
132           addname CDATA #REQUIRED
133           addbond CDATA #REQUIRED>
134
135 <!-- Generic stuff to define proteins etc. as built up from blocks -->
136 <!-- such as amino acids and HEME etc.                             -->
137 <!ELEMENT macromolecule (mblock+,mlink*,mmod*)>
138 <!ATTLIST macromolecule
139           mname ID #REQUIRED>
140 <!ELEMENT mblock EMPTY>
141 <!ATTLIST mblock
142           resname   ID    #REQUIRED
143           restype   IDREF #REQUIRED
144           protonated ( no | polar | all ) "polar">
145 <!ELEMENT mlink EMPTY>
146 <!ATTLIST mlink
147           mlinktype  ( peptide | disulphide | special ) "peptide"
148           resname   IDREFS #REQUIRED>
149 <!ELEMENT mmod EMPTY>
150 <!ATTLIST mmod
151           resname IDREF #REQUIRED
152           modtype IDREF #REQUIRED>
153           
154 <!-- Generic stuff to define proteins etc. as built up from blocks -->
155 <!-- such as amino acids and HEME etc.                             -->
156 <!ELEMENT macromolecule (mblock+,mlink*,mmod*)>
157 <!ATTLIST macromolecule
158           mname ID #REQUIRED>
159 <!ELEMENT mblock EMPTY>
160 <!ATTLIST mblock
161           resname   ID    #REQUIRED
162           restype   IDREF #REQUIRED
163           protonated ( no | polar | all ) "polar">
164 <!ELEMENT mlink EMPTY>
165 <!ATTLIST mlink
166           mlinktype  ( peptide | disulphide | special ) "peptide"
167           resname   IDREFS #REQUIRED>
168 <!ELEMENT mmod EMPTY>
169 <!ATTLIST mmod
170           resname IDREF #REQUIRED
171           modtype IDREF #REQUIRED>
172