Mercurial > repos > marcel > caddsuite_linux_x86_64
diff CADDSuite/data/bond_lengths/BondOrder.xml @ 7:5b29b679ee6d
Uploaded Version 0.95
author | marcel |
---|---|
date | Tue, 12 Jul 2011 10:29:49 -0400 |
parents | bac3c274238f |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CADDSuite/data/bond_lengths/BondOrder.xml Tue Jul 12 10:29:49 2011 -0400 @@ -0,0 +1,366 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<table> + <!-- This file supplies improved penalty scores for different + atom types in bond type perception based on the work of + + Wang, J., Wang, W., Kollman P. A.; Case, D. A. "Automatic atom type and + bond type perception in molecular mechanical calculations". Journal of + Molecular Graphics and Modelling , 25, 2006, 247260 + + A penalty score of 0 means that the corresponding valence is optimal. + Note that the first matching entry is taken as the final atom type. + + Note that in the SMARTS strings we use atomic numbers rather than symbols (e.g. #8 instead of O). + The reason is that wrongly assigned aromatic bonds in the input would lead to failure to identify the + right rule! + --> + <!-- for charged H --> + <entry id="0"> + <elementstring>H</elementstring> + <smartstring>SMARTS([#1+])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="1"> + <elementstring>H</elementstring> + <smartstring>SMARTS([#1])</smartstring> + <penalty valence="1">0</penalty> + </entry> + <entry id="2"> + <elementstring>F</elementstring> + <smartstring>SMARTS(F)</smartstring> + <penalty valence="0">64</penalty> + <penalty valence="1">0</penalty> + <penalty valence="2">64</penalty> + </entry> + <entry id="4"> + <elementstring>Br</elementstring> + <smartstring>SMARTS(Br)</smartstring> + <penalty valence="0">64</penalty> + <penalty valence="1">0</penalty> + <penalty valence="2">64</penalty> + </entry> + <entry id="5"> + <elementstring>I</elementstring> + <smartstring>SMARTS(I)</smartstring> + <penalty valence="0">64</penalty> + <penalty valence="1">0</penalty> + <penalty valence="2">64</penalty> + </entry> + <entry id="6"> <!-- SMARTS([CD1]~[ND2]) AND element(C)</smartstring> --> + <elementstring>C</elementstring> + <smartstring>SMARTS([$([#6D1](~[#7D2]))])</smartstring> + <penalty valence="3">0</penalty> + <penalty valence="4">1</penalty> + <penalty valence="5">32</penalty> + </entry> + <entry id="7"> + <elementstring>C</elementstring> + <smartstring>SMARTS([#6D1])</smartstring> + <penalty valence="3">1</penalty> + <penalty valence="4">0</penalty> + <penalty valence="5">32</penalty> + </entry> + <entry id="9"> + <elementstring>C</elementstring> + <smartstring>SMARTS([#6])</smartstring> + <penalty valence="2">64</penalty> + <penalty valence="3">32</penalty> + <penalty valence="4">0</penalty> + <penalty valence="5">32</penalty> + <penalty valence="6">64</penalty> + </entry> + <entry id="10"> + <elementstring>Si</elementstring> + <smartstring>SMARTS(Si)</smartstring> + <penalty valence="4">0</penalty> + </entry> + <entry id="11"> + <elementstring>N</elementstring> + <smartstring>SMARTS([$([#7D1](~[#7D2]))])</smartstring> <!--SMARTS([ND1]~[ND2]) AND SMARTS([ND1])</smartstring> --> + <penalty valence="2">0</penalty> + <penalty valence="3">0</penalty> + </entry> + <entry id="12"> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D1])</smartstring> + <penalty valence="2">3</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">32</penalty> + </entry> + <entry id="13"> + <elementstring>N</elementstring> + <smartstring>SMARTS([$([#7D2](~[#7D1]))])</smartstring> <!--SMARTS([ND1]~[ND2]) AND SMARTS([ND2])</smartstring> --> + <penalty valence="3">1</penalty> + <penalty valence="4">0</penalty> + </entry> + <entry id="14"> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D2])</smartstring> + <penalty valence="2">4</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">2</penalty> + </entry> + <entry id="151"><!-- for charged N in O == N+ __ O- --> + <elementstring>N</elementstring> + <smartstring>SMARTS([$([#7D3](~[#8D1-,#16D1-])~[#8D1,#16D1])])</smartstring> + <penalty valence="3">32</penalty> + <penalty valence="4">0</penalty> + <penalty valence="5">32</penalty> + <penalty valence="6">64</penalty> + </entry> + <entry id="15"> + <elementstring>N</elementstring> + <smartstring>SMARTS([$([#7D3](~[#8D1,#16D1])~[#8D1,#16D1])])</smartstring> + <penalty valence="3">64</penalty> + <penalty valence="4">32</penalty> + <penalty valence="5">0</penalty> + <penalty valence="6">32</penalty> + </entry> + <entry id="16"> + <elementstring>N</elementstring> + <!-- <smartstring>SMARTS([$(*OD1)&$(*aR)&n]) OR SMARTS([$(*OD1);$(*R);N])</smartstring> --> + <smartstring>SMARTS([$([#7D3](~[#8D1,#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1]))])</smartstring> + <penalty valence="3">1</penalty> + <penalty valence="4">0</penalty> + </entry> + <entry id="17"> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D3])</smartstring> + <penalty valence="2">32</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">1</penalty> + <penalty valence="5">2</penalty> + </entry> + <entry id="181"><!-- for charged N in N+ H_4 --> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D4+])</smartstring> + <penalty valence="3">32</penalty> + <penalty valence="4">0</penalty> + </entry> + <entry id="18"> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D4])</smartstring> + <penalty valence="2">64</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">64</penalty> + </entry> + <entry id="182"> + <elementstring>N</elementstring> + <smartstring>SMARTS([#7D5])</smartstring> + <penalty valence="5">0</penalty> + </entry> + <entry id="191"><!-- for charged O- --> + <elementstring>O</elementstring> + <smartstring>SMARTS([#8D1-])</smartstring> + <penalty valence="1">0</penalty> + <penalty valence="2">32</penalty> + </entry> + <entry id="192"> + <elementstring>O</elementstring> + <smartstring>SMARTS([$([#8D1](~[#6D3]~[#8D1,#16D1]))])</smartstring> + <penalty valence="1">0</penalty> + <penalty valence="2">0</penalty> + </entry> + <entry id="19"> + <elementstring>O</elementstring> + <smartstring>SMARTS([#7D3](~[#8D1,#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1])) AND element(O)</smartstring> + <penalty valence="1">0</penalty> + <penalty valence="2">1</penalty> + </entry> + <entry id="20"> + <elementstring>O</elementstring> + <smartstring> SMARTS([#8D1])</smartstring> + <penalty valence="1">1</penalty> + <penalty valence="2">0</penalty> + <penalty valence="3">64</penalty> + </entry> + <entry id="21"> + <elementstring>O</elementstring> + <smartstring>SMARTS([#8D2])</smartstring> + <penalty valence="1">32</penalty> + <penalty valence="2">0</penalty> + <penalty valence="3">64</penalty> + </entry> + <entry id="211"> + <elementstring>O</elementstring> + <smartstring>SMARTS([#8D3])</smartstring> + <penalty valence="3">0</penalty> + </entry> + <entry id="22"> + <elementstring>P</elementstring> + <smartstring>SMARTS(#15D1)</smartstring> + <penalty valence="2">2</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">32</penalty> + </entry> + <entry id="23"> + <elementstring>P</elementstring> + <smartstring>SMARTS(#15D2)</smartstring> + <penalty valence="2">4</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">2</penalty> + </entry> + <entry id="24"> + <elementstring>P</elementstring> + <smartstring>SMARTS(#15D3)</smartstring> + <penalty valence="2">32</penalty> + <penalty valence="3">0</penalty> + <penalty valence="4">1</penalty> + <penalty valence="5">2</penalty> + </entry> + <entry id="251"> + <elementstring>P</elementstring> + <!-- Note: this is _SLOW_ --> + <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1,#8D1-,#16D1-])(~[#8D1-,#16D1-]))])</smartstring> + <penalty valence="5">0</penalty> + <penalty valence="6">32</penalty> + </entry> + <entry id="25"> + <elementstring>P</elementstring> + <!-- Note: this is _SLOW_ --> + <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1])(~[#8D1,#16D1]))])</smartstring> + <penalty valence="5">32</penalty> + <penalty valence="6">0</penalty> + <penalty valence="7">32</penalty> + </entry> + <entry id="26"> + <elementstring>P</elementstring> + <smartstring>SMARTS([$([#15D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&!#16,!D1]))])</smartstring> + <penalty valence="6">32</penalty> + <penalty valence="7">0</penalty> + </entry> + <entry id="27"> + <elementstring>P</elementstring> + <!-- This rule should be the last PD4 rule because it should only match when the other rules fail! --> + <smartstring>SMARTS(#15D4)</smartstring> + <penalty valence="3">64</penalty> + <penalty valence="4">1</penalty> + <penalty valence="5">0</penalty> + <penalty valence="6">32</penalty> + </entry> + <entry id="28"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#7D3](~[#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1])) AND element(S)</smartstring> + <penalty valence="1">0</penalty> + <penalty valence="2">1</penalty> + </entry> + <entry id="291"> + <elementstring>S</elementstring> + <smartstring>SMARTS([$([#16D1](~[#6D3]~[#8D1,#16D1]))])</smartstring> + <penalty valence="1">0</penalty> + <penalty valence="2">0</penalty> + </entry> + <entry id="29"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#16D1])</smartstring> + <penalty valence="1">2</penalty> + <penalty valence="2">0</penalty> + <penalty valence="3">64</penalty> + </entry> + <entry id="30"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#16D2])</smartstring> + <penalty valence="1">2</penalty> + <penalty valence="2">0</penalty> + <penalty valence="3">64</penalty> + </entry> + <entry id="31"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#16D3])</smartstring> + <penalty valence="3">1</penalty> + <penalty valence="4">0</penalty> + <penalty valence="5">2</penalty> + <penalty valence="6">2</penalty> + </entry> + <entry id="32"> + <elementstring>S</elementstring> + <smartstring> SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&!#16,!D1])(~[!#8&!#16,!D1]))])</smartstring> + <penalty valence="6">0</penalty> + <penalty valence="7">32</penalty> + </entry> + <entry id="331"><!--for a charged O in SO_4 --> + <elementstring>S</elementstring> + <smartstring>SMARTS([$([#16D4](~[#8D1-,#16D1-])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&!#16,!D1]))])</smartstring> + <penalty valence="6">0</penalty> + </entry> + <entry id="33"> + <elementstring>S</elementstring> + <smartstring>SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[!#8&!#16,!D1]))])</smartstring> + <penalty valence="6">32</penalty> + <penalty valence="7">0</penalty> + </entry> + <entry id="34"> + <elementstring>S</elementstring> + <smartstring>SMARTS([$([#16D4](~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1])(~[#8D1,#16D1]))])</smartstring> + <penalty valence="6">32</penalty> + <penalty valence="7">0</penalty> + </entry> + <entry id="35"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#16D4])</smartstring> + <penalty valence="4">4</penalty> + <penalty valence="5">2</penalty> + <penalty valence="6">0</penalty> + </entry> + <entry id="36"> + <elementstring>S</elementstring> + <smartstring>SMARTS([#16D5])</smartstring> + <penalty valence="5">2</penalty> + <penalty valence="6">0</penalty> + </entry> +<!-- The following rules are added to cope with ions --> + <entry id="40"> + <elementstring>Li</elementstring> + <smartstring>SMARTS([#3])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="41"> + <elementstring>Na</elementstring> + <smartstring>SMARTS([#11])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="42"> + <elementstring>Mg</elementstring> + <smartstring>SMARTS([#12])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="43"> + <elementstring>K</elementstring> + <smartstring>SMARTS([#19])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="44"> + <elementstring>Ca</elementstring> + <smartstring>SMARTS([#20])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="45"> + <elementstring>Cu</elementstring> + <smartstring>SMARTS([#29])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="46"> + <elementstring>Zn</elementstring> + <smartstring>SMARTS([#30])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="47"> + <elementstring>Fe</elementstring> + <smartstring>SMARTS([#26])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="48"> + <elementstring>Cl</elementstring> + <smartstring>SMARTS([#17-])</smartstring> + <penalty valence="0">0</penalty> + </entry> + <entry id="49"> + <elementstring>Cl</elementstring> + <smartstring>SMARTS([#17])</smartstring> + <penalty valence="0">64</penalty> + <penalty valence="1">0</penalty> + <penalty valence="2">64</penalty> + <penalty valence="3">128</penalty> + <penalty valence="4">128</penalty> + </entry> +</table>