# Please go to the end to see rules of defining an atom  

============================================================================================
                        Defination begin
============================================================================================
--------------------------------------------------------------------------------------------
WILDATOM XX C N O S P
WILDATOM XA O S
WILDATOM XB N P
WILDATOM XC F Cl Br I
WILDATOM XD S P
-------------------------------------------------------------------------------------------- 
 f1  f2    f3  f4  f5  f6  f7  f8      		f9          
-------------------------------------------------------------------------------------------- 
//3-membered ring atom
ATD  cx    *   6   4   *   *   [RG3]            &
//4-membered ring atom
ATD  cy    *   6   4   *   *   [RG4]            &
//other sp3 C
ATD  c3    *   6   4   &
//C=O or C=S
ATD  c     *   6   3   *   *   [2DL]   		(XA1) 	&
ATD  c     *   6   3   *   *   [1DB,0DL]  	(XA1)	&
ATD  c     *   6   3   *   *   [3sb]   		(XA1)	&
ATD  cz    *   6   3   *   *   *                (N3,N3,N3)  &
//pure aromatic atom that can form an aromatic single bond 
ATD  cp    *   6   3   *   *   [AR1,1RG6]       (XX[AR1],XX[AR1],XX[AR1]) &
//pure aromatic atom 
ATD  ca    *   6   3   *   *   [AR1]    &
// sp2 C of conjugated ring systems
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (C3(C3))	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (C3(C2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (C3(XB2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XB2(XB2))	& 
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XB2(C2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XB2(C3))	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (C3[sb'])	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XB2[sb'])	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XD3[sb',db])	&
ATD  cc    *   6   3   *   *   [sb,db,AR2]       (XD4[sb',db])	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (C3(C3))	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (C3(C2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (C3(XB2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XB2(XB2)) 	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XB2(C2))	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XB2(C3))	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (C3[sb'])	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XB2[sb'])	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XD3[sb',db])	&
ATD  cc    *   6   3   *   *   [sb,db,AR3]       (XD4[sb',db])	&
// sp2 C of conjugated chain systems
ATD  ce    *   6   3   *   *   [sb,db]          (C3[SB'])	&
ATD  ce    *   6   3   *   *   [sb,db]          (C2[SB'])	&
ATD  ce    *   6   3   *   *   [sb,db]          (XB2[SB'])	&
ATD  ce    *   6   3   *   *   [sb,db]          (XD3[SB',db])	&
ATD  ce    *   6   3   *   *   [sb,db]          (XD4[SB',db])	&
//sp2 carbon in a 3-membered ring
ATD  cu    *   6   3   *   *   [RG3]            &
//sp2 carbon in a 4-membered ring
ATD  cv    *   6   3   *   *   [RG4]            &
//other sp2 C
ATD  c2    *   6   3   &
// sp C of conjugated systems
ATD  cg    *   6   2   *   *   [sb,tb]          (C2[SB'])	&
ATD  cg    *   6   2   *   *   [sb,tb]          (C3[SB'])	&
ATD  cg    *   6   2   *   *   [sb,tb]          (N1[SB'])	&
ATD  cg    *   6   2   *   *   [sb,tb]          (XB2[SB'])	&
// other sp C 
ATD  c1    *   6   2   &
ATD  c1    *   6   1   &
ATD  hn    *   1   1   *   *   *       		(N)         	& 
ATD  ho    *   1   1   *   *   *       		(O)         	&
ATD  hs    *   1   1   *   *   *       		(S)     	& 
ATD  hp    *   1   1   *   *   *       		(P)     	& 
ATD  hx    *   1   1   *   *   *       		(C(N4)) 	& 
ATD  hw    *   1   1   *   *   *       		(O(H1))  	&
ATD  h3    *   1   1   *   3   *       		(C4)     	&
ATD  h2    *   1   1   *   2   *       		(C4)     	&
ATD  h1    *   1   1   *   1   *       		(C4)     	& 
ATD  hc    *   1   1   *   *   *       		(C4)    	& 
ATD  h5    *   1   1   *   2   *       		(C3)	&     
ATD  h4    *   1   1   *   1   *       		(C3)   	& 
ATD  ha    *   1   1   &
ATD  f     *   9   &
ATD  cl    *   17  &
ATD  br    *   35  &      
ATD  i     *   53  & 
// sp2 P of conjugated ring systems
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (C3(C3))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (C3(C2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (C3(XB2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XB2(C3))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XB2(C2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XB2(XB2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (C3[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (C2[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XB2[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XD3[sb',db])	&
ATD  pc    *   15  2   *   *   [sb,db,AR2]       (XD4[sb',db])	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (C3(C3))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (C3(C2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (C3(XB2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XB2(C3))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XB2(C2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XB2(XB2))	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (C3[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (C2[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XB2[sb'])	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XD3[sb',db])	&
ATD  pc    *   15  2   *   *   [sb,db,AR3]       (XD4[sb',db])	&
// sp2 P of conjugated chain systems
ATD  pb    *   15  2   *   *   [AR1]            &
ATD  pe    *   15  2   *   *   [sb,db]          (C3[sb'])	&
ATD  pe    *   15  2   *   *   [sb,db]          (C2[SB'])	&
ATD  pe    *   15  2   *   *   [sb,db]          (XA1[SB'])	&
ATD  pe    *   15  2   *   *   [sb,db]          (XB2[SB'])	&
ATD  pe    *   15  2   *   *   [sb,db]          (XD3[SB',DB])	&
ATD  pe    *   15  2   *   *   [sb,db]          (XD4[SB',DB])	&
ATD  p2    *   15  2   &  
ATD  p2    *   15  1   &  
ATD  px    *   15  3   *   *   [db]    		(XB2[sb'])      & 
ATD  px    *   15  3   *   *   [db]    		(C3[sb'])       &
ATD  px    *   15  3   *   *   [db]    		(XD3[sb',db])   &    
ATD  px    *   15  3   *   *   [db]    		(XD4[sb',db])   &    
ATD  p4    *   15  3   *   *   [db]    		(XA1)      	& 
ATD  p3    *   15  3   &  
ATD  py    *   15  4   *   *   [db]    		(XB2[sb'])      &
ATD  py    *   15  4   *   *   [db]    		(C3[sb'])      	&
ATD  py    *   15  4   *   *   [db]    		(XD3[sb',db])  	&    
ATD  py    *   15  4   *   *   [db]    		(XD4[sb',db])  	&    
ATD  p5    *   15  4   &  
ATD  p5    *   15  5   &  
ATD  p5    *   15  6   &  
ATD  n     *   7   3   *   *   *       		(C3(XA1))  	& 
ATD  n4    *   7   4   &
ATD  no    *   7   3   *   *   *       		(O1,O1)		& 
ATD  na    *   7   3   *   *   [AR1.AR2.AR3]    &
ATD  nh    *   7   3   *   *   *       		(XX[AR1.AR2.AR3]) & 
ATD  nh    *   7   3   *   *   *       		(C3[DB]) 	& 
ATD  nh    *   7   3   *   *   *       		(N2[DB])	& 
ATD  nh    *   7   3   *   *   *       		(P2[DB])	& 
ATD  n3    *   7   3   &
ATD  nb    *   7   2   *   *   [AR1]            &
// sp2 N of conjugated ring systems
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (C3(C3))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (C3(C2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (C3(XB2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XB2(C3))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XB2(C2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XB2(XB2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (C3[sb'])	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XB2[sb'])	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XD3[sb',db])	&
ATD  nc    *   7   2   *   *   [sb,db,AR2]       (XD4[sb',db])	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (C3(C3))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (C3(C2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (C3(XB2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XB2(C3))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XB2(C2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XB2(XB2))	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (C3[sb'])	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XB2[sb'])	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XD3[sb',db])	&
ATD  nc    *   7   2   *   *   [sb,db,AR3]       (XD4[sb',db])	&
// sp2 N of conjugated chain systems
ATD  ne    *   7   2   *   *   [sb,db]          (C2[SB'])	&
ATD  ne    *   7   2   *   *   [sb,db]          (C3[SB'])	&
ATD  ne    *   7   2   *   *   [sb,db]          (XA1[SB'])	&
ATD  ne    *   7   2   *   *   [sb,db]          (XB2[SB'])	&
ATD  ne    *   7   2   *   *   [sb,db]          (XD3[SB',db])	&
ATD  ne    *   7   2   *   *   [sb,db]          (XD4[SB',db])	&
ATD  n1    *   7   2   *   *   [2db]             &
ATD  n1    *   7   2   *   *   [tb,sb]           &
ATD  n2    *   7   2   &
ATD  n1    *   7   1   &
ATD  o     *   8   1   & 
ATD  oh    *   8   2   1   &
ATD  oh    *   8   2   2   &
ATD  oh    *   8   3   1   &
ATD  oh    *   8   3   2   &
ATD  oh    *   8   3   3   &
ATD  os    *   8   2   & 
ATD  os    *   8   3   & 
ATD  os    *   8   & 
ATD  s     *   16  1   & 
ATD  s2    *   16  2   *   *   [DB]              & 
ATD  s2    *   16  2   *   *   [TB]              & 
ATD  sh    *   16  2   1   &
ATD  sh    *   16  2   2   &
ATD  ss    *   16  2   & 
ATD  sx    *   16  3   *   *   [db]    		(XB2[sb'])  	&     
ATD  sx    *   16  3   *   *   [db]    		(C3[sb'])       &
ATD  sx    *   16  3   *   *   [db]    		(XD3[sb',db])   &   
ATD  sx    *   16  3   *   *   [db]    		(XD4[sb',db])   &   
ATD  s4    *   16  3   & 
ATD  sy    *   16  4   *   *   [db]    		(XB2[sb'])      &
ATD  sy    *   16  4   *   *   [db]    		(C3[sb'])       &
ATD  sy    *   16  4   *   *   [db]    		(XD3[sb',db])   &    
ATD  sy    *   16  4   *   *   [db]    		(XD4[sb',db])   &    
ATD  s6    *   16  4   & 
ATD  s6    *   16  5   & 
ATD  s6    *   16  6   & 
ATD  Li    *   3   & 
ATD  Be    *   4   & 
ATD  B     *   5   & 
ATD  Na    *   11  & 
ATD  Mg    *   12  & 
ATD  Al    *   13  & 
ATD  Si    *   14  & 
ATD  K     *   19  & 
ATD  Ca    *   20  & 
ATD  Sr    *   38  & 
ATD  Ba    *   56  & 
ATD  Sc    *   21  & 
ATD  Ti    *   22  & 
ATD  V     *   23  & 
ATD  Cr    *   24  & 
ATD  Mn    *   25  & 
ATD  Fe    *   26  & 
ATD  Co    *   27  & 
ATD  Ni    *   28  & 
ATD  Cu    *   29  & 
ATD  Zn    *   30  & 
ATD  Ga    *   31  & 
ATD  Ge    *   32  & 
ATD  As    *   33  & 
ATD  Se    *   34  & 
ATD  Ru    *   44  & 
ATD  Rh    *   45  & 
ATD  Pd    *   46  & 
ATD  Ag    *   47  & 
ATD  Cd    *   48  & 
ATD  Pt    *   78  & 
ATD  Au    *   79  & 
ATD  Hg    *   80  & 
ATD  Tl    *   81  & 
ATD  Pb    *   82  & 
ATD  lp    *   0   1   &
ATD  DU    &   
--------------------------------------------------------------------------------------------
============================================================================================




============================================================================================
			Field descriptions
============================================================================================
f1  ATD, which stands for atom type defination, ATD should always in the first three columns 
f2  Atom type name, can be letters or numbers   
f3  Residue names, which means this description is only applied to atoms in special residues
f4  Atomic number 
f5  Number of attached atoms 
f6  Number of attached hydrogen atoms
f7  For hydrogen, number of the electron-withdrawal atoms connected to the atom that the 
    hydrogen attached
f8  atomic property
f9  Chemical enviornment definations


============================================================================================
			Specific symbols
============================================================================================
*  Ignore this field
&  End of defination 
.  "or" operation in the ring and aromatity descriptions 


============================================================================================
			Predefined words
============================================================================================
EW   Electron-withdraw atom
AA   Amino acid residue
NA   Nucleric acid
BIO  AA + NA

AR1  Pure aromatic atom (such as benzene and pyridine)
AR2  Atom in a planar ring, usually the ring has two continous single bonds and at least two 
     double bonds
AR3  Atom in a planar ring, which has one or several double bonds formed between non-ring atoms
     and the ring atoms
AR4  Atom other than AR1, AR2, AR3 and AR5. 
AR5  Pure aliphatic atom in a ring, which is made of sp3 carbon

RG   Ring (from 3-membered to nine-membered)
RG3  3-membered ring 
RG4  4-membered ring 
RG5  5-membered ring 
RG6  6-membered ring 
RG7  7-membered ring 
RG8  8-membered ring 
RG9  9-membered ring 
NG   non-ring atom

SB   Single bond
DB   Double bond
TB   Triple bond
AB   Aromatic bond
DL   Delocalized bond (9 in AM1-BCC)
sb   Single bond, including aromtaic single, delocalized bond (9 in AM1-BCC) 
db   Double bond, including aromatic double
tb   Triple bond
 
'    Bond type (SB sb etc) followed by ' means the current atom forms this kind of bond with the 
     immediately precessor in a chain of atoms
     For example, (XD3[SB',db]) means the current atom XD3 has a double bond with the atom in 
     defination 
''   Bond type (SB sb etc) followed by '' means the current atom does not form this kind of bond 
     with the immediately precessor in a chain of atoms
============================================================================================
			Miscellaneous
============================================================================================
1. maximum line length is 500 characters
2. no space in the atomic property string
3. no space in the chemical environment string 
4. no filed missing before &
5. the defination order is crucial, special atom types should defined before the more general 
   ones
