view mayachemtools/docs/modules/html/code/MACCSKeys.html @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
line wrap: on
line source

<html>
<head>
<title>MayaChemTools:Code:Fingerprints::MACCSKeys.pm</title>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<link rel="stylesheet" type="text/css" href="../../../css/MayaChemToolsCode.css">
</head>
<body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
<br/>
<center>
<a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
</center>
<br/>
<pre>
<a name="package-Fingerprints::MACCSKeys-"></a>   1 <span class="k">package </span><span class="i">Fingerprints::MACCSKeys</span><span class="sc">;</span>
   2 <span class="c">#</span>
   3 <span class="c"># $RCSfile: MACCSKeys.pm,v $</span>
   4 <span class="c"># $Date: 2015/02/28 20:48:54 $</span>
   5 <span class="c"># $Revision: 1.33 $</span>
   6 <span class="c">#</span>
   7 <span class="c"># Author: Manish Sud &lt;msud@san.rr.com&gt;</span>
   8 <span class="c">#</span>
   9 <span class="c"># Copyright (C) 2015 Manish Sud. All rights reserved.</span>
  10 <span class="c">#</span>
  11 <span class="c"># This file is part of MayaChemTools.</span>
  12 <span class="c">#</span>
  13 <span class="c"># MayaChemTools is free software; you can redistribute it and/or modify it under</span>
  14 <span class="c"># the terms of the GNU Lesser General Public License as published by the Free</span>
  15 <span class="c"># Software Foundation; either version 3 of the License, or (at your option) any</span>
  16 <span class="c"># later version.</span>
  17 <span class="c">#</span>
  18 <span class="c"># MayaChemTools is distributed in the hope that it will be useful, but without</span>
  19 <span class="c"># any warranty; without even the implied warranty of merchantability of fitness</span>
  20 <span class="c"># for a particular purpose.  See the GNU Lesser General Public License for more</span>
  21 <span class="c"># details.</span>
  22 <span class="c">#</span>
  23 <span class="c"># You should have received a copy of the GNU Lesser General Public License</span>
  24 <span class="c"># along with MayaChemTools; if not, see &lt;http://www.gnu.org/licenses/&gt; or</span>
  25 <span class="c"># write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,</span>
  26 <span class="c"># Boston, MA, 02111-1307, USA.</span>
  27 <span class="c">#</span>
  28 
  29 <span class="k">use</span> <span class="w">strict</span><span class="sc">;</span>
  30 <span class="k">use</span> <span class="w">Carp</span><span class="sc">;</span>
  31 <span class="k">use</span> <span class="w">Exporter</span><span class="sc">;</span>
  32 <span class="k">use</span> <span class="w">Fingerprints::Fingerprints</span><span class="sc">;</span>
  33 <span class="k">use</span> <span class="w">TextUtil</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
  34 <span class="k">use</span> <span class="w">Molecule</span><span class="sc">;</span>
  35 <span class="k">use</span> <span class="w">PeriodicTable</span><span class="sc">;</span>
  36 
  37 <span class="k">use</span> <span class="w">vars</span> <span class="q">qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS)</span><span class="sc">;</span>
  38 
  39 <span class="i">@ISA</span> = <span class="q">qw(Fingerprints::Fingerprints Exporter)</span><span class="sc">;</span>
  40 <span class="i">@EXPORT</span> = <span class="q">qw()</span><span class="sc">;</span>
  41 <span class="i">@EXPORT_OK</span> = <span class="q">qw()</span><span class="sc">;</span>
  42 
  43 <span class="i">%EXPORT_TAGS</span> = <span class="s">(</span><span class="w">all</span>  <span class="cm">=&gt;</span> <span class="s">[</span><span class="i">@EXPORT</span><span class="cm">,</span> <span class="i">@EXPORT_OK</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
  44 
  45 <span class="c"># Setup class variables...</span>
  46 <span class="k">my</span><span class="s">(</span><span class="i">$ClassName</span><span class="s">)</span><span class="sc">;</span>
  47 <span class="i">_InitializeClass</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
  48 
  49 <span class="c"># Overload Perl functions...</span>
  50 <span class="k">use</span> <span class="w">overload</span> <span class="q">&#39;&quot;&quot;&#39;</span> <span class="cm">=&gt;</span> <span class="q">&#39;StringifyMACCSKeys&#39;</span><span class="sc">;</span>
  51 
  52 <span class="c"># Class constructor...</span>
<a name="new-"></a>  53 <span class="k">sub </span><span class="m">new</span> <span class="s">{</span>
  54   <span class="k">my</span><span class="s">(</span><span class="i">$Class</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
  55 
  56   <span class="c"># Initialize object...</span>
  57   <span class="k">my</span> <span class="i">$This</span> = <span class="i">$Class</span><span class="i">-&gt;SUPER::new</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
  58   <span class="k">bless</span> <span class="i">$This</span><span class="cm">,</span> <span class="k">ref</span><span class="s">(</span><span class="i">$Class</span><span class="s">)</span> || <span class="i">$Class</span><span class="sc">;</span>
  59   <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
  60 
  61   <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeysProperties</span><span class="s">(</span><span class="i">%NamesAndValues</span><span class="s">)</span><span class="sc">;</span>
  62 
  63   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
  64 <span class="s">}</span>
  65 
  66 <span class="c"># Initialize object data...</span>
  67 <span class="c">#</span>
<a name="_InitializeMACCSKeys-"></a>  68 <span class="k">sub </span><span class="m">_InitializeMACCSKeys</span> <span class="s">{</span>
  69   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
  70 
  71   <span class="c"># Type of fingerprint to generate:</span>
  72   <span class="c">#</span>
  73   <span class="c"># MACCSKeyBits - A bit vector indicating presence/absence of keys</span>
  74   <span class="c"># MACCSKeyCount - A vector containing count of keys</span>
  75   <span class="c">#</span>
  76   <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
  77   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
  78 
  79   <span class="c"># Size of key set: 166 or 322...</span>
  80   <span class="i">$This</span>-&gt;{<span class="w">Size</span>} = <span class="q">&#39;&#39;</span><span class="sc">;</span>
  81 <span class="s">}</span>
  82 
  83 <span class="c"># Initialize class ...</span>
<a name="_InitializeClass-"></a>  84 <span class="k">sub </span><span class="m">_InitializeClass</span> <span class="s">{</span>
  85   <span class="c">#Class name...</span>
  86   <span class="i">$ClassName</span> = <span class="w">__PACKAGE__</span><span class="sc">;</span>
  87 <span class="s">}</span>
  88 
  89 <span class="c"># Initialize object properties....</span>
<a name="_InitializeMACCSKeysProperties-"></a>  90 <span class="k">sub </span><span class="m">_InitializeMACCSKeysProperties</span> <span class="s">{</span>
  91   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">%NamesAndValues</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
  92 
  93   <span class="k">my</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="s">)</span><span class="sc">;</span>
  94   <span class="k">while</span> <span class="s">(</span><span class="s">(</span><span class="i">$Name</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="k">each</span>  <span class="i">%NamesAndValues</span><span class="s">)</span> <span class="s">{</span>
  95     <span class="i">$MethodName</span> = <span class="q">&quot;Set${Name}&quot;</span><span class="sc">;</span>
  96     <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="sc">;</span>
  97   <span class="s">}</span>
  98 
  99   <span class="c"># Make sure molecule object was specified...</span>
 100   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Molecule</span>}<span class="s">)</span> <span class="s">{</span>
 101     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying molecule...&quot;</span><span class="sc">;</span>
 102   <span class="s">}</span>
 103 
 104   <span class="c"># Make sure type and size were specified...</span>
 105   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span>
 106     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying type...&quot;</span><span class="sc">;</span>
 107   <span class="s">}</span>
 108   <span class="k">if</span> <span class="s">(</span>!<span class="k">exists</span> <span class="i">$NamesAndValues</span>{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span>
 109     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: Object can&#39;t be instantiated without specifying size...&quot;</span><span class="sc">;</span>
 110   <span class="s">}</span>
 111 
 112   <span class="c"># Make sure approriate size is specified...</span>
 113   <span class="k">if</span> <span class="s">(</span><span class="i">$NamesAndValues</span>{<span class="w">Size</span>} !~ <span class="q">/^(166|322)$/</span><span class="s">)</span> <span class="s">{</span>
 114     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;New: The current release of MayaChemTools doesn&#39;t support MDL MACCS $NamesAndValues{Size} keys...&quot;</span><span class="sc">;</span>
 115   <span class="s">}</span>
 116 
 117   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
 118     <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeyBits</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 119   <span class="s">}</span>
 120   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
 121     <span class="i">$This</span><span class="i">-&gt;_InitializeMACCSKeyCounts</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 122   <span class="s">}</span>
 123   <span class="k">else</span> <span class="s">{</span>
 124     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;_InitializeMACCSKeysProperties: Unknown MACCS keys type: $This-&gt;{Type}; Supported type keys: MACCSKeyBits or MACCSKeyCount......&quot;</span><span class="sc">;</span>
 125   <span class="s">}</span>
 126 
 127   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 128 <span class="s">}</span>
 129 
 130 <span class="c"># Initialize MACCS key bits...</span>
 131 <span class="c">#</span>
<a name="_InitializeMACCSKeyBits-"></a> 132 <span class="k">sub </span><span class="m">_InitializeMACCSKeyBits</span> <span class="s">{</span>
 133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 134 
 135   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span>
 136 
 137   <span class="c"># Vector type...</span>
 138   <span class="i">$This</span>-&gt;{<span class="w">VectorType</span>} = <span class="q">&#39;FingerprintsBitVector&#39;</span><span class="sc">;</span>
 139 
 140   <span class="i">$This</span><span class="i">-&gt;_InitializeFingerprintsBitVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 141 
 142   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 143 <span class="s">}</span>
 144 
 145 <span class="c"># Initialize MACCS key counts...</span>
 146 <span class="c">#</span>
<a name="_InitializeMACCSKeyCounts-"></a> 147 <span class="k">sub </span><span class="m">_InitializeMACCSKeyCounts</span> <span class="s">{</span>
 148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 149 
 150   <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span>
 151 
 152   <span class="c"># Vector type and type of values...</span>
 153   <span class="i">$This</span>-&gt;{<span class="w">VectorType</span>} = <span class="q">&#39;FingerprintsVector&#39;</span><span class="sc">;</span>
 154   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVectorType</span>} = <span class="q">&#39;OrderedNumericalValues&#39;</span><span class="sc">;</span>
 155 
 156   <span class="i">$This</span><span class="i">-&gt;_InitializeFingerprintsVector</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 157 
 158   <span class="c"># Initialize values to zero...</span>
 159   <span class="k">my</span><span class="s">(</span><span class="i">@Values</span><span class="s">)</span><span class="sc">;</span>
 160   <span class="i">@Values</span> = <span class="s">(</span><span class="n">0</span><span class="s">)</span> x <span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="sc">;</span>
 161   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;AddValues</span><span class="s">(</span>\<span class="i">@Values</span><span class="s">)</span><span class="sc">;</span>
 162 
 163   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 164 <span class="s">}</span>
 165 
 166 <span class="c"># Set type...</span>
 167 <span class="c">#</span>
<a name="SetType-"></a> 168 <span class="k">sub </span><span class="m">SetType</span> <span class="s">{</span>
 169   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Type</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 170 
 171   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>}<span class="s">)</span> <span class="s">{</span>
 172     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetType: Can&#39;t change type:  It&#39;s already set...&quot;</span><span class="sc">;</span>
 173   <span class="s">}</span>
 174 
 175   <span class="k">if</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
 176     <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;MACCSKeyBits&#39;</span><span class="sc">;</span><span class="sc">;</span>
 177     <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">1</span><span class="sc">;</span>
 178   <span class="s">}</span>
 179   <span class="k">elsif</span> <span class="s">(</span><span class="i">$Type</span> =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
 180     <span class="i">$This</span>-&gt;{<span class="w">Type</span>} = <span class="q">&#39;MACCSKeyCount&#39;</span><span class="sc">;</span><span class="sc">;</span>
 181     <span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>} = <span class="n">0</span><span class="sc">;</span>
 182   <span class="s">}</span>
 183   <span class="k">else</span> <span class="s">{</span>
 184     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetType: Unknown type MACCS keys: $Type; Supported type keys: MACCSKeyBits or MACCSKeyCount...&quot;</span><span class="sc">;</span>
 185   <span class="s">}</span>
 186   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 187 <span class="s">}</span>
 188 
 189 <span class="c"># Set size...</span>
 190 <span class="c">#</span>
<a name="SetSize-"></a> 191 <span class="k">sub </span><span class="m">SetSize</span> <span class="s">{</span>
 192   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Value</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 193 
 194   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="s">)</span> <span class="s">{</span>
 195     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetSize: Can&#39;t change size:  It&#39;s already set...&quot;</span><span class="sc">;</span>
 196   <span class="s">}</span>
 197   <span class="k">if</span> <span class="s">(</span>!<span class="i">TextUtil::IsPositiveInteger</span><span class="s">(</span><span class="i">$Value</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
 198     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;SetSize: Size value, $Value, is not valid:  It must be a positive integer...&quot;</span><span class="sc">;</span>
 199   <span class="s">}</span>
 200   <span class="k">if</span> <span class="s">(</span><span class="i">$Value</span> !~ <span class="q">/^(166|322)/i</span><span class="s">)</span> <span class="s">{</span>
 201     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;Size: The current release of MayaChemTools doesn&#39;t support MDL MACCS $Value keys...&quot;</span><span class="sc">;</span>
 202   <span class="s">}</span>
 203   <span class="i">$This</span>-&gt;{<span class="w">Size</span>} = <span class="i">$Value</span><span class="sc">;</span>
 204 
 205   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 206 <span class="s">}</span>
 207 
 208 <span class="c"># Generate description...</span>
 209 <span class="c">#</span>
<a name="GetDescription-"></a> 210 <span class="k">sub </span><span class="m">GetDescription</span> <span class="s">{</span>
 211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 212 
 213   <span class="c"># Is description explicity set?</span>
 214   <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$This</span>-&gt;{<span class="w">Description</span>}<span class="s">)</span> <span class="s">{</span>
 215     <span class="k">return</span> <span class="i">$This</span>-&gt;{<span class="w">Description</span>}<span class="sc">;</span>
 216   <span class="s">}</span>
 217 
 218   <span class="k">return</span> <span class="q">&quot;$This-&gt;{Type}&quot;</span><span class="sc">;</span>
 219 <span class="s">}</span>
 220 
 221 <span class="c"># Generate MDL MACCS keys..</span>
 222 <span class="c">#</span>
<a name="GenerateMACCSKeys-"></a> 223 <span class="k">sub </span><span class="m">GenerateMACCSKeys</span> <span class="s">{</span>
 224   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 225 
 226   <span class="c"># Cache appropriate molecule data...</span>
 227   <span class="i">$This</span><span class="i">-&gt;_SetupMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 228 
 229   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>} == <span class="n">166</span><span class="s">)</span> <span class="s">{</span>
 230     <span class="i">$This</span><span class="i">-&gt;_GenerateMACCS166Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 231   <span class="s">}</span>
 232   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Size</span>} == <span class="n">322</span><span class="s">)</span> <span class="s">{</span>
 233     <span class="i">$This</span><span class="i">-&gt;_GenerateMACCS322Keys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 234   <span class="s">}</span>
 235   <span class="k">else</span> <span class="s">{</span>
 236     <span class="w">croak</span> <span class="q">&quot;Error: ${ClassName}-&gt;GenerateMACCSKeys: The current release of MayaChemTools doesn&#39;t support MDL MACCS  $This-&gt;{Size} keys...&quot;</span><span class="sc">;</span>
 237   <span class="s">}</span>
 238 
 239   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsGenerated</span>} = <span class="n">1</span><span class="sc">;</span>
 240 
 241   <span class="c"># Clear cached molecule data...</span>
 242   <span class="i">$This</span><span class="i">-&gt;_ClearMoleculeDataCache</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 243 
 244   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 245 <span class="s">}</span>
 246 
 247 <span class="c"># Setup GenerateFingerprints method in order to be consistent with all other</span>
 248 <span class="c"># fingerprints classes implemented in the current release of MayaChemTools...</span>
 249 <span class="c">#</span>
<a name="GenerateFingerprints-"></a> 250 <span class="k">sub </span><span class="m">GenerateFingerprints</span> <span class="s">{</span>
 251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 252 
 253   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;GenerateMACCSKeys</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 254 <span class="s">}</span>
 255 
 256 <span class="c"># Generate MDL MACCS 166 keys...</span>
 257 <span class="c">#</span>
 258 <span class="c"># Information on the 166 keys [ Ref. 45-47 ]:</span>
 259 <span class="c">#</span>
 260 <span class="c"># Atom symbols:</span>
 261 <span class="c">#</span>
 262 <span class="c"># A : Any valid perodic table element symbol</span>
 263 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
 264 <span class="c"># X  : Halogens; F, Cl, Br, I</span>
 265 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
 266 <span class="c">#</span>
 267 <span class="c"># Bond types:</span>
 268 <span class="c">#</span>
 269 <span class="c"># -  : Single</span>
 270 <span class="c"># =  : Double</span>
 271 <span class="c"># T  : Triple</span>
 272 <span class="c"># #  : Triple</span>
 273 <span class="c"># ~  : Single or double query bond</span>
 274 <span class="c"># %  : An aromatic query bond</span>
 275 <span class="c">#</span>
 276 <span class="c"># None : Any bond type; no explict bond specified</span>
 277 <span class="c">#</span>
 278 <span class="c"># $  : Ring bond; $ before a bond type specifies ring bond</span>
 279 <span class="c"># !  : Chain or non-ring bond; ! before a bond type specifies chain bond</span>
 280 <span class="c">#</span>
 281 <span class="c"># @  : A ring linkage and the number following it specifies the</span>
 282 <span class="c">#      atoms position in the line, thus @1 means linked back to the first atom in</span>
 283 <span class="c">#      the list.</span>
 284 <span class="c">#</span>
 285 <span class="c"># Aromatic: Kekule or Arom5</span>
 286 <span class="c">#</span>
 287 <span class="c"># Kekule: Bonds in 6-membered rings with alternalte single/double bonds or perimeter</span>
 288 <span class="c">#         bonds</span>
 289 <span class="c">#</span>
 290 <span class="c"># Arom5: Bonds in 5-membered rings with two double bonds and a hetro atom at</span>
 291 <span class="c">#        the apex of the ring.</span>
 292 <span class="c">#</span>
 293 <span class="c"># Index Key Description</span>
 294 <span class="c"># 1        ISOTOPE</span>
 295 <span class="c"># 2        103 &lt; ATOMIC NO. &lt; 256</span>
 296 <span class="c"># 3        GROUP IVA,VA,VIA PERIODS 4-6 (Ge...)</span>
 297 <span class="c"># 4        ACTINIDE</span>
 298 <span class="c"># 5        GROUP IIIB,IVB (Sc...)</span>
 299 <span class="c"># 6        LANTHANIDE</span>
 300 <span class="c"># 7        GROUP VB,VIB,VIIB (V...)</span>
 301 <span class="c"># 8        QAAA@1</span>
 302 <span class="c"># 9        GROUP VIII (Fe...)</span>
 303 <span class="c"># 10        GROUP IIA (ALKALINE EARTH)</span>
 304 <span class="c"># 11        4M RING</span>
 305 <span class="c"># 12        GROUP IB,IIB (Cu...)</span>
 306 <span class="c"># 13        ON(C)C</span>
 307 <span class="c"># 14        S-S</span>
 308 <span class="c"># 15        OC(O)O</span>
 309 <span class="c"># 16        QAA@1</span>
 310 <span class="c"># 17        CTC</span>
 311 <span class="c"># 18        GROUP IIIA (B...)</span>
 312 <span class="c"># 19        7M RING</span>
 313 <span class="c"># 20        SI</span>
 314 <span class="c"># 21        C=C(Q)Q</span>
 315 <span class="c"># 22        3M RING</span>
 316 <span class="c"># 23        NC(O)O</span>
 317 <span class="c"># 24        N-O</span>
 318 <span class="c"># 25        NC(N)N</span>
 319 <span class="c"># 26        C$=C($A)$A</span>
 320 <span class="c"># 27        I</span>
 321 <span class="c"># 28        QCH2Q</span>
 322 <span class="c"># 29        P</span>
 323 <span class="c"># 30        CQ(C)(C)A</span>
 324 <span class="c"># 31        QX</span>
 325 <span class="c"># 32        CSN</span>
 326 <span class="c"># 33        NS</span>
 327 <span class="c"># 34        CH2=A</span>
 328 <span class="c"># 35        GROUP IA (ALKALI METAL)</span>
 329 <span class="c"># 36        S HETEROCYCLE</span>
 330 <span class="c"># 37        NC(O)N</span>
 331 <span class="c"># 38        NC(C)N</span>
 332 <span class="c"># 39        OS(O)O</span>
 333 <span class="c"># 40        S-O</span>
 334 <span class="c"># 41        CTN</span>
 335 <span class="c"># 42        F</span>
 336 <span class="c"># 43        QHAQH</span>
 337 <span class="c"># 44        OTHER</span>
 338 <span class="c"># 45        C=CN</span>
 339 <span class="c"># 46        BR</span>
 340 <span class="c"># 47        SAN</span>
 341 <span class="c"># 48        OQ(O)O</span>
 342 <span class="c"># 49        CHARGE</span>
 343 <span class="c"># 50        C=C(C)C</span>
 344 <span class="c"># 51        CSO</span>
 345 <span class="c"># 52        NN</span>
 346 <span class="c"># 53        QHAAAQH</span>
 347 <span class="c"># 54        QHAAQH</span>
 348 <span class="c"># 55        OSO</span>
 349 <span class="c"># 56        ON(O)C</span>
 350 <span class="c"># 57        O HETEROCYCLE</span>
 351 <span class="c"># 58        QSQ</span>
 352 <span class="c"># 59        Snot%A%A</span>
 353 <span class="c"># 60        S=O</span>
 354 <span class="c"># 61        AS(A)A</span>
 355 <span class="c"># 62        A$A!A$A</span>
 356 <span class="c"># 63        N=O</span>
 357 <span class="c"># 64        A$A!S</span>
 358 <span class="c"># 65        C%N</span>
 359 <span class="c"># 66        CC(C)(C)A</span>
 360 <span class="c"># 67        QS</span>
 361 <span class="c"># 68        QHQH (&amp;...)</span>
 362 <span class="c"># 69        QQH</span>
 363 <span class="c"># 70        QNQ</span>
 364 <span class="c"># 71        NO</span>
 365 <span class="c"># 72        OAAO</span>
 366 <span class="c"># 73        S=A</span>
 367 <span class="c"># 74        CH3ACH3</span>
 368 <span class="c"># 75        A!N$A</span>
 369 <span class="c"># 76        C=C(A)A</span>
 370 <span class="c"># 77        NAN</span>
 371 <span class="c"># 78        C=N</span>
 372 <span class="c"># 79        NAAN</span>
 373 <span class="c"># 80        NAAAN</span>
 374 <span class="c"># 81        SA(A)A</span>
 375 <span class="c"># 82        ACH2QH</span>
 376 <span class="c"># 83         QAAAA@1</span>
 377 <span class="c"># 84        NH2</span>
 378 <span class="c"># 85        CN(C)C</span>
 379 <span class="c"># 86        CH2QCH2</span>
 380 <span class="c"># 87        X!A$A</span>
 381 <span class="c"># 88        S</span>
 382 <span class="c"># 89        OAAAO</span>
 383 <span class="c"># 90        QHAACH2A</span>
 384 <span class="c"># 91        QHAAACH2A</span>
 385 <span class="c"># 92        OC(N)C</span>
 386 <span class="c"># 93        QCH3</span>
 387 <span class="c"># 94        QN</span>
 388 <span class="c"># 95        NAAO</span>
 389 <span class="c"># 96        5M RING</span>
 390 <span class="c"># 97        NAAAO</span>
 391 <span class="c"># 98        QAAAAA@1</span>
 392 <span class="c"># 99        C=C</span>
 393 <span class="c"># 100        ACH2N</span>
 394 <span class="c"># 101        8M RING</span>
 395 <span class="c"># 102        QO</span>
 396 <span class="c"># 103        CL</span>
 397 <span class="c"># 104        QHACH2A</span>
 398 <span class="c"># 105        A$A($A)$A</span>
 399 <span class="c"># 106        QA(Q)Q</span>
 400 <span class="c"># 107        XA(A)A</span>
 401 <span class="c"># 108        CH3AAACH2A</span>
 402 <span class="c"># 109        ACH2O</span>
 403 <span class="c"># 110        NCO</span>
 404 <span class="c"># 111        NACH2A</span>
 405 <span class="c"># 112        AA(A)(A)A</span>
 406 <span class="c"># 113        Onot%A%A</span>
 407 <span class="c"># 114        CH3CH2A</span>
 408 <span class="c"># 115        CH3ACH2A</span>
 409 <span class="c"># 116        CH3AACH2A</span>
 410 <span class="c"># 117        NAO</span>
 411 <span class="c"># 118        ACH2CH2A &gt; 1</span>
 412 <span class="c"># 119        N=A</span>
 413 <span class="c"># 120        HETEROCYCLIC ATOM &gt; 1 (&amp;...)</span>
 414 <span class="c"># 121        N HETEROCYCLE</span>
 415 <span class="c"># 122        AN(A)A</span>
 416 <span class="c"># 123        OCO</span>
 417 <span class="c"># 124        QQ</span>
 418 <span class="c"># 125        AROMATIC RING &gt; 1</span>
 419 <span class="c"># 126        A!O!A</span>
 420 <span class="c"># 127        A$A!O &gt; 1 (&amp;...)</span>
 421 <span class="c"># 128        ACH2AAACH2A</span>
 422 <span class="c"># 129        ACH2AACH2A</span>
 423 <span class="c"># 130        QQ &gt; 1 (&amp;...)</span>
 424 <span class="c"># 131        QH &gt; 1</span>
 425 <span class="c"># 132        OACH2A</span>
 426 <span class="c"># 133        A$A!N</span>
 427 <span class="c"># 134        X (HALOGEN)</span>
 428 <span class="c"># 135        Nnot%A%A</span>
 429 <span class="c"># 136        O=A &gt; 1</span>
 430 <span class="c"># 137        HETEROCYCLE</span>
 431 <span class="c"># 138        QCH2A &gt; 1 (&amp;...)</span>
 432 <span class="c"># 139        OH</span>
 433 <span class="c"># 140        O &gt; 3 (&amp;...)</span>
 434 <span class="c"># 141        CH3 &gt; 2 (&amp;...)</span>
 435 <span class="c"># 142        N &gt; 1</span>
 436 <span class="c"># 143        A$A!O</span>
 437 <span class="c"># 144        Anot%A%Anot%A</span>
 438 <span class="c"># 145        6M RING &gt; 1</span>
 439 <span class="c"># 146        O &gt; 2</span>
 440 <span class="c"># 147        ACH2CH2A</span>
 441 <span class="c"># 148        AQ(A)A</span>
 442 <span class="c"># 149        CH3 &gt; 1</span>
 443 <span class="c"># 150        A!A$A!A</span>
 444 <span class="c"># 151        NH</span>
 445 <span class="c"># 152        OC(C)C</span>
 446 <span class="c"># 153        QCH2A</span>
 447 <span class="c"># 154        C=O</span>
 448 <span class="c"># 155        A!CH2!A</span>
 449 <span class="c"># 156        NA(A)A</span>
 450 <span class="c"># 157        C-O</span>
 451 <span class="c"># 158        C-N</span>
 452 <span class="c"># 159        O &gt; 1</span>
 453 <span class="c"># 160        CH3</span>
 454 <span class="c"># 161        N</span>
 455 <span class="c"># 162        AROMATIC</span>
 456 <span class="c"># 163        6M RING</span>
 457 <span class="c"># 164        O</span>
 458 <span class="c"># 165        RING</span>
 459 <span class="c"># 166         FRAGMENTS</span>
 460 <span class="c">#</span>
<a name="_GenerateMACCS166Keys-"></a> 461 <span class="k">sub </span><span class="m">_GenerateMACCS166Keys</span> <span class="s">{</span>
 462   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 463   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 464 
 465   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span>
 466 
 467   <span class="c"># Generate and set key values...</span>
 468   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">166</span><span class="s">)</span> <span class="s">{</span>
 469     <span class="i">$MethodName</span> = <span class="q">&quot;_Generate166KeySetKey${KeyNum}&quot;</span><span class="sc">;</span>
 470     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 471 
 472     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span>
 473       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span>
 474     <span class="s">}</span>
 475     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span>
 476     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 477       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsBitVector</span>}<span class="i">-&gt;SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 478     <span class="s">}</span>
 479     <span class="k">else</span> <span class="s">{</span>
 480       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 481     <span class="s">}</span>
 482   <span class="s">}</span>
 483 
 484   <span class="c"># Add key labels for MACCSKeyCount...</span>
 485   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 486     <span class="i">$This</span><span class="i">-&gt;_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 487   <span class="s">}</span>
 488 
 489   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 490 <span class="s">}</span>
 491 
 492 <span class="c"># Generate MDL MACCS 322 keys...</span>
 493 <span class="c">#</span>
 494 <span class="c"># MDL MACCS 322 key set is defined in tables 1, 2 and 3 by: Joseph L. Durant; Burton A. Leland;</span>
 495 <span class="c"># Douglas R. Henry; James G. Nourse. Reoptimization of MDL Keys for Use in Drug Discovery [ Ref. 46 ].</span>
 496 <span class="c">#</span>
 497 <span class="c"># Atom symbols:</span>
 498 <span class="c">#</span>
 499 <span class="c"># A : Any valid perodic table element symbol</span>
 500 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
 501 <span class="c"># X  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
 502 <span class="c"># Z is neither defined nor used</span>
 503 <span class="c">#</span>
 504 <span class="c"># Atom symbol, X, used for 322 keys [ Ref 46 ] doesn&#39;t refer to Halogens as it does for 166 keys. In</span>
 505 <span class="c"># order to keep the definition of 322 keys consistent with the published definitions, the symbol X is</span>
 506 <span class="c"># used to imply &quot;others&quot; atoms, but it&#39;s internally mapped to symbol X as defined for 166 keys</span>
 507 <span class="c"># during the generation of key values.</span>
 508 <span class="c">#</span>
 509 <span class="c"># The keys include:</span>
 510 <span class="c">#</span>
 511 <span class="c"># o 26 atom properties of type P, as listed in Table 1</span>
 512 <span class="c"># o 32 one-atom environments, as listed in Table 3</span>
 513 <span class="c"># o 264 atom-bond-atom combinations listed in Table 4</span>
 514 <span class="c">#</span>
 515 <span class="c"># Total number of keys in three tables: 322</span>
 516 <span class="c">#</span>
 517 <span class="c"># Removal of two rare properties in Table 1 number 21 and 22 results in a 320 keyset.</span>
 518 <span class="c">#</span>
 519 <span class="c"># Atom properties-based keys (26):</span>
 520 <span class="c">#</span>
 521 <span class="c"># Index Description</span>
 522 <span class="c"># 1     A(AAA) or AA(A)A - atom with at least three neighbors</span>
 523 <span class="c"># 2     Q - heteroatom</span>
 524 <span class="c"># 3     Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span>
 525 <span class="c"># 4     A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span>
 526 <span class="c"># 5     A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span>
 527 <span class="c"># 6     A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span>
 528 <span class="c"># 7     QH - heteroatom with at least one hydrogen attached</span>
 529 <span class="c"># 8     CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span>
 530 <span class="c"># 9     CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span>
 531 <span class="c"># 10    Halogen</span>
 532 <span class="c"># 11    A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span>
 533 <span class="c"># 12    AAAAAA@1 &gt; 2 - atom is in at least two different six-membered rings</span>
 534 <span class="c"># 13    A($A$A$A) or A$A($A)$A - atom has more than two ring bonds</span>
 535 <span class="c"># 14    A$A!A$A - atom is at a ring/chain boundary. When a comparison is done</span>
 536 <span class="c">#       with another atom the path passes through the chain bond.</span>
 537 <span class="c"># 15    Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary. When a</span>
 538 <span class="c">#       comparison is done with another atom the path</span>
 539 <span class="c">#       passes through the aromatic bond.</span>
 540 <span class="c"># 16    A!A!A  - atom with more than one chain bond</span>
 541 <span class="c"># 17    A!A$A!A - atom is at a ring/chain boundary. When a comparison is done</span>
 542 <span class="c">#       with another atom the path passes through the ring bond.</span>
 543 <span class="c"># 18    A%Anot%A%A - atom is at an aromatic/nonaromatic boundary. When a</span>
 544 <span class="c">#       comparison is done with another atom the</span>
 545 <span class="c">#       path passes through the nonaromatic bond.</span>
 546 <span class="c"># 19    HETEROCYCLE - atom is a heteroatom in a ring.</span>
 547 <span class="c"># 20    rare properties: atom with five or more neighbors, atom in</span>
 548 <span class="c">#       four or more rings, or atom types other than</span>
 549 <span class="c">#       H, C, N, O, S, F, Cl, Br, or I</span>
 550 <span class="c"># 21    rare properties: atom has a charge, is an isotope, has two or</span>
 551 <span class="c">#       more multiple bonds, or has a triple bond.</span>
 552 <span class="c"># 22    N - nitrogen</span>
 553 <span class="c"># 23    S - sulfur</span>
 554 <span class="c"># 24    O - oxygen</span>
 555 <span class="c"># 25    A(AA)A(A)A(AA) - atom has two neighbors, each with three or more neighbors</span>
 556 <span class="c">#       (including the central atom).</span>
 557 <span class="c"># 26    CHACH2 - atom has two hydrocarbon (CH2) neighbors</span>
 558 <span class="c">#</span>
 559 <span class="c">#</span>
 560 <span class="c"># Atomic environments properties-based keys (32):</span>
 561 <span class="c">#</span>
 562 <span class="c"># Index Key Description</span>
 563 <span class="c"># 27    C(CC)</span>
 564 <span class="c"># 28    C(CCC)</span>
 565 <span class="c"># 29    C(CN)</span>
 566 <span class="c"># 30    C(CCN)</span>
 567 <span class="c"># 31    C(NN)</span>
 568 <span class="c"># 32    C(NNC)</span>
 569 <span class="c"># 33    C(NNN)</span>
 570 <span class="c"># 34    C(CO)</span>
 571 <span class="c"># 35    C(CCO)</span>
 572 <span class="c"># 36    C(NO)</span>
 573 <span class="c"># 37    C(NCO)</span>
 574 <span class="c"># 38    C(NNO)</span>
 575 <span class="c"># 39    C(OO)</span>
 576 <span class="c"># 40    C(COO)</span>
 577 <span class="c"># 41    C(NOO)</span>
 578 <span class="c"># 42    C(OOO)</span>
 579 <span class="c"># 43    Q(CC)</span>
 580 <span class="c"># 44    Q(CCC)</span>
 581 <span class="c"># 45    Q(CN)</span>
 582 <span class="c"># 46    Q(CCN)</span>
 583 <span class="c"># 47    Q(NN)</span>
 584 <span class="c"># 48    Q(CNN)</span>
 585 <span class="c"># 49    Q(NNN)</span>
 586 <span class="c"># 50    Q(CO)</span>
 587 <span class="c"># 51    Q(CCO)</span>
 588 <span class="c"># 52    Q(NO)</span>
 589 <span class="c"># 53    Q(CNO)</span>
 590 <span class="c"># 54    Q(NNO)</span>
 591 <span class="c"># 55    Q(OO)</span>
 592 <span class="c"># 56    Q(COO)</span>
 593 <span class="c"># 57    Q(NOO)</span>
 594 <span class="c"># 58    Q(OOO)</span>
 595 <span class="c">#</span>
 596 <span class="c"># Note: The first symbol is the central atom, with atoms bonded to the</span>
 597 <span class="c"># central atom listed in parentheses. Q is any non-C, non-H atom. If</span>
 598 <span class="c"># only two atoms are in parentheses, there is no implication concerning</span>
 599 <span class="c"># the other atoms bonded to the central atom.</span>
 600 <span class="c">#</span>
 601 <span class="c"># Atom-Bond-Atom properties-based keys: (264)</span>
 602 <span class="c">#</span>
 603 <span class="c"># Index Key Description</span>
 604 <span class="c"># 59    C-C</span>
 605 <span class="c"># 60    C-N</span>
 606 <span class="c"># 61    C-O</span>
 607 <span class="c"># 62    C-S</span>
 608 <span class="c"># 63    C-Cl</span>
 609 <span class="c"># 64    C-P</span>
 610 <span class="c"># 65    C-F</span>
 611 <span class="c"># 66    C-Br</span>
 612 <span class="c"># 67    C-Si</span>
 613 <span class="c"># 68    C-I</span>
 614 <span class="c"># 69    C-X</span>
 615 <span class="c"># 70    N-N</span>
 616 <span class="c"># 71    N-O</span>
 617 <span class="c"># 72    N-S</span>
 618 <span class="c"># 73    N-Cl</span>
 619 <span class="c"># 74    N-P</span>
 620 <span class="c"># 75    N-F</span>
 621 <span class="c"># 76    N-Br</span>
 622 <span class="c"># 77    N-Si</span>
 623 <span class="c"># 78    N-I</span>
 624 <span class="c"># 79    N-X</span>
 625 <span class="c"># 80    O-O</span>
 626 <span class="c"># 81    O-S</span>
 627 <span class="c"># 82    O-Cl</span>
 628 <span class="c"># 83    O-P</span>
 629 <span class="c"># 84    O-F</span>
 630 <span class="c"># 85    O-Br</span>
 631 <span class="c"># 86    O-Si</span>
 632 <span class="c"># 87    O-I</span>
 633 <span class="c"># 88    O-X</span>
 634 <span class="c"># 89    S-S</span>
 635 <span class="c"># 90    S-Cl</span>
 636 <span class="c"># 91    S-P</span>
 637 <span class="c"># 92    S-F</span>
 638 <span class="c"># 93    S-Br</span>
 639 <span class="c"># 94    S-Si</span>
 640 <span class="c"># 95    S-I</span>
 641 <span class="c"># 96    S-X</span>
 642 <span class="c"># 97    Cl-Cl</span>
 643 <span class="c"># 98    Cl-P</span>
 644 <span class="c"># 99    Cl-F</span>
 645 <span class="c"># 100   Cl-Br</span>
 646 <span class="c"># 101   Cl-Si</span>
 647 <span class="c"># 102   Cl-I</span>
 648 <span class="c"># 103   Cl-X</span>
 649 <span class="c"># 104   P-P</span>
 650 <span class="c"># 105   P-F</span>
 651 <span class="c"># 106   P-Br</span>
 652 <span class="c"># 107   P-Si</span>
 653 <span class="c"># 108   P-I</span>
 654 <span class="c"># 109   P-X</span>
 655 <span class="c"># 110   F-F</span>
 656 <span class="c"># 111   F-Br</span>
 657 <span class="c"># 112   F-Si</span>
 658 <span class="c"># 113   F-I</span>
 659 <span class="c"># 114   F-X</span>
 660 <span class="c"># 115   Br-Br</span>
 661 <span class="c"># 116   Br-Si</span>
 662 <span class="c"># 117   Br-I</span>
 663 <span class="c"># 118   Br-X</span>
 664 <span class="c"># 119   Si-Si</span>
 665 <span class="c"># 120   Si-I</span>
 666 <span class="c"># 121   Si-X</span>
 667 <span class="c"># 122   I-I</span>
 668 <span class="c"># 123   I-X</span>
 669 <span class="c"># 124   X-X</span>
 670 <span class="c"># 125   C=C</span>
 671 <span class="c"># 126   C=N</span>
 672 <span class="c"># 127   C=O</span>
 673 <span class="c"># 128   C=S</span>
 674 <span class="c"># 129   C=Cl</span>
 675 <span class="c"># 130   C=P</span>
 676 <span class="c"># 131   C=F</span>
 677 <span class="c"># 132   C=Br</span>
 678 <span class="c"># 133   C=Si</span>
 679 <span class="c"># 134   C=I</span>
 680 <span class="c"># 135   C=X</span>
 681 <span class="c"># 136   N=N</span>
 682 <span class="c"># 137   N=O</span>
 683 <span class="c"># 138   N=S</span>
 684 <span class="c"># 139   N=Cl</span>
 685 <span class="c"># 140   N=P</span>
 686 <span class="c"># 141   N=F</span>
 687 <span class="c"># 142   N=Br</span>
 688 <span class="c"># 143   N=Si</span>
 689 <span class="c"># 144   N=I</span>
 690 <span class="c"># 145   N=X</span>
 691 <span class="c"># 146   O=O</span>
 692 <span class="c"># 147   O=S</span>
 693 <span class="c"># 148   O=Cl</span>
 694 <span class="c"># 149   O=P</span>
 695 <span class="c"># 150   O=F</span>
 696 <span class="c"># 151   O=Br</span>
 697 <span class="c"># 152   O=Si</span>
 698 <span class="c"># 153   O=I</span>
 699 <span class="c"># 154   O=X</span>
 700 <span class="c"># 155   S=S</span>
 701 <span class="c"># 156   S=Cl</span>
 702 <span class="c"># 157   S=P</span>
 703 <span class="c"># 158   S=F</span>
 704 <span class="c"># 159   S=Br</span>
 705 <span class="c"># 160   S=Si</span>
 706 <span class="c"># 161   S=I</span>
 707 <span class="c"># 162   S=X</span>
 708 <span class="c"># 163   Cl=Cl</span>
 709 <span class="c"># 164   Cl=P</span>
 710 <span class="c"># 165   Cl=F</span>
 711 <span class="c"># 166   Cl=Br</span>
 712 <span class="c"># 167   Cl=Si</span>
 713 <span class="c"># 168   Cl=I</span>
 714 <span class="c"># 169   Cl=X</span>
 715 <span class="c"># 170   P=P</span>
 716 <span class="c"># 171   P=F</span>
 717 <span class="c"># 172   P=Br</span>
 718 <span class="c"># 173   P=Si</span>
 719 <span class="c"># 174   P=I</span>
 720 <span class="c"># 175   P=X</span>
 721 <span class="c"># 176   F=F</span>
 722 <span class="c"># 177   F=Br</span>
 723 <span class="c"># 178   F=Si</span>
 724 <span class="c"># 179   F=I</span>
 725 <span class="c"># 180   F=X</span>
 726 <span class="c"># 181   Br=Br</span>
 727 <span class="c"># 182   Br=Si</span>
 728 <span class="c"># 183   Br=I</span>
 729 <span class="c"># 184   Br=X</span>
 730 <span class="c"># 185   Si=Si</span>
 731 <span class="c"># 186   Si=I</span>
 732 <span class="c"># 187   Si=X</span>
 733 <span class="c"># 188   I=I</span>
 734 <span class="c"># 189   I=X</span>
 735 <span class="c"># 190   X=X</span>
 736 <span class="c"># 191   C#C</span>
 737 <span class="c"># 192   C#N</span>
 738 <span class="c"># 193   C#O</span>
 739 <span class="c"># 194   C#S</span>
 740 <span class="c"># 195   C#Cl</span>
 741 <span class="c"># 196   C#P</span>
 742 <span class="c"># 197   C#F</span>
 743 <span class="c"># 198   C#Br</span>
 744 <span class="c"># 199   C#Si</span>
 745 <span class="c"># 200   C#I</span>
 746 <span class="c"># 201   C#X</span>
 747 <span class="c"># 202   N#N</span>
 748 <span class="c"># 203   N#O</span>
 749 <span class="c"># 204   N#S</span>
 750 <span class="c"># 205   N#Cl</span>
 751 <span class="c"># 206   N#P</span>
 752 <span class="c"># 207   N#F</span>
 753 <span class="c"># 208   N#Br</span>
 754 <span class="c"># 209   N#Si</span>
 755 <span class="c"># 210   N#I</span>
 756 <span class="c"># 211   N#X</span>
 757 <span class="c"># 212   O#O</span>
 758 <span class="c"># 213   O#S</span>
 759 <span class="c"># 214   O#Cl</span>
 760 <span class="c"># 215   O#P</span>
 761 <span class="c"># 216   O#F</span>
 762 <span class="c"># 217   O#Br</span>
 763 <span class="c"># 218   O#Si</span>
 764 <span class="c"># 219   O#I</span>
 765 <span class="c"># 220   O#X</span>
 766 <span class="c"># 221   S#S</span>
 767 <span class="c"># 222   S#Cl</span>
 768 <span class="c"># 223   S#P</span>
 769 <span class="c"># 224   S#F</span>
 770 <span class="c"># 225   S#Br</span>
 771 <span class="c"># 226   S#Si</span>
 772 <span class="c"># 227   S#I</span>
 773 <span class="c"># 228   S#X</span>
 774 <span class="c"># 229   Cl#Cl</span>
 775 <span class="c"># 230   Cl#P</span>
 776 <span class="c"># 231   Cl#F</span>
 777 <span class="c"># 232   Cl#Br</span>
 778 <span class="c"># 233   Cl#Si</span>
 779 <span class="c"># 234   Cl#I</span>
 780 <span class="c"># 235   Cl#X</span>
 781 <span class="c"># 236   P#P</span>
 782 <span class="c"># 237   P#F</span>
 783 <span class="c"># 238   P#Br</span>
 784 <span class="c"># 239   P#Si</span>
 785 <span class="c"># 240   P#I</span>
 786 <span class="c"># 241   P#X</span>
 787 <span class="c"># 242   F#F</span>
 788 <span class="c"># 243   F#Br</span>
 789 <span class="c"># 244   F#Si</span>
 790 <span class="c"># 245   F#I</span>
 791 <span class="c"># 246   F#X</span>
 792 <span class="c"># 247   Br#Br</span>
 793 <span class="c"># 248   Br#Si</span>
 794 <span class="c"># 249   Br#I</span>
 795 <span class="c"># 250   Br#X</span>
 796 <span class="c"># 251   Si#Si</span>
 797 <span class="c"># 252   Si#I</span>
 798 <span class="c"># 253   Si#X</span>
 799 <span class="c"># 254   I#I</span>
 800 <span class="c"># 255   I#X</span>
 801 <span class="c"># 256   X#X</span>
 802 <span class="c"># 257   C$C</span>
 803 <span class="c"># 258   C$N</span>
 804 <span class="c"># 259   C$O</span>
 805 <span class="c"># 260   C$S</span>
 806 <span class="c"># 261   C$Cl</span>
 807 <span class="c"># 262   C$P</span>
 808 <span class="c"># 263   C$F</span>
 809 <span class="c"># 264   C$Br</span>
 810 <span class="c"># 265   C$Si</span>
 811 <span class="c"># 266   C$I</span>
 812 <span class="c"># 267   C$X</span>
 813 <span class="c"># 268   N$N</span>
 814 <span class="c"># 269   N$O</span>
 815 <span class="c"># 270   N$S</span>
 816 <span class="c"># 271   N$Cl</span>
 817 <span class="c"># 272   N$P</span>
 818 <span class="c"># 273   N$F</span>
 819 <span class="c"># 274   N$Br</span>
 820 <span class="c"># 275   N$Si</span>
 821 <span class="c"># 276   N$I</span>
 822 <span class="c"># 277   N$X</span>
 823 <span class="c"># 278   O$O</span>
 824 <span class="c"># 279   O$S</span>
 825 <span class="c"># 280   O$Cl</span>
 826 <span class="c"># 281   O$P</span>
 827 <span class="c"># 282   O$F</span>
 828 <span class="c"># 283   O$Br</span>
 829 <span class="c"># 284   O$Si</span>
 830 <span class="c"># 285   O$I</span>
 831 <span class="c"># 286   O$X</span>
 832 <span class="c"># 287   S$S</span>
 833 <span class="c"># 288   S$Cl</span>
 834 <span class="c"># 289   S$P</span>
 835 <span class="c"># 290   S$F</span>
 836 <span class="c"># 291   S$Br</span>
 837 <span class="c"># 292   S$Si</span>
 838 <span class="c"># 293   S$I</span>
 839 <span class="c"># 294   S$X</span>
 840 <span class="c"># 295   Cl$Cl</span>
 841 <span class="c"># 296   Cl$P</span>
 842 <span class="c"># 297   Cl$F</span>
 843 <span class="c"># 298   Cl$Br</span>
 844 <span class="c"># 299   Cl$Si</span>
 845 <span class="c"># 300   Cl$I</span>
 846 <span class="c"># 301   Cl$X</span>
 847 <span class="c"># 302   P$P</span>
 848 <span class="c"># 303   P$F</span>
 849 <span class="c"># 304   P$Br</span>
 850 <span class="c"># 305   P$Si</span>
 851 <span class="c"># 306   P$I</span>
 852 <span class="c"># 307   P$X</span>
 853 <span class="c"># 308   F$F</span>
 854 <span class="c"># 309   F$Br</span>
 855 <span class="c"># 310   F$Si</span>
 856 <span class="c"># 311   F$I</span>
 857 <span class="c"># 312   F$X</span>
 858 <span class="c"># 313   Br$Br</span>
 859 <span class="c"># 314   Br$Si</span>
 860 <span class="c"># 315   Br$I</span>
 861 <span class="c"># 316   Br$X</span>
 862 <span class="c"># 317   Si$Si</span>
 863 <span class="c"># 318   Si$I</span>
 864 <span class="c"># 319   Si$X</span>
 865 <span class="c"># 320   I$I</span>
 866 <span class="c"># 321   I$X</span>
 867 <span class="c"># 322   X$X</span>
 868 <span class="c">#</span>
 869 <span class="c"># Note: Instead of using &#39;%&#39; as rind bond as mentioned in the article [ Ref. 46 ], MayaChemTools</span>
 870 <span class="c"># used &#39;$&#39; as a symbol for ring bond to follow conventions used for MACCS 166 keys; the symbol &#39;%&#39;</span>
 871 <span class="c"># is used to indicate an aromatic query bond.</span>
 872 <span class="c">#</span>
<a name="_GenerateMACCS322Keys-"></a> 873 <span class="k">sub </span><span class="m">_GenerateMACCS322Keys</span> <span class="s">{</span>
 874   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 875   <span class="k">my</span><span class="s">(</span><span class="i">$KeyNum</span><span class="cm">,</span> <span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$MethodName</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 876 
 877   <span class="i">$SkipPosCheck</span> = <span class="n">1</span><span class="sc">;</span>
 878 
 879   <span class="c"># Generate and set key values...</span>
 880   <span class="j">KEYNUM:</span> <span class="k">for</span> <span class="i">$KeyNum</span> <span class="s">(</span><span class="n">1</span> .. <span class="n">322</span><span class="s">)</span> <span class="s">{</span>
 881     <span class="i">$MethodName</span> = <span class="q">&quot;_Generate322KeySetKey${KeyNum}&quot;</span><span class="sc">;</span>
 882     <span class="i">$KeyValue</span> = <span class="i">$This</span><span class="i">-&gt;$MethodName</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 883 
 884     <span class="k">if</span> <span class="s">(</span>!<span class="i">$KeyValue</span><span class="s">)</span> <span class="s">{</span>
 885       <span class="k">next</span> <span class="j">KEYNUM</span><span class="sc">;</span>
 886     <span class="s">}</span>
 887     <span class="i">$KeyIndex</span> = <span class="i">$KeyNum</span> - <span class="n">1</span><span class="sc">;</span>
 888     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 889       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsBitVector</span>}<span class="i">-&gt;SetBit</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 890     <span class="s">}</span>
 891     <span class="k">else</span> <span class="s">{</span>
 892       <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;SetValue</span><span class="s">(</span><span class="i">$KeyIndex</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$SkipPosCheck</span><span class="s">)</span><span class="sc">;</span>
 893     <span class="s">}</span>
 894   <span class="s">}</span>
 895 
 896   <span class="c"># Add key labels for MACCSKeyCount...</span>
 897   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 898     <span class="i">$This</span><span class="i">-&gt;_SetMACCSKeyCountValueIDs</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 899   <span class="s">}</span>
 900   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 901 <span class="s">}</span>
 902 
 903 <span class="c"># Set MACCS key count value IDs for fingerprint vector. The value IDs labels format</span>
 904 <span class="c"># is: Key&lt;KeyNum&gt;.</span>
 905 <span class="c">#</span>
 906 <span class="c"># By default, no value IDs are set for fingerprint vector values.</span>
 907 <span class="c">#</span>
<a name="_SetMACCSKeyCountValueIDs-"></a> 908 <span class="k">sub </span><span class="m">_SetMACCSKeyCountValueIDs</span> <span class="s">{</span>
 909   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 910 
 911   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="s">)</span> <span class="s">{</span>
 912     <span class="k">return</span><span class="sc">;</span>
 913   <span class="s">}</span>
 914   <span class="k">my</span><span class="s">(</span><span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span>
 915 
 916   <span class="i">@ValueIDs</span> = <span class="k">map</span> <span class="s">{</span> <span class="q">&quot;Key$_&quot;</span><span class="sc">;</span> <span class="s">}</span> <span class="s">(</span><span class="n">1</span> .. <span class="i">$This</span>-&gt;{<span class="w">Size</span>}<span class="s">)</span><span class="sc">;</span>
 917   <span class="i">$This</span>-&gt;{<span class="w">FingerprintsVector</span>}<span class="i">-&gt;AddValueIDs</span><span class="s">(</span>\<span class="i">@ValueIDs</span><span class="s">)</span><span class="sc">;</span>
 918 
 919   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
 920 <span class="s">}</span>
 921 
 922 <span class="c">##################################</span>
 923 <span class="c">#</span>
 924 <span class="c">#  Implementation of MDL MACCS 166 keys...</span>
 925 <span class="c">#</span>
 926 <span class="c">##################################</span>
 927 
 928 <span class="c"># Generate key 1 value as 1/0 indicating its presence/absence or count of its</span>
 929 <span class="c"># presence in a molecule.</span>
 930 <span class="c">#</span>
 931 <span class="c"># Key 1 description: ISOTOPE</span>
 932 <span class="c">#</span>
<a name="_Generate166KeySetKey1-"></a> 933 <span class="k">sub </span><span class="m">_Generate166KeySetKey1</span> <span class="s">{</span>
 934   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 935   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
 936 
 937   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
 938   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
 939     <span class="k">if</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;IsIsotope</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
 940       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 941         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
 942         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
 943       <span class="s">}</span>
 944       <span class="i">$KeyValue</span>++<span class="sc">;</span>
 945     <span class="s">}</span>
 946   <span class="s">}</span>
 947   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
 948 <span class="s">}</span>
 949 
 950 <span class="c"># Generate key 2 value as 1/0 indicating its presence/absence or count of its</span>
 951 <span class="c"># presence in a molecule.</span>
 952 <span class="c">#</span>
 953 <span class="c"># Key 2 description: 103 &lt; ATOMIC NO. &lt; 256</span>
 954 <span class="c">#</span>
<a name="_Generate166KeySetKey2-"></a> 955 <span class="k">sub </span><span class="m">_Generate166KeySetKey2</span> <span class="s">{</span>
 956   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 957   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
 958 
 959   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
 960   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
 961     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 962     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt; <span class="n">103</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt; <span class="n">256</span><span class="s">)</span> <span class="s">{</span>
 963       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 964         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
 965         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
 966       <span class="s">}</span>
 967       <span class="i">$KeyValue</span>++<span class="sc">;</span>
 968     <span class="s">}</span>
 969   <span class="s">}</span>
 970   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
 971 <span class="s">}</span>
 972 
 973 <span class="c"># Generate key 3 value as 1/0 indicating its presence/absence or count of its</span>
 974 <span class="c"># presence in a molecule.</span>
 975 <span class="c">#</span>
 976 <span class="c"># Key 3 description: GROUP IVA,VA,VIA (GroupNumber: 14, 15, 16) PERIODS 4-6 (Ge...)</span>
 977 <span class="c">#</span>
<a name="_Generate166KeySetKey3-"></a> 978 <span class="k">sub </span><span class="m">_Generate166KeySetKey3</span> <span class="s">{</span>
 979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
 980   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="cm">,</span> <span class="i">$PeriodNumber</span><span class="s">)</span><span class="sc">;</span>
 981 
 982   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
 983   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
 984     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
 985     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
 986       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
 987       <span class="i">$PeriodNumber</span> = <span class="i">PeriodicTable::GetElementPeriodNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
 988       <span class="k">if</span> <span class="s">(</span><span class="i">$PeriodNumber</span> =~ <span class="q">/^(4|5|6)$/</span> &amp;&amp; <span class="i">$GroupNumber</span> =~ <span class="q">/^(14|15|16)$/</span><span class="s">)</span> <span class="s">{</span>
 989         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
 990           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
 991           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
 992         <span class="s">}</span>
 993         <span class="i">$KeyValue</span>++<span class="sc">;</span>
 994       <span class="s">}</span>
 995     <span class="s">}</span>
 996   <span class="s">}</span>
 997   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
 998 <span class="s">}</span>
 999 
1000 <span class="c"># Generate key 4 value as 1/0 indicating its presence/absence or count of its</span>
1001 <span class="c"># presence in a molecule.</span>
1002 <span class="c">#</span>
1003 <span class="c"># Key 4 description: ACTINIDE</span>
1004 <span class="c">#</span>
<a name="_Generate166KeySetKey4-"></a>1005 <span class="k">sub </span><span class="m">_Generate166KeySetKey4</span> <span class="s">{</span>
1006   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1007   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
1008 
1009   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1010   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1011     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1012     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt;= <span class="n">89</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt;= <span class="n">103</span><span class="s">)</span> <span class="s">{</span>
1013       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1014         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1015         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1016       <span class="s">}</span>
1017       <span class="i">$KeyValue</span>++<span class="sc">;</span>
1018     <span class="s">}</span>
1019   <span class="s">}</span>
1020   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1021 <span class="s">}</span>
1022 
1023 <span class="c"># Generate key 5 value as 1/0 indicating its presence/absence or count of its</span>
1024 <span class="c"># presence in a molecule.</span>
1025 <span class="c">#</span>
1026 <span class="c"># Key 5 description: GROUP IIIB,IVB (Sc...)</span>
1027 <span class="c">#</span>
<a name="_Generate166KeySetKey5-"></a>1028 <span class="k">sub </span><span class="m">_Generate166KeySetKey5</span> <span class="s">{</span>
1029   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1030   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1031 
1032   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1033   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1034     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1035     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1036       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1037       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(3|4)$/</span><span class="s">)</span> <span class="s">{</span>
1038         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1039           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1040           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1041         <span class="s">}</span>
1042         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1043       <span class="s">}</span>
1044     <span class="s">}</span>
1045   <span class="s">}</span>
1046   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1047 <span class="s">}</span>
1048 
1049 <span class="c"># Generate key 6 value as 1/0 indicating its presence/absence or count of its</span>
1050 <span class="c"># presence in a molecule.</span>
1051 <span class="c">#</span>
1052 <span class="c"># Key 6 description: LANTHANIDE</span>
1053 <span class="c">#</span>
<a name="_Generate166KeySetKey6-"></a>1054 <span class="k">sub </span><span class="m">_Generate166KeySetKey6</span> <span class="s">{</span>
1055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1056   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
1057 
1058   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1059   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1060     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1061     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span> &gt;= <span class="n">57</span> &amp;&amp; <span class="i">$AtomicNumber</span> &lt;= <span class="n">71</span><span class="s">)</span> <span class="s">{</span>
1062       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1063         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1064         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1065       <span class="s">}</span>
1066       <span class="i">$KeyValue</span>++<span class="sc">;</span>
1067     <span class="s">}</span>
1068   <span class="s">}</span>
1069   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1070 <span class="s">}</span>
1071 
1072 <span class="c"># Generate key 7 value as 1/0 indicating its presence/absence or count of its</span>
1073 <span class="c"># presence in a molecule.</span>
1074 <span class="c">#</span>
1075 <span class="c"># Key 7 description: GROUP VB,VIB,VIIB (V...)</span>
1076 <span class="c">#</span>
<a name="_Generate166KeySetKey7-"></a>1077 <span class="k">sub </span><span class="m">_Generate166KeySetKey7</span> <span class="s">{</span>
1078   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1079   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1080 
1081   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1082   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1083     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1084     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1085       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1086       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(5|6|7)$/</span><span class="s">)</span> <span class="s">{</span>
1087         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1088           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1089           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1090         <span class="s">}</span>
1091         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1092       <span class="s">}</span>
1093     <span class="s">}</span>
1094   <span class="s">}</span>
1095   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1096 <span class="s">}</span>
1097 
1098 <span class="c"># Generate key 8 value as 1/0 indicating its presence/absence or count of its</span>
1099 <span class="c"># presence in a molecule.</span>
1100 <span class="c">#</span>
1101 <span class="c"># Key 8 description: QAAA@1</span>
1102 <span class="c">#</span>
<a name="_Generate166KeySetKey8-"></a>1103 <span class="k">sub </span><span class="m">_Generate166KeySetKey8</span> <span class="s">{</span>
1104   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1105   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
1106 
1107   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span>
1108   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1109   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1110     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
1111       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1112         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1113         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1114       <span class="s">}</span>
1115       <span class="i">$KeyValue</span>++<span class="sc">;</span>
1116     <span class="s">}</span>
1117   <span class="s">}</span>
1118   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1119 <span class="s">}</span>
1120 
1121 <span class="c"># Generate key 9 value as 1/0 indicating its presence/absence or count of its</span>
1122 <span class="c"># presence in a molecule.</span>
1123 <span class="c">#</span>
1124 <span class="c"># Key 9 description: GROUP VIII (Fe...)</span>
1125 <span class="c">#</span>
<a name="_Generate166KeySetKey9-"></a>1126 <span class="k">sub </span><span class="m">_Generate166KeySetKey9</span> <span class="s">{</span>
1127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1128   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1129 
1130   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1131   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1132     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1133     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1134       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1135       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(8|9|10)$/</span><span class="s">)</span> <span class="s">{</span>
1136         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1137           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1138           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1139         <span class="s">}</span>
1140         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1141       <span class="s">}</span>
1142     <span class="s">}</span>
1143   <span class="s">}</span>
1144   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1145 <span class="s">}</span>
1146 
1147 <span class="c"># Generate key 10 value as 1/0 indicating its presence/absence or count of its</span>
1148 <span class="c"># presence in a molecule.</span>
1149 <span class="c">#</span>
1150 <span class="c"># Key 10 description: GROUP IIA (ALKALINE EARTH)</span>
1151 <span class="c">#</span>
<a name="_Generate166KeySetKey10-"></a>1152 <span class="k">sub </span><span class="m">_Generate166KeySetKey10</span> <span class="s">{</span>
1153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1154   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1155 
1156   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1157   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1158     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1159     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1160       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1161       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^2$/</span><span class="s">)</span> <span class="s">{</span>
1162         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1163           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1164           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1165         <span class="s">}</span>
1166         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1167       <span class="s">}</span>
1168     <span class="s">}</span>
1169   <span class="s">}</span>
1170   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1171 <span class="s">}</span>
1172 
1173 <span class="c"># Generate key 11 value as 1/0 indicating its presence/absence or count of its</span>
1174 <span class="c"># presence in a molecule.</span>
1175 <span class="c">#</span>
1176 <span class="c"># Key 11 description: 4M RING</span>
1177 <span class="c">#</span>
<a name="_Generate166KeySetKey11-"></a>1178 <span class="k">sub </span><span class="m">_Generate166KeySetKey11</span> <span class="s">{</span>
1179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1180   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
1181 
1182   <span class="i">$RingSize</span> = <span class="n">4</span><span class="sc">;</span>
1183   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1184   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
1185 
1186   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1187     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
1188   <span class="s">}</span>
1189   <span class="k">else</span> <span class="s">{</span>
1190     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
1191   <span class="s">}</span>
1192   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1193 <span class="s">}</span>
1194 
1195 <span class="c"># Generate key 12 value as 1/0 indicating its presence/absence or count of its</span>
1196 <span class="c"># presence in a molecule.</span>
1197 <span class="c">#</span>
1198 <span class="c"># Key 12 description: GROUP IB,IIB (Cu...)</span>
1199 <span class="c">#</span>
<a name="_Generate166KeySetKey12-"></a>1200 <span class="k">sub </span><span class="m">_Generate166KeySetKey12</span> <span class="s">{</span>
1201   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1202   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1203 
1204   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1205   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1206     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1207     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1208       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1209       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^(11|12)$/</span><span class="s">)</span> <span class="s">{</span>
1210         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1211           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1212           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1213         <span class="s">}</span>
1214         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1215       <span class="s">}</span>
1216     <span class="s">}</span>
1217   <span class="s">}</span>
1218   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1219 <span class="s">}</span>
1220 
1221 <span class="c"># Generate key 13 value as 1/0 indicating its presence/absence or count of its</span>
1222 <span class="c"># presence in a molecule.</span>
1223 <span class="c">#</span>
1224 <span class="c"># Key 13 description: ON(C)C</span>
1225 <span class="c">#</span>
<a name="_Generate166KeySetKey13-"></a>1226 <span class="k">sub </span><span class="m">_Generate166KeySetKey13</span> <span class="s">{</span>
1227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1228   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1229 
1230   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
1231   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
1232   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1233 
1234   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1235 <span class="s">}</span>
1236 
1237 <span class="c"># Generate key 14 value as 1/0 indicating its presence/absence or count of its</span>
1238 <span class="c"># presence in a molecule.</span>
1239 <span class="c">#</span>
1240 <span class="c"># Key 14 description: S-S</span>
1241 <span class="c">#</span>
<a name="_Generate166KeySetKey14-"></a>1242 <span class="k">sub </span><span class="m">_Generate166KeySetKey14</span> <span class="s">{</span>
1243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1244   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
1245 
1246   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1247 <span class="s">}</span>
1248 
1249 <span class="c"># Generate key 15 value as 1/0 indicating its presence/absence or count of its</span>
1250 <span class="c"># presence in a molecule.</span>
1251 <span class="c">#</span>
1252 <span class="c"># Key 15 description: OC(O)O</span>
1253 <span class="c">#</span>
<a name="_Generate166KeySetKey15-"></a>1254 <span class="k">sub </span><span class="m">_Generate166KeySetKey15</span> <span class="s">{</span>
1255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1256   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1257 
1258   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1259   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1260   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1261 
1262   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1263 <span class="s">}</span>
1264 
1265 <span class="c"># Generate key 16 value as 1/0 indicating its presence/absence or count of its</span>
1266 <span class="c"># presence in a molecule.</span>
1267 <span class="c">#</span>
1268 <span class="c"># Key 16 description: QAA@1</span>
1269 <span class="c">#</span>
<a name="_Generate166KeySetKey16-"></a>1270 <span class="k">sub </span><span class="m">_Generate166KeySetKey16</span> <span class="s">{</span>
1271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1272   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
1273 
1274   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span>
1275   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1276   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1277     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
1278       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1279         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1280         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1281       <span class="s">}</span>
1282       <span class="i">$KeyValue</span>++<span class="sc">;</span>
1283     <span class="s">}</span>
1284   <span class="s">}</span>
1285   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1286 <span class="s">}</span>
1287 
1288 <span class="c"># Generate key 17 value as 1/0 indicating its presence/absence or count of its</span>
1289 <span class="c"># presence in a molecule.</span>
1290 <span class="c">#</span>
1291 <span class="c"># Key 17 description: CTC</span>
1292 <span class="c">#</span>
<a name="_Generate166KeySetKey17-"></a>1293 <span class="k">sub </span><span class="m">_Generate166KeySetKey17</span> <span class="s">{</span>
1294   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1295   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
1296 
1297   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1298 <span class="s">}</span>
1299 
1300 <span class="c"># Generate key 18 value as 1/0 indicating its presence/absence or count of its</span>
1301 <span class="c"># presence in a molecule.</span>
1302 <span class="c">#</span>
1303 <span class="c"># Key 18 description: GROUP IIIA (B...)</span>
1304 <span class="c">#</span>
<a name="_Generate166KeySetKey18-"></a>1305 <span class="k">sub </span><span class="m">_Generate166KeySetKey18</span> <span class="s">{</span>
1306   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1307   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1308 
1309   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1310   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1311     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1312     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1313       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1314       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^13$/</span><span class="s">)</span> <span class="s">{</span>
1315         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1316           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1317           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1318         <span class="s">}</span>
1319         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1320       <span class="s">}</span>
1321     <span class="s">}</span>
1322   <span class="s">}</span>
1323   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1324 <span class="s">}</span>
1325 
1326 <span class="c"># Generate key 19 value as 1/0 indicating its presence/absence or count of its</span>
1327 <span class="c"># presence in a molecule.</span>
1328 <span class="c">#</span>
1329 <span class="c"># Key 19 description: 7M RING</span>
1330 <span class="c">#</span>
<a name="_Generate166KeySetKey19-"></a>1331 <span class="k">sub </span><span class="m">_Generate166KeySetKey19</span> <span class="s">{</span>
1332   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1333   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
1334 
1335   <span class="i">$RingSize</span> = <span class="n">7</span><span class="sc">;</span>
1336   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1337   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
1338 
1339   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1340   <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span><span class="s">)</span> <span class="s">{</span>
1341     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="i">$NumOfRings</span><span class="sc">;</span>
1342   <span class="s">}</span>
1343   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1344 <span class="s">}</span>
1345 
1346 <span class="c"># Generate key 20 value as 1/0 indicating its presence/absence or count of its</span>
1347 <span class="c"># presence in a molecule.</span>
1348 <span class="c">#</span>
1349 <span class="c"># Key 20 description: SI</span>
1350 <span class="c">#</span>
<a name="_Generate166KeySetKey20-"></a>1351 <span class="k">sub </span><span class="m">_Generate166KeySetKey20</span> <span class="s">{</span>
1352   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1353 
1354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="s">)</span><span class="sc">;</span>
1355 <span class="s">}</span>
1356 
1357 <span class="c"># Generate key 21 value as 1/0 indicating its presence/absence or count of its</span>
1358 <span class="c"># presence in a molecule.</span>
1359 <span class="c">#</span>
1360 <span class="c"># Key 21 description: C=C(Q)Q</span>
1361 <span class="c">#</span>
<a name="_Generate166KeySetKey21-"></a>1362 <span class="k">sub </span><span class="m">_Generate166KeySetKey21</span> <span class="s">{</span>
1363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1365 
1366   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1369 
1370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1371 <span class="s">}</span>
1372 
1373 <span class="c"># Generate key 22 value as 1/0 indicating its presence/absence or count of its</span>
1374 <span class="c"># presence in a molecule.</span>
1375 <span class="c">#</span>
1376 <span class="c"># Key 22 description: 3M RING</span>
1377 <span class="c">#</span>
<a name="_Generate166KeySetKey22-"></a>1378 <span class="k">sub </span><span class="m">_Generate166KeySetKey22</span> <span class="s">{</span>
1379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1380   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
1381 
1382   <span class="i">$RingSize</span> = <span class="n">3</span><span class="sc">;</span>
1383   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1384   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
1385 
1386   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1387     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
1388   <span class="s">}</span>
1389   <span class="k">else</span> <span class="s">{</span>
1390     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
1391   <span class="s">}</span>
1392   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1393 <span class="s">}</span>
1394 
1395 <span class="c"># Generate key 23 value as 1/0 indicating its presence/absence or count of its</span>
1396 <span class="c"># presence in a molecule.</span>
1397 <span class="c">#</span>
1398 <span class="c"># Key 23 description: NC(O)O</span>
1399 <span class="c">#</span>
<a name="_Generate166KeySetKey23-"></a>1400 <span class="k">sub </span><span class="m">_Generate166KeySetKey23</span> <span class="s">{</span>
1401   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1402   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1403 
1404   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1405   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1406   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1407 
1408   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1409 <span class="s">}</span>
1410 
1411 <span class="c"># Generate key 24 value as 1/0 indicating its presence/absence or count of its</span>
1412 <span class="c"># presence in a molecule.</span>
1413 <span class="c">#</span>
1414 <span class="c"># Key 24 description: N-O</span>
1415 <span class="c">#</span>
<a name="_Generate166KeySetKey24-"></a>1416 <span class="k">sub </span><span class="m">_Generate166KeySetKey24</span> <span class="s">{</span>
1417   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1418   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
1419 
1420   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1421 <span class="s">}</span>
1422 
1423 <span class="c"># Generate key 25 value as 1/0 indicating its presence/absence or count of its</span>
1424 <span class="c"># presence in a molecule.</span>
1425 <span class="c">#</span>
1426 <span class="c"># Key 25 description: NC(N)N</span>
1427 <span class="c">#</span>
<a name="_Generate166KeySetKey25-"></a>1428 <span class="k">sub </span><span class="m">_Generate166KeySetKey25</span> <span class="s">{</span>
1429   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1430   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1431 
1432   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1433   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1434   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1435 
1436   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1437 <span class="s">}</span>
1438 
1439 <span class="c"># Generate key 26 value as 1/0 indicating its presence/absence or count of its</span>
1440 <span class="c"># presence in a molecule.</span>
1441 <span class="c">#</span>
1442 <span class="c"># Key 26 description: C$=C($A)$A</span>
1443 <span class="c">#</span>
<a name="_Generate166KeySetKey26-"></a>1444 <span class="k">sub </span><span class="m">_Generate166KeySetKey26</span> <span class="s">{</span>
1445   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1446   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1447 
1448   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1449   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1450   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$=&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
1451 
1452   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1453 <span class="s">}</span>
1454 
1455 <span class="c"># Generate key 27 value as 1/0 indicating its presence/absence or count of its</span>
1456 <span class="c"># presence in a molecule.</span>
1457 <span class="c">#</span>
1458 <span class="c"># Key 27 description: I</span>
1459 <span class="c">#</span>
<a name="_Generate166KeySetKey27-"></a>1460 <span class="k">sub </span><span class="m">_Generate166KeySetKey27</span> <span class="s">{</span>
1461   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1462 
1463   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="s">)</span><span class="sc">;</span>
1464 <span class="s">}</span>
1465 
1466 <span class="c"># Generate key 28 value as 1/0 indicating its presence/absence or count of its</span>
1467 <span class="c"># presence in a molecule.</span>
1468 <span class="c">#</span>
1469 <span class="c"># Key 28 description: QCH2Q</span>
1470 <span class="c">#</span>
<a name="_Generate166KeySetKey28-"></a>1471 <span class="k">sub </span><span class="m">_Generate166KeySetKey28</span> <span class="s">{</span>
1472   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1473   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1474 
1475   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1476   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1477   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1478   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
1479   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
1480 
1481   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1482 <span class="s">}</span>
1483 
1484 <span class="c"># Generate key 29 value as 1/0 indicating its presence/absence or count of its</span>
1485 <span class="c"># presence in a molecule.</span>
1486 <span class="c">#</span>
1487 <span class="c"># Key 29 description: P</span>
1488 <span class="c">#</span>
<a name="_Generate166KeySetKey29-"></a>1489 <span class="k">sub </span><span class="m">_Generate166KeySetKey29</span> <span class="s">{</span>
1490   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1491 
1492   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="s">)</span><span class="sc">;</span>
1493 <span class="s">}</span>
1494 
1495 <span class="c"># Generate key 30 value as 1/0 indicating its presence/absence or count of its</span>
1496 <span class="c"># presence in a molecule.</span>
1497 <span class="c">#</span>
1498 <span class="c"># Key 30 description: CQ(C)(C)A</span>
1499 <span class="c">#</span>
<a name="_Generate166KeySetKey30-"></a>1500 <span class="k">sub </span><span class="m">_Generate166KeySetKey30</span> <span class="s">{</span>
1501   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1502   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1503 
1504   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
1505   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1506   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1507 
1508   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1509 <span class="s">}</span>
1510 
1511 <span class="c"># Generate key 31 value as 1/0 indicating its presence/absence or count of its</span>
1512 <span class="c"># presence in a molecule.</span>
1513 <span class="c">#</span>
1514 <span class="c"># Key 31 description: QX</span>
1515 <span class="c">#</span>
<a name="_Generate166KeySetKey31-"></a>1516 <span class="k">sub </span><span class="m">_Generate166KeySetKey31</span> <span class="s">{</span>
1517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1518 
1519   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
1520 <span class="s">}</span>
1521 
1522 <span class="c"># Generate key 32 value as 1/0 indicating its presence/absence or count of its</span>
1523 <span class="c"># presence in a molecule.</span>
1524 <span class="c">#</span>
1525 <span class="c"># Key 32 description: CSN</span>
1526 <span class="c">#</span>
<a name="_Generate166KeySetKey32-"></a>1527 <span class="k">sub </span><span class="m">_Generate166KeySetKey32</span> <span class="s">{</span>
1528   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1529   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1530 
1531   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1532   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1533   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1534 
1535   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1536 <span class="s">}</span>
1537 
1538 <span class="c"># Generate key 33 value as 1/0 indicating its presence/absence or count of its</span>
1539 <span class="c"># presence in a molecule.</span>
1540 <span class="c">#</span>
1541 <span class="c"># Key 33 description: NS</span>
1542 <span class="c">#</span>
<a name="_Generate166KeySetKey33-"></a>1543 <span class="k">sub </span><span class="m">_Generate166KeySetKey33</span> <span class="s">{</span>
1544   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1545 
1546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
1547 <span class="s">}</span>
1548 
1549 <span class="c"># Generate key 34 value as 1/0 indicating its presence/absence or count of its</span>
1550 <span class="c"># presence in a molecule.</span>
1551 <span class="c">#</span>
1552 <span class="c"># Key 34 description: CH2=A</span>
1553 <span class="c">#</span>
<a name="_Generate166KeySetKey34-"></a>1554 <span class="k">sub </span><span class="m">_Generate166KeySetKey34</span> <span class="s">{</span>
1555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1556   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1557 
1558   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1559   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1560   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="s">)</span><span class="sc">;</span>
1561   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
1562   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
1563 
1564   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1565 <span class="s">}</span>
1566 
1567 <span class="c"># Generate key 35 value as 1/0 indicating its presence/absence or count of its</span>
1568 <span class="c"># presence in a molecule.</span>
1569 <span class="c">#</span>
1570 <span class="c"># Key 35 description: GROUP IA (ALKALI METAL)</span>
1571 <span class="c">#</span>
<a name="_Generate166KeySetKey35-"></a>1572 <span class="k">sub </span><span class="m">_Generate166KeySetKey35</span> <span class="s">{</span>
1573   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1574   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$AtomicNumber</span><span class="cm">,</span> <span class="i">$GroupNumber</span><span class="s">)</span><span class="sc">;</span>
1575 
1576   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
1577   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
1578     <span class="i">$AtomicNumber</span> = <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1579     <span class="k">if</span> <span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span> <span class="s">{</span>
1580       <span class="i">$GroupNumber</span> = <span class="i">PeriodicTable::GetElementGroupNumber</span><span class="s">(</span><span class="i">$AtomicNumber</span><span class="s">)</span><span class="sc">;</span>
1581       <span class="k">if</span> <span class="s">(</span><span class="i">$GroupNumber</span> =~ <span class="q">/^1$/</span><span class="s">)</span> <span class="s">{</span>
1582         <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
1583           <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
1584           <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
1585         <span class="s">}</span>
1586         <span class="i">$KeyValue</span>++<span class="sc">;</span>
1587       <span class="s">}</span>
1588     <span class="s">}</span>
1589   <span class="s">}</span>
1590   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1591 <span class="s">}</span>
1592 
1593 <span class="c"># Generate key 36 value as 1/0 indicating its presence/absence or count of its</span>
1594 <span class="c"># presence in a molecule.</span>
1595 <span class="c">#</span>
1596 <span class="c"># Key 36 description: S HETEROCYCLE</span>
1597 <span class="c">#</span>
<a name="_Generate166KeySetKey36-"></a>1598 <span class="k">sub </span><span class="m">_Generate166KeySetKey36</span> <span class="s">{</span>
1599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1600   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
1601 
1602   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
1603 <span class="s">}</span>
1604 
1605 <span class="c"># Generate key 37 value as 1/0 indicating its presence/absence or count of its</span>
1606 <span class="c"># presence in a molecule.</span>
1607 <span class="c">#</span>
1608 <span class="c"># Key 37 description: NC(O)N</span>
1609 <span class="c">#</span>
<a name="_Generate166KeySetKey37-"></a>1610 <span class="k">sub </span><span class="m">_Generate166KeySetKey37</span> <span class="s">{</span>
1611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1612   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1613 
1614   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1615   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1616   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1617 
1618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1619 <span class="s">}</span>
1620 
1621 <span class="c"># Generate key 38 value as 1/0 indicating its presence/absence or count of its</span>
1622 <span class="c"># presence in a molecule.</span>
1623 <span class="c">#</span>
1624 <span class="c"># Key 38 description: NC(C)N</span>
1625 <span class="c">#</span>
<a name="_Generate166KeySetKey38-"></a>1626 <span class="k">sub </span><span class="m">_Generate166KeySetKey38</span> <span class="s">{</span>
1627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1628   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1629 
1630   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1631   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1632   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1633 
1634   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1635 <span class="s">}</span>
1636 
1637 <span class="c"># Generate key 39 value as 1/0 indicating its presence/absence or count of its</span>
1638 <span class="c"># presence in a molecule.</span>
1639 <span class="c">#</span>
1640 <span class="c"># Key 39 description: OS(O)O</span>
1641 <span class="c">#</span>
<a name="_Generate166KeySetKey39-"></a>1642 <span class="k">sub </span><span class="m">_Generate166KeySetKey39</span> <span class="s">{</span>
1643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1644   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1645 
1646   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1647   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1648   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1649 
1650   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1651 <span class="s">}</span>
1652 
1653 <span class="c"># Generate key 40 value as 1/0 indicating its presence/absence or count of its</span>
1654 <span class="c"># presence in a molecule.</span>
1655 <span class="c">#</span>
1656 <span class="c"># Key 40 description: S-O</span>
1657 <span class="c">#</span>
<a name="_Generate166KeySetKey40-"></a>1658 <span class="k">sub </span><span class="m">_Generate166KeySetKey40</span> <span class="s">{</span>
1659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1660   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
1661 
1662   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1663 <span class="s">}</span>
1664 
1665 <span class="c"># Generate key 41 value as 1/0 indicating its presence/absence or count of its</span>
1666 <span class="c"># presence in a molecule.</span>
1667 <span class="c">#</span>
1668 <span class="c"># Key 41 description: CTN</span>
1669 <span class="c">#</span>
<a name="_Generate166KeySetKey41-"></a>1670 <span class="k">sub </span><span class="m">_Generate166KeySetKey41</span> <span class="s">{</span>
1671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1672   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
1673 
1674   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1675 <span class="s">}</span>
1676 
1677 <span class="c"># Generate key 42 value as 1/0 indicating its presence/absence or count of its</span>
1678 <span class="c"># presence in a molecule.</span>
1679 <span class="c">#</span>
1680 <span class="c"># Key 42 description: F</span>
1681 <span class="c">#</span>
<a name="_Generate166KeySetKey42-"></a>1682 <span class="k">sub </span><span class="m">_Generate166KeySetKey42</span> <span class="s">{</span>
1683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1684 
1685   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="s">)</span><span class="sc">;</span>
1686 <span class="s">}</span>
1687 
1688 <span class="c"># Generate key 43 value as 1/0 indicating its presence/absence or count of its</span>
1689 <span class="c"># presence in a molecule.</span>
1690 <span class="c">#</span>
1691 <span class="c"># Key 43 description: QHAQH</span>
1692 <span class="c">#</span>
<a name="_Generate166KeySetKey43-"></a>1693 <span class="k">sub </span><span class="m">_Generate166KeySetKey43</span> <span class="s">{</span>
1694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1695   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1696 
1697   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
1698   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
1699 
1700   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1701   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1702   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
1703 
1704   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
1705 
1706   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1707 <span class="s">}</span>
1708 
1709 <span class="c"># Generate key 44 value as 1/0 indicating its presence/absence or count of its</span>
1710 <span class="c"># presence in a molecule.</span>
1711 <span class="c">#</span>
1712 <span class="c"># Key 44 description: OTHER</span>
1713 <span class="c">#</span>
<a name="_Generate166KeySetKey44-"></a>1714 <span class="k">sub </span><span class="m">_Generate166KeySetKey44</span> <span class="s">{</span>
1715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1716 
1717   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="s">)</span><span class="sc">;</span>
1718 <span class="s">}</span>
1719 
1720 <span class="c"># Generate key 45 value as 1/0 indicating its presence/absence or count of its</span>
1721 <span class="c"># presence in a molecule.</span>
1722 <span class="c">#</span>
1723 <span class="c"># Key 45 description: C=CN</span>
1724 <span class="c">#</span>
<a name="_Generate166KeySetKey45-"></a>1725 <span class="k">sub </span><span class="m">_Generate166KeySetKey45</span> <span class="s">{</span>
1726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1727   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1728 
1729   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1730   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1731   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1732 
1733   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1734 <span class="s">}</span>
1735 
1736 <span class="c"># Generate key 46 value as 1/0 indicating its presence/absence or count of its</span>
1737 <span class="c"># presence in a molecule.</span>
1738 <span class="c">#</span>
1739 <span class="c"># Key 46 description: BR</span>
1740 <span class="c">#</span>
<a name="_Generate166KeySetKey46-"></a>1741 <span class="k">sub </span><span class="m">_Generate166KeySetKey46</span> <span class="s">{</span>
1742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1743 
1744   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="s">)</span><span class="sc">;</span>
1745 <span class="s">}</span>
1746 
1747 <span class="c"># Generate key 47 value as 1/0 indicating its presence/absence or count of its</span>
1748 <span class="c"># presence in a molecule.</span>
1749 <span class="c">#</span>
1750 <span class="c"># Key 47 description: SAN</span>
1751 <span class="c">#</span>
<a name="_Generate166KeySetKey47-"></a>1752 <span class="k">sub </span><span class="m">_Generate166KeySetKey47</span> <span class="s">{</span>
1753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1755 
1756   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
1757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1759 
1760   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1761 <span class="s">}</span>
1762 
1763 <span class="c"># Generate key 48 value as 1/0 indicating its presence/absence or count of its</span>
1764 <span class="c"># presence in a molecule.</span>
1765 <span class="c">#</span>
1766 <span class="c"># Key 48 description: OQ(O)O</span>
1767 <span class="c">#</span>
<a name="_Generate166KeySetKey48-"></a>1768 <span class="k">sub </span><span class="m">_Generate166KeySetKey48</span> <span class="s">{</span>
1769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1770   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1771 
1772   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
1773   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1774   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1775 
1776   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1777 <span class="s">}</span>
1778 
1779 <span class="c"># Generate key 49 value as 1/0 indicating its presence/absence or count of its</span>
1780 <span class="c"># presence in a molecule.</span>
1781 <span class="c">#</span>
1782 <span class="c"># Key 49 description: CHARGE</span>
1783 <span class="c">#</span>
<a name="_Generate166KeySetKey49-"></a>1784 <span class="k">sub </span><span class="m">_Generate166KeySetKey49</span> <span class="s">{</span>
1785   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1786   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
1787 
1788   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
1789   <span class="i">$KeyValue</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetFormalCharge</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
1790 
1791   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
1792 <span class="s">}</span>
1793 
1794 <span class="c"># Generate key 50 value as 1/0 indicating its presence/absence or count of its</span>
1795 <span class="c"># presence in a molecule.</span>
1796 <span class="c">#</span>
1797 <span class="c"># Key 50 description: C=C(C)C</span>
1798 <span class="c">#</span>
<a name="_Generate166KeySetKey50-"></a>1799 <span class="k">sub </span><span class="m">_Generate166KeySetKey50</span> <span class="s">{</span>
1800   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1801   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1802 
1803   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
1804   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
1805   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1806 
1807   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1808 <span class="s">}</span>
1809 
1810 <span class="c"># Generate key 51 value as 1/0 indicating its presence/absence or count of its</span>
1811 <span class="c"># presence in a molecule.</span>
1812 <span class="c">#</span>
1813 <span class="c"># Key 51 description: CSO</span>
1814 <span class="c">#</span>
<a name="_Generate166KeySetKey51-"></a>1815 <span class="k">sub </span><span class="m">_Generate166KeySetKey51</span> <span class="s">{</span>
1816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1817   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1818 
1819   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1820   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1821   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1822 
1823   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1824 <span class="s">}</span>
1825 
1826 <span class="c"># Generate key 52 value as 1/0 indicating its presence/absence or count of its</span>
1827 <span class="c"># presence in a molecule.</span>
1828 <span class="c">#</span>
1829 <span class="c"># Key 52 description: NN</span>
1830 <span class="c">#</span>
<a name="_Generate166KeySetKey52-"></a>1831 <span class="k">sub </span><span class="m">_Generate166KeySetKey52</span> <span class="s">{</span>
1832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1833 
1834   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
1835 <span class="s">}</span>
1836 
1837 <span class="c"># Generate key 53 value as 1/0 indicating its presence/absence or count of its</span>
1838 <span class="c"># presence in a molecule.</span>
1839 <span class="c">#</span>
1840 <span class="c"># Key 53 description: QHAAAQH</span>
1841 <span class="c">#</span>
<a name="_Generate166KeySetKey53-"></a>1842 <span class="k">sub </span><span class="m">_Generate166KeySetKey53</span> <span class="s">{</span>
1843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1844   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1845 
1846   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1847   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1848   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
1849 
1850   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1851 <span class="s">}</span>
1852 
1853 <span class="c"># Generate key 54 value as 1/0 indicating its presence/absence or count of its</span>
1854 <span class="c"># presence in a molecule.</span>
1855 <span class="c">#</span>
1856 <span class="c"># Key 54 description: QHAAQH</span>
1857 <span class="c">#</span>
<a name="_Generate166KeySetKey54-"></a>1858 <span class="k">sub </span><span class="m">_Generate166KeySetKey54</span> <span class="s">{</span>
1859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1860   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1861 
1862   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1863   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1864   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
1865 
1866   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
1867 <span class="s">}</span>
1868 
1869 <span class="c"># Generate key 55 value as 1/0 indicating its presence/absence or count of its</span>
1870 <span class="c"># presence in a molecule.</span>
1871 <span class="c">#</span>
1872 <span class="c"># Key 55 description: OSO</span>
1873 <span class="c">#</span>
<a name="_Generate166KeySetKey55-"></a>1874 <span class="k">sub </span><span class="m">_Generate166KeySetKey55</span> <span class="s">{</span>
1875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1876   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1877 
1878   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1879   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
1880   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1881 
1882   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1883 <span class="s">}</span>
1884 
1885 <span class="c"># Generate key 56 value as 1/0 indicating its presence/absence or count of its</span>
1886 <span class="c"># presence in a molecule.</span>
1887 <span class="c">#</span>
1888 <span class="c"># Key 56 description: ON(O)C</span>
1889 <span class="c">#</span>
<a name="_Generate166KeySetKey56-"></a>1890 <span class="k">sub </span><span class="m">_Generate166KeySetKey56</span> <span class="s">{</span>
1891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1892   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1893 
1894   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
1895   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
1896   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1897 
1898   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1899 <span class="s">}</span>
1900 
1901 <span class="c"># Generate key 57 value as 1/0 indicating its presence/absence or count of its</span>
1902 <span class="c"># presence in a molecule.</span>
1903 <span class="c">#</span>
1904 <span class="c"># Key 57 description: O HETEROCYCLE</span>
1905 <span class="c">#</span>
<a name="_Generate166KeySetKey57-"></a>1906 <span class="k">sub </span><span class="m">_Generate166KeySetKey57</span> <span class="s">{</span>
1907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1908   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
1909 
1910   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
1911 <span class="s">}</span>
1912 
1913 <span class="c"># Generate key 58 value as 1/0 indicating its presence/absence or count of its</span>
1914 <span class="c"># presence in a molecule.</span>
1915 <span class="c">#</span>
1916 <span class="c"># Key 58 description: QSQ</span>
1917 <span class="c">#</span>
<a name="_Generate166KeySetKey58-"></a>1918 <span class="k">sub </span><span class="m">_Generate166KeySetKey58</span> <span class="s">{</span>
1919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1920   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1921 
1922   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1923   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
1924   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1925 
1926   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1927 <span class="s">}</span>
1928 
1929 <span class="c"># Generate key 59 value as 1/0 indicating its presence/absence or count of its</span>
1930 <span class="c"># presence in a molecule.</span>
1931 <span class="c">#</span>
1932 <span class="c"># Key 59 description: Snot%A%A</span>
1933 <span class="c">#</span>
<a name="_Generate166KeySetKey59-"></a>1934 <span class="k">sub </span><span class="m">_Generate166KeySetKey59</span> <span class="s">{</span>
1935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1936   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1937 
1938   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
1939   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1940   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
1941 
1942   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1943 <span class="s">}</span>
1944 
1945 <span class="c"># Generate key 60 value as 1/0 indicating its presence/absence or count of its</span>
1946 <span class="c"># presence in a molecule.</span>
1947 <span class="c">#</span>
1948 <span class="c"># Key 60 description: S=O</span>
1949 <span class="c">#</span>
<a name="_Generate166KeySetKey60-"></a>1950 <span class="k">sub </span><span class="m">_Generate166KeySetKey60</span> <span class="s">{</span>
1951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1952   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
1953 
1954   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
1955 <span class="s">}</span>
1956 
1957 <span class="c"># Generate key 61 value as 1/0 indicating its presence/absence or count of its</span>
1958 <span class="c"># presence in a molecule.</span>
1959 <span class="c">#</span>
1960 <span class="c"># Key 61 description: AS(A)A</span>
1961 <span class="c">#</span>
<a name="_Generate166KeySetKey61-"></a>1962 <span class="k">sub </span><span class="m">_Generate166KeySetKey61</span> <span class="s">{</span>
1963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1964   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1965 
1966   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;S&#39;</span><span class="sc">;</span>
1967   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1968   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
1969 
1970   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1971 <span class="s">}</span>
1972 
1973 <span class="c"># Generate key 62 value as 1/0 indicating its presence/absence or count of its</span>
1974 <span class="c"># presence in a molecule.</span>
1975 <span class="c">#</span>
1976 <span class="c"># Key 62 description: A$A!A$A</span>
1977 <span class="c">#</span>
<a name="_Generate166KeySetKey62-"></a>1978 <span class="k">sub </span><span class="m">_Generate166KeySetKey62</span> <span class="s">{</span>
1979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1980   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1981 
1982   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
1983   <span class="i">$BondSymbol</span> = <span class="q">&#39;!&#39;</span><span class="sc">;</span>
1984 
1985   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
1986   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
1987   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
1988 <span class="s">}</span>
1989 
1990 <span class="c"># Generate key 63 value as 1/0 indicating its presence/absence or count of its</span>
1991 <span class="c"># presence in a molecule.</span>
1992 <span class="c">#</span>
1993 <span class="c"># Key 63 description: N=O</span>
1994 <span class="c">#</span>
<a name="_Generate166KeySetKey63-"></a>1995 <span class="k">sub </span><span class="m">_Generate166KeySetKey63</span> <span class="s">{</span>
1996   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
1997   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
1998 
1999   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
2000 <span class="s">}</span>
2001 
2002 <span class="c"># Generate key 64 value as 1/0 indicating its presence/absence or count of its</span>
2003 <span class="c"># presence in a molecule.</span>
2004 <span class="c">#</span>
2005 <span class="c"># Key 64 description: A$A!S</span>
2006 <span class="c">#</span>
<a name="_Generate166KeySetKey64-"></a>2007 <span class="k">sub </span><span class="m">_Generate166KeySetKey64</span> <span class="s">{</span>
2008   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2009   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2010 
2011   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2012   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
2013   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
2014 
2015   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2016 <span class="s">}</span>
2017 
2018 <span class="c"># Generate key 65 value as 1/0 indicating its presence/absence or count of its</span>
2019 <span class="c"># presence in a molecule.</span>
2020 <span class="c">#</span>
2021 <span class="c"># Key 65 description: C%N</span>
2022 <span class="c">#</span>
<a name="_Generate166KeySetKey65-"></a>2023 <span class="k">sub </span><span class="m">_Generate166KeySetKey65</span> <span class="s">{</span>
2024   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2025   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
2026 
2027   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
2028 <span class="s">}</span>
2029 
2030 <span class="c"># Generate key 66 value as 1/0 indicating its presence/absence or count of its</span>
2031 <span class="c"># presence in a molecule.</span>
2032 <span class="c">#</span>
2033 <span class="c"># Key 66 description: CC(C)(C)A</span>
2034 <span class="c">#</span>
<a name="_Generate166KeySetKey66-"></a>2035 <span class="k">sub </span><span class="m">_Generate166KeySetKey66</span> <span class="s">{</span>
2036   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2037   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2038 
2039   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2040   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2041   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2042 
2043   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2044 <span class="s">}</span>
2045 
2046 <span class="c"># Generate key 67 value as 1/0 indicating its presence/absence or count of its</span>
2047 <span class="c"># presence in a molecule.</span>
2048 <span class="c">#</span>
2049 <span class="c"># Key 67 description: QS</span>
2050 <span class="c">#</span>
<a name="_Generate166KeySetKey67-"></a>2051 <span class="k">sub </span><span class="m">_Generate166KeySetKey67</span> <span class="s">{</span>
2052   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2053 
2054   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
2055 <span class="s">}</span>
2056 
2057 <span class="c"># Generate key 68 value as 1/0 indicating its presence/absence or count of its</span>
2058 <span class="c"># presence in a molecule.</span>
2059 <span class="c">#</span>
2060 <span class="c"># Key 68 description: QHQH (&amp;...)</span>
2061 <span class="c">#</span>
<a name="_Generate166KeySetKey68-"></a>2062 <span class="k">sub </span><span class="m">_Generate166KeySetKey68</span> <span class="s">{</span>
2063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2064   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2065   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
2066   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
2067 
2068   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2069 <span class="s">}</span>
2070 
2071 <span class="c"># Generate key 69 value as 1/0 indicating its presence/absence or count of its</span>
2072 <span class="c"># presence in a molecule.</span>
2073 <span class="c">#</span>
2074 <span class="c"># Key 69 description: QQH</span>
2075 <span class="c">#</span>
<a name="_Generate166KeySetKey69-"></a>2076 <span class="k">sub </span><span class="m">_Generate166KeySetKey69</span> <span class="s">{</span>
2077   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2078   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2079   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
2080   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
2081 
2082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2083 <span class="s">}</span>
2084 
2085 <span class="c"># Generate key 70 value as 1/0 indicating its presence/absence or count of its</span>
2086 <span class="c"># presence in a molecule.</span>
2087 <span class="c">#</span>
2088 <span class="c"># Key 70 description: QNQ</span>
2089 <span class="c">#</span>
<a name="_Generate166KeySetKey70-"></a>2090 <span class="k">sub </span><span class="m">_Generate166KeySetKey70</span> <span class="s">{</span>
2091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2093 
2094   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
2095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
2096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2097 
2098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2099 <span class="s">}</span>
2100 
2101 <span class="c"># Generate key 71 value as 1/0 indicating its presence/absence or count of its</span>
2102 <span class="c"># presence in a molecule.</span>
2103 <span class="c">#</span>
2104 <span class="c"># Key 71 description: NO</span>
2105 <span class="c">#</span>
<a name="_Generate166KeySetKey71-"></a>2106 <span class="k">sub </span><span class="m">_Generate166KeySetKey71</span> <span class="s">{</span>
2107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2108 
2109   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2110 <span class="s">}</span>
2111 
2112 <span class="c"># Generate key 72 value as 1/0 indicating its presence/absence or count of its</span>
2113 <span class="c"># presence in a molecule.</span>
2114 <span class="c">#</span>
2115 <span class="c"># Key 72 description: OAAO</span>
2116 <span class="c">#</span>
<a name="_Generate166KeySetKey72-"></a>2117 <span class="k">sub </span><span class="m">_Generate166KeySetKey72</span> <span class="s">{</span>
2118   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2119   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2120 
2121   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2122   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2123 
2124   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2125 <span class="s">}</span>
2126 
2127 <span class="c"># Generate key 73 value as 1/0 indicating its presence/absence or count of its</span>
2128 <span class="c"># presence in a molecule.</span>
2129 <span class="c">#</span>
2130 <span class="c"># Key 73 description: S=A</span>
2131 <span class="c">#</span>
<a name="_Generate166KeySetKey73-"></a>2132 <span class="k">sub </span><span class="m">_Generate166KeySetKey73</span> <span class="s">{</span>
2133   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2134   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
2135 
2136   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
2137 <span class="s">}</span>
2138 
2139 <span class="c"># Generate key 74 value as 1/0 indicating its presence/absence or count of its</span>
2140 <span class="c"># presence in a molecule.</span>
2141 <span class="c">#</span>
2142 <span class="c"># Key 74 description: CH3ACH3</span>
2143 <span class="c">#</span>
<a name="_Generate166KeySetKey74-"></a>2144 <span class="k">sub </span><span class="m">_Generate166KeySetKey74</span> <span class="s">{</span>
2145   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2146   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2147 
2148   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2149   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
2150 
2151   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
2152   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2153   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
2154 
2155   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2156 
2157   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2158 <span class="s">}</span>
2159 
2160 <span class="c"># Generate key 75 value as 1/0 indicating its presence/absence or count of its</span>
2161 <span class="c"># presence in a molecule.</span>
2162 <span class="c">#</span>
2163 <span class="c"># Key 75 description: A!N$A</span>
2164 <span class="c">#</span>
<a name="_Generate166KeySetKey75-"></a>2165 <span class="k">sub </span><span class="m">_Generate166KeySetKey75</span> <span class="s">{</span>
2166   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2167   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2168 
2169   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
2170   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2171   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
2172 
2173   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2174 <span class="s">}</span>
2175 
2176 <span class="c"># Generate key 76 value as 1/0 indicating its presence/absence or count of its</span>
2177 <span class="c"># presence in a molecule.</span>
2178 <span class="c">#</span>
2179 <span class="c"># Key 76 description: C=C(A)A</span>
2180 <span class="c">#</span>
<a name="_Generate166KeySetKey76-"></a>2181 <span class="k">sub </span><span class="m">_Generate166KeySetKey76</span> <span class="s">{</span>
2182   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2183   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2184 
2185   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2186   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2187   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;=&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2188 
2189   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2190 <span class="s">}</span>
2191 
2192 <span class="c"># Generate key 77 value as 1/0 indicating its presence/absence or count of its</span>
2193 <span class="c"># presence in a molecule.</span>
2194 <span class="c">#</span>
2195 <span class="c"># Key 77 description: NAN</span>
2196 <span class="c">#</span>
<a name="_Generate166KeySetKey77-"></a>2197 <span class="k">sub </span><span class="m">_Generate166KeySetKey77</span> <span class="s">{</span>
2198   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2199   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2200 
2201   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2202   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
2203   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2204 
2205   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2206 <span class="s">}</span>
2207 
2208 <span class="c"># Generate key 78 value as 1/0 indicating its presence/absence or count of its</span>
2209 <span class="c"># presence in a molecule.</span>
2210 <span class="c">#</span>
2211 <span class="c"># Key 78 description: C=N</span>
2212 <span class="c">#</span>
<a name="_Generate166KeySetKey78-"></a>2213 <span class="k">sub </span><span class="m">_Generate166KeySetKey78</span> <span class="s">{</span>
2214   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2215   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
2216 
2217   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
2218 <span class="s">}</span>
2219 
2220 <span class="c"># Generate key 79 value as 1/0 indicating its presence/absence or count of its</span>
2221 <span class="c"># presence in a molecule.</span>
2222 <span class="c">#</span>
2223 <span class="c"># Key 79 description: NAAN</span>
2224 <span class="c">#</span>
<a name="_Generate166KeySetKey79-"></a>2225 <span class="k">sub </span><span class="m">_Generate166KeySetKey79</span> <span class="s">{</span>
2226   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2227   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2228 
2229   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
2230   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2231 
2232   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2233 <span class="s">}</span>
2234 
2235 <span class="c"># Generate key 80 value as 1/0 indicating its presence/absence or count of its</span>
2236 <span class="c"># presence in a molecule.</span>
2237 <span class="c">#</span>
2238 <span class="c"># Key 80 description: NAAAN</span>
2239 <span class="c">#</span>
<a name="_Generate166KeySetKey80-"></a>2240 <span class="k">sub </span><span class="m">_Generate166KeySetKey80</span> <span class="s">{</span>
2241   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2242   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2243 
2244   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
2245   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2246 
2247   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2248 <span class="s">}</span>
2249 
2250 <span class="c"># Generate key 81 value as 1/0 indicating its presence/absence or count of its</span>
2251 <span class="c"># presence in a molecule.</span>
2252 <span class="c">#</span>
2253 <span class="c"># Key 81 description: SA(A)A</span>
2254 <span class="c">#</span>
<a name="_Generate166KeySetKey81-"></a>2255 <span class="k">sub </span><span class="m">_Generate166KeySetKey81</span> <span class="s">{</span>
2256   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2257   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2258 
2259   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2260   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2261   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2262 
2263   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2264 <span class="s">}</span>
2265 
2266 <span class="c"># Generate key 82 value as 1/0 indicating its presence/absence or count of its</span>
2267 <span class="c"># presence in a molecule.</span>
2268 <span class="c">#</span>
2269 <span class="c"># Key 82 description: ACH2QH</span>
2270 <span class="c">#</span>
<a name="_Generate166KeySetKey82-"></a>2271 <span class="k">sub </span><span class="m">_Generate166KeySetKey82</span> <span class="s">{</span>
2272   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2273   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2274 
2275   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2276   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
2277 
2278   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
2279   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2280   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
2281 
2282   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2283 
2284   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2285 <span class="s">}</span>
2286 
2287 <span class="c"># Generate key 83 value as 1/0 indicating its presence/absence or count of its</span>
2288 <span class="c"># presence in a molecule.</span>
2289 <span class="c">#</span>
2290 <span class="c"># Key 83 description: QAAAA@1</span>
2291 <span class="c">#</span>
<a name="_Generate166KeySetKey83-"></a>2292 <span class="k">sub </span><span class="m">_Generate166KeySetKey83</span> <span class="s">{</span>
2293   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2294   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
2295 
2296   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span>
2297   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
2298   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
2299     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
2300       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
2301         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
2302         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
2303       <span class="s">}</span>
2304       <span class="i">$KeyValue</span>++<span class="sc">;</span>
2305     <span class="s">}</span>
2306   <span class="s">}</span>
2307   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
2308 <span class="s">}</span>
2309 
2310 <span class="c"># Generate key 84 value as 1/0 indicating its presence/absence or count of its</span>
2311 <span class="c"># presence in a molecule.</span>
2312 <span class="c">#</span>
2313 <span class="c"># Key 84 description: NH2</span>
2314 <span class="c">#</span>
<a name="_Generate166KeySetKey84-"></a>2315 <span class="k">sub </span><span class="m">_Generate166KeySetKey84</span> <span class="s">{</span>
2316   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2317   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
2318 
2319   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2320 <span class="s">}</span>
2321 
2322 <span class="c"># Generate key 85 value as 1/0 indicating its presence/absence or count of its</span>
2323 <span class="c"># presence in a molecule.</span>
2324 <span class="c">#</span>
2325 <span class="c"># Key 85 description: CN(C)C</span>
2326 <span class="c">#</span>
<a name="_Generate166KeySetKey85-"></a>2327 <span class="k">sub </span><span class="m">_Generate166KeySetKey85</span> <span class="s">{</span>
2328   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2329   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2330 
2331   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
2332   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
2333   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2334 
2335   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2336 <span class="s">}</span>
2337 
2338 <span class="c"># Generate key 86 value as 1/0 indicating its presence/absence or count of its</span>
2339 <span class="c"># presence in a molecule.</span>
2340 <span class="c">#</span>
2341 <span class="c"># Key 86 description: CH2QCH2</span>
2342 <span class="c">#</span>
<a name="_Generate166KeySetKey86-"></a>2343 <span class="k">sub </span><span class="m">_Generate166KeySetKey86</span> <span class="s">{</span>
2344   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2345   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2346 
2347   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
2348   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
2349 
2350   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
2351   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2352   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
2353 
2354   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2355 
2356   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2357 <span class="s">}</span>
2358 
2359 <span class="c"># Generate key 87 value as 1/0 indicating its presence/absence or count of its</span>
2360 <span class="c"># presence in a molecule.</span>
2361 <span class="c">#</span>
2362 <span class="c"># Key 87 description: X!A$A</span>
2363 <span class="c">#</span>
<a name="_Generate166KeySetKey87-"></a>2364 <span class="k">sub </span><span class="m">_Generate166KeySetKey87</span> <span class="s">{</span>
2365   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2366   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2367 
2368   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2369   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;X&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2370   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
2371 
2372   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2373 <span class="s">}</span>
2374 
2375 <span class="c"># Generate key 88 value as 1/0 indicating its presence/absence or count of its</span>
2376 <span class="c"># presence in a molecule.</span>
2377 <span class="c">#</span>
2378 <span class="c"># Key 88 description: S</span>
2379 <span class="c">#</span>
<a name="_Generate166KeySetKey88-"></a>2380 <span class="k">sub </span><span class="m">_Generate166KeySetKey88</span> <span class="s">{</span>
2381   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2382 
2383   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
2384 <span class="s">}</span>
2385 
2386 <span class="c"># Generate key 89 value as 1/0 indicating its presence/absence or count of its</span>
2387 <span class="c"># presence in a molecule.</span>
2388 <span class="c">#</span>
2389 <span class="c"># Key 89 description: OAAAO</span>
2390 <span class="c">#</span>
<a name="_Generate166KeySetKey89-"></a>2391 <span class="k">sub </span><span class="m">_Generate166KeySetKey89</span> <span class="s">{</span>
2392   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2393   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2394 
2395   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2396   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2397 
2398   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2399 <span class="s">}</span>
2400 
2401 <span class="c"># Generate key 90 value as 1/0 indicating its presence/absence or count of its</span>
2402 <span class="c"># presence in a molecule.</span>
2403 <span class="c">#</span>
2404 <span class="c"># Key 90 description: QHAACH2A</span>
2405 <span class="c">#</span>
<a name="_Generate166KeySetKey90-"></a>2406 <span class="k">sub </span><span class="m">_Generate166KeySetKey90</span> <span class="s">{</span>
2407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2408   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2409 
2410   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2411   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2412   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2413 
2414   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2415 <span class="s">}</span>
2416 
2417 <span class="c"># Generate key 91 value as 1/0 indicating its presence/absence or count of its</span>
2418 <span class="c"># presence in a molecule.</span>
2419 <span class="c">#</span>
2420 <span class="c"># Key 91 description: QHAAACH2A</span>
2421 <span class="c">#</span>
<a name="_Generate166KeySetKey91-"></a>2422 <span class="k">sub </span><span class="m">_Generate166KeySetKey91</span> <span class="s">{</span>
2423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2424   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2425 
2426   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2427   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2428   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2429 
2430   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2431 <span class="s">}</span>
2432 
2433 <span class="c"># Generate key 92 value as 1/0 indicating its presence/absence or count of its</span>
2434 <span class="c"># presence in a molecule.</span>
2435 <span class="c">#</span>
2436 <span class="c"># Key 92 description: OC(N)C</span>
2437 <span class="c">#</span>
<a name="_Generate166KeySetKey92-"></a>2438 <span class="k">sub </span><span class="m">_Generate166KeySetKey92</span> <span class="s">{</span>
2439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2440   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2441 
2442   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2443   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
2444   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2445 
2446   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2447 <span class="s">}</span>
2448 
2449 <span class="c"># Generate key 93 value as 1/0 indicating its presence/absence or count of its</span>
2450 <span class="c"># presence in a molecule.</span>
2451 <span class="c">#</span>
2452 <span class="c"># Key 93 description: QCH3</span>
2453 <span class="c">#</span>
<a name="_Generate166KeySetKey93-"></a>2454 <span class="k">sub </span><span class="m">_Generate166KeySetKey93</span> <span class="s">{</span>
2455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2456   <span class="k">my</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2457   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="k">undef</span><span class="sc">;</span>
2458   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
2459 
2460   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2461 <span class="s">}</span>
2462 
2463 <span class="c"># Generate key 94 value as 1/0 indicating its presence/absence or count of its</span>
2464 <span class="c"># presence in a molecule.</span>
2465 <span class="c">#</span>
2466 <span class="c"># Key 94 description: QN</span>
2467 <span class="c">#</span>
<a name="_Generate166KeySetKey94-"></a>2468 <span class="k">sub </span><span class="m">_Generate166KeySetKey94</span> <span class="s">{</span>
2469   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2470 
2471   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
2472 <span class="s">}</span>
2473 
2474 <span class="c"># Generate key 95 value as 1/0 indicating its presence/absence or count of its</span>
2475 <span class="c"># presence in a molecule.</span>
2476 <span class="c">#</span>
2477 <span class="c"># Key 95 description: NAAO</span>
2478 <span class="c">#</span>
<a name="_Generate166KeySetKey95-"></a>2479 <span class="k">sub </span><span class="m">_Generate166KeySetKey95</span> <span class="s">{</span>
2480   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2481   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2482 
2483   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2484   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2485 
2486   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2487 <span class="s">}</span>
2488 
2489 <span class="c"># Generate key 96 value as 1/0 indicating its presence/absence or count of its</span>
2490 <span class="c"># presence in a molecule.</span>
2491 <span class="c">#</span>
2492 <span class="c"># Key 96 description: 5M RING</span>
2493 <span class="c">#</span>
<a name="_Generate166KeySetKey96-"></a>2494 <span class="k">sub </span><span class="m">_Generate166KeySetKey96</span> <span class="s">{</span>
2495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2496   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
2497 
2498   <span class="i">$RingSize</span> = <span class="n">5</span><span class="sc">;</span>
2499   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
2500   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
2501 
2502   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
2503     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
2504   <span class="s">}</span>
2505   <span class="k">else</span> <span class="s">{</span>
2506     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
2507   <span class="s">}</span>
2508   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
2509 <span class="s">}</span>
2510 
2511 <span class="c"># Generate key 97 value as 1/0 indicating its presence/absence or count of its</span>
2512 <span class="c"># presence in a molecule.</span>
2513 <span class="c">#</span>
2514 <span class="c"># Key 97 description: NAAAO</span>
2515 <span class="c">#</span>
<a name="_Generate166KeySetKey97-"></a>2516 <span class="k">sub </span><span class="m">_Generate166KeySetKey97</span> <span class="s">{</span>
2517   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2518   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2519 
2520   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2521   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2522 
2523   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2524 <span class="s">}</span>
2525 
2526 <span class="c"># Generate key 98 value as 1/0 indicating its presence/absence or count of its</span>
2527 <span class="c"># presence in a molecule.</span>
2528 <span class="c">#</span>
2529 <span class="c"># Key 98 description: QAAAAA@1</span>
2530 <span class="c">#</span>
<a name="_Generate166KeySetKey98-"></a>2531 <span class="k">sub </span><span class="m">_Generate166KeySetKey98</span> <span class="s">{</span>
2532   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2533   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
2534 
2535   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
2536   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
2537   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
2538     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> &amp;&amp; <span class="i">$Atom</span><span class="i">-&gt;IsInRingOfSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
2539       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
2540         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
2541         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
2542       <span class="s">}</span>
2543       <span class="i">$KeyValue</span>++<span class="sc">;</span>
2544     <span class="s">}</span>
2545   <span class="s">}</span>
2546   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
2547 <span class="s">}</span>
2548 
2549 <span class="c"># Generate key 99 value as 1/0 indicating its presence/absence or count of its</span>
2550 <span class="c"># presence in a molecule.</span>
2551 <span class="c">#</span>
2552 <span class="c"># Key 99 description: C=C</span>
2553 <span class="c">#</span>
<a name="_Generate166KeySetKey99-"></a>2554 <span class="k">sub </span><span class="m">_Generate166KeySetKey99</span> <span class="s">{</span>
2555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2556   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
2557 
2558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
2559 <span class="s">}</span>
2560 
2561 <span class="c"># Generate key 100 value as 1/0 indicating its presence/absence or count of its</span>
2562 <span class="c"># presence in a molecule.</span>
2563 <span class="c">#</span>
2564 <span class="c"># Key 100 description: ACH2N</span>
2565 <span class="c">#</span>
<a name="_Generate166KeySetKey100-"></a>2566 <span class="k">sub </span><span class="m">_Generate166KeySetKey100</span> <span class="s">{</span>
2567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2568   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2569 
2570   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2571   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
2572 
2573   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
2574   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2575 
2576   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2577 
2578   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2579 <span class="s">}</span>
2580 
2581 <span class="c"># Generate key 101 value as 1/0 indicating its presence/absence or count of its</span>
2582 <span class="c"># presence in a molecule.</span>
2583 <span class="c">#</span>
2584 <span class="c"># Key 101 description: 8M RING</span>
2585 <span class="c">#</span>
<a name="_Generate166KeySetKey101-"></a>2586 <span class="k">sub </span><span class="m">_Generate166KeySetKey101</span> <span class="s">{</span>
2587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2588   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
2589 
2590   <span class="i">$RingSize</span> = <span class="n">8</span><span class="sc">;</span>
2591   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
2592   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
2593 
2594   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
2595     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
2596   <span class="s">}</span>
2597   <span class="k">else</span> <span class="s">{</span>
2598     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
2599   <span class="s">}</span>
2600   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
2601 <span class="s">}</span>
2602 
2603 <span class="c"># Generate key 102 value as 1/0 indicating its presence/absence or count of its</span>
2604 <span class="c"># presence in a molecule.</span>
2605 <span class="c">#</span>
2606 <span class="c"># Key 102 description: QO</span>
2607 <span class="c">#</span>
<a name="_Generate166KeySetKey102-"></a>2608 <span class="k">sub </span><span class="m">_Generate166KeySetKey102</span> <span class="s">{</span>
2609   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2610 
2611   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2612 <span class="s">}</span>
2613 
2614 <span class="c"># Generate key 103 value as 1/0 indicating its presence/absence or count of its</span>
2615 <span class="c"># presence in a molecule.</span>
2616 <span class="c">#</span>
2617 <span class="c"># Key 103 description: CL</span>
2618 <span class="c">#</span>
<a name="_Generate166KeySetKey103-"></a>2619 <span class="k">sub </span><span class="m">_Generate166KeySetKey103</span> <span class="s">{</span>
2620   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2621 
2622   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="s">)</span><span class="sc">;</span>
2623 <span class="s">}</span>
2624 
2625 <span class="c"># Generate key 104 value as 1/0 indicating its presence/absence or count of its</span>
2626 <span class="c"># presence in a molecule.</span>
2627 <span class="c">#</span>
2628 <span class="c"># Key 104 description: QHACH2A</span>
2629 <span class="c">#</span>
<a name="_Generate166KeySetKey104-"></a>2630 <span class="k">sub </span><span class="m">_Generate166KeySetKey104</span> <span class="s">{</span>
2631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2632   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2633 
2634   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2635   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2636   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2637 
2638   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2639 <span class="s">}</span>
2640 
2641 <span class="c"># Generate key 105 value as 1/0 indicating its presence/absence or count of its</span>
2642 <span class="c"># presence in a molecule.</span>
2643 <span class="c">#</span>
2644 <span class="c"># Key 105 description: A$A($A)$A</span>
2645 <span class="c">#</span>
<a name="_Generate166KeySetKey105-"></a>2646 <span class="k">sub </span><span class="m">_Generate166KeySetKey105</span> <span class="s">{</span>
2647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2648   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2649 
2650   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2651   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2652   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
2653 
2654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2655 <span class="s">}</span>
2656 
2657 <span class="c"># Generate key 106 value as 1/0 indicating its presence/absence or count of its</span>
2658 <span class="c"># presence in a molecule.</span>
2659 <span class="c">#</span>
2660 <span class="c"># Key 106 description: QA(Q)Q</span>
2661 <span class="c">#</span>
<a name="_Generate166KeySetKey106-"></a>2662 <span class="k">sub </span><span class="m">_Generate166KeySetKey106</span> <span class="s">{</span>
2663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2664   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2665 
2666   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2667   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
2668   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2669 
2670   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2671 <span class="s">}</span>
2672 
2673 <span class="c"># Generate key 107 value as 1/0 indicating its presence/absence or count of its</span>
2674 <span class="c"># presence in a molecule.</span>
2675 <span class="c">#</span>
2676 <span class="c"># Key 107 description: XA(A)A</span>
2677 <span class="c">#</span>
<a name="_Generate166KeySetKey107-"></a>2678 <span class="k">sub </span><span class="m">_Generate166KeySetKey107</span> <span class="s">{</span>
2679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2680   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2681 
2682   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2683   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;X&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2684   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2685 
2686   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2687 <span class="s">}</span>
2688 
2689 <span class="c"># Generate key 108 value as 1/0 indicating its presence/absence or count of its</span>
2690 <span class="c"># presence in a molecule.</span>
2691 <span class="c">#</span>
2692 <span class="c"># Key 108 description: CH3AAACH2A</span>
2693 <span class="c">#</span>
<a name="_Generate166KeySetKey108-"></a>2694 <span class="k">sub </span><span class="m">_Generate166KeySetKey108</span> <span class="s">{</span>
2695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2696   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2697 
2698   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2699   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2700   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2701 
2702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2703 <span class="s">}</span>
2704 
2705 <span class="c"># Generate key 109 value as 1/0 indicating its presence/absence or count of its</span>
2706 <span class="c"># presence in a molecule.</span>
2707 <span class="c">#</span>
2708 <span class="c"># Key 109 description: ACH2O</span>
2709 <span class="c">#</span>
<a name="_Generate166KeySetKey109-"></a>2710 <span class="k">sub </span><span class="m">_Generate166KeySetKey109</span> <span class="s">{</span>
2711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2712   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2713 
2714   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2715   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
2716 
2717   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2718   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2719 
2720   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2721 
2722   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2723 <span class="s">}</span>
2724 
2725 <span class="c"># Generate key 110 value as 1/0 indicating its presence/absence or count of its</span>
2726 <span class="c"># presence in a molecule.</span>
2727 <span class="c">#</span>
2728 <span class="c"># Key 110 description: NCO</span>
2729 <span class="c">#</span>
<a name="_Generate166KeySetKey110-"></a>2730 <span class="k">sub </span><span class="m">_Generate166KeySetKey110</span> <span class="s">{</span>
2731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2732   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2733 
2734   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2735   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2736   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2737 
2738   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2739 <span class="s">}</span>
2740 
2741 <span class="c"># Generate key 111 value as 1/0 indicating its presence/absence or count of its</span>
2742 <span class="c"># presence in a molecule.</span>
2743 <span class="c">#</span>
2744 <span class="c"># Key 111 description: NACH2A</span>
2745 <span class="c">#</span>
<a name="_Generate166KeySetKey111-"></a>2746 <span class="k">sub </span><span class="m">_Generate166KeySetKey111</span> <span class="s">{</span>
2747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2748   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2749 
2750   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2751   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2752   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2753 
2754   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2755 <span class="s">}</span>
2756 
2757 <span class="c"># Generate key 112 value as 1/0 indicating its presence/absence or count of its</span>
2758 <span class="c"># presence in a molecule.</span>
2759 <span class="c">#</span>
2760 <span class="c"># Key 112 description: AA(A)(A)A</span>
2761 <span class="c">#</span>
<a name="_Generate166KeySetKey112-"></a>2762 <span class="k">sub </span><span class="m">_Generate166KeySetKey112</span> <span class="s">{</span>
2763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2764   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2765 
2766   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2767   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2768   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2769 
2770   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2771 <span class="s">}</span>
2772 
2773 <span class="c"># Generate key 113 value as 1/0 indicating its presence/absence or count of its</span>
2774 <span class="c"># presence in a molecule.</span>
2775 <span class="c">#</span>
2776 <span class="c"># Key 113 description: Onot%A%A</span>
2777 <span class="c">#</span>
<a name="_Generate166KeySetKey113-"></a>2778 <span class="k">sub </span><span class="m">_Generate166KeySetKey113</span> <span class="s">{</span>
2779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2780   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2781 
2782   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2783   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2784   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
2785 
2786   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2787 <span class="s">}</span>
2788 
2789 <span class="c"># Generate key 114 value as 1/0 indicating its presence/absence or count of its</span>
2790 <span class="c"># presence in a molecule.</span>
2791 <span class="c">#</span>
2792 <span class="c"># Key 114 description: CH3CH2A</span>
2793 <span class="c">#</span>
<a name="_Generate166KeySetKey114-"></a>2794 <span class="k">sub </span><span class="m">_Generate166KeySetKey114</span> <span class="s">{</span>
2795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2796   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2797 
2798   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2799   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
2800 
2801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2803   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2804 
2805   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
2806 
2807   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2808 <span class="s">}</span>
2809 
2810 <span class="c"># Generate key 115 value as 1/0 indicating its presence/absence or count of its</span>
2811 <span class="c"># presence in a molecule.</span>
2812 <span class="c">#</span>
2813 <span class="c"># Key 115 description: CH3ACH2A</span>
2814 <span class="c">#</span>
<a name="_Generate166KeySetKey115-"></a>2815 <span class="k">sub </span><span class="m">_Generate166KeySetKey115</span> <span class="s">{</span>
2816   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2817   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2818 
2819   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2820   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2821   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2822 
2823   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2824 <span class="s">}</span>
2825 
2826 <span class="c"># Generate key 116 value as 1/0 indicating its presence/absence or count of its</span>
2827 <span class="c"># presence in a molecule.</span>
2828 <span class="c">#</span>
2829 <span class="c"># Key 116 description: CH3AACH2A</span>
2830 <span class="c">#</span>
<a name="_Generate166KeySetKey116-"></a>2831 <span class="k">sub </span><span class="m">_Generate166KeySetKey116</span> <span class="s">{</span>
2832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2833   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2834 
2835   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2836   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2837   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2838 
2839   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2840 <span class="s">}</span>
2841 
2842 <span class="c"># Generate key 117 value as 1/0 indicating its presence/absence or count of its</span>
2843 <span class="c"># presence in a molecule.</span>
2844 <span class="c">#</span>
2845 <span class="c"># Key 117 description: NAO</span>
2846 <span class="c">#</span>
<a name="_Generate166KeySetKey117-"></a>2847 <span class="k">sub </span><span class="m">_Generate166KeySetKey117</span> <span class="s">{</span>
2848   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2849   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2850 
2851   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
2852   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2853   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2854 
2855   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2856 <span class="s">}</span>
2857 
2858 <span class="c"># Generate key 118 value as 1/0 indicating its presence/absence or count of its</span>
2859 <span class="c"># presence in a molecule.</span>
2860 <span class="c">#</span>
2861 <span class="c"># Key 118 description: ACH2CH2A &gt; 1</span>
2862 <span class="c">#</span>
<a name="_Generate166KeySetKey118-"></a>2863 <span class="k">sub </span><span class="m">_Generate166KeySetKey118</span> <span class="s">{</span>
2864   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2865   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
2866 
2867   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
2868   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2869   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2870   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2871 
2872   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
2873 <span class="s">}</span>
2874 
2875 <span class="c"># Generate key 119 value as 1/0 indicating its presence/absence or count of its</span>
2876 <span class="c"># presence in a molecule.</span>
2877 <span class="c">#</span>
2878 <span class="c"># Key 119 description: N=A</span>
2879 <span class="c">#</span>
<a name="_Generate166KeySetKey119-"></a>2880 <span class="k">sub </span><span class="m">_Generate166KeySetKey119</span> <span class="s">{</span>
2881   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2882   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
2883 
2884   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
2885 <span class="s">}</span>
2886 
2887 <span class="c"># Generate key 120 value as 1/0 indicating its presence/absence or count of its</span>
2888 <span class="c"># presence in a molecule.</span>
2889 <span class="c">#</span>
2890 <span class="c"># Key 120 description: HETEROCYCLIC ATOM &gt; 1 (&amp;...)</span>
2891 <span class="c">#</span>
<a name="_Generate166KeySetKey120-"></a>2892 <span class="k">sub </span><span class="m">_Generate166KeySetKey120</span> <span class="s">{</span>
2893   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2894   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
2895 
2896   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
2897 <span class="s">}</span>
2898 
2899 <span class="c"># Generate key 121 value as 1/0 indicating its presence/absence or count of its</span>
2900 <span class="c"># presence in a molecule.</span>
2901 <span class="c">#</span>
2902 <span class="c"># Key 121 description: N HETEROCYCLE</span>
2903 <span class="c">#</span>
<a name="_Generate166KeySetKey121-"></a>2904 <span class="k">sub </span><span class="m">_Generate166KeySetKey121</span> <span class="s">{</span>
2905   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2906   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
2907 
2908   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
2909 <span class="s">}</span>
2910 
2911 <span class="c"># Generate key 122 value as 1/0 indicating its presence/absence or count of its</span>
2912 <span class="c"># presence in a molecule.</span>
2913 <span class="c">#</span>
2914 <span class="c"># Key 122 description: AN(A)A</span>
2915 <span class="c">#</span>
<a name="_Generate166KeySetKey122-"></a>2916 <span class="k">sub </span><span class="m">_Generate166KeySetKey122</span> <span class="s">{</span>
2917   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2918   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2919 
2920   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;N&#39;</span><span class="sc">;</span>
2921   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2922   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2923 
2924   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2925 <span class="s">}</span>
2926 
2927 <span class="c"># Generate key 123 value as 1/0 indicating its presence/absence or count of its</span>
2928 <span class="c"># presence in a molecule.</span>
2929 <span class="c">#</span>
2930 <span class="c"># Key 123 description: OCO</span>
2931 <span class="c">#</span>
<a name="_Generate166KeySetKey123-"></a>2932 <span class="k">sub </span><span class="m">_Generate166KeySetKey123</span> <span class="s">{</span>
2933   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2934   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2935 
2936   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
2937   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
2938   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
2939 
2940   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2941 <span class="s">}</span>
2942 
2943 <span class="c"># Generate key 124 value as 1/0 indicating its presence/absence or count of its</span>
2944 <span class="c"># presence in a molecule.</span>
2945 <span class="c">#</span>
2946 <span class="c"># Key 124 description: QQ</span>
2947 <span class="c">#</span>
<a name="_Generate166KeySetKey124-"></a>2948 <span class="k">sub </span><span class="m">_Generate166KeySetKey124</span> <span class="s">{</span>
2949   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2950 
2951   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
2952 <span class="s">}</span>
2953 
2954 <span class="c"># Generate key 125 value as 1/0 indicating its presence/absence or count of its</span>
2955 <span class="c"># presence in a molecule.</span>
2956 <span class="c">#</span>
2957 <span class="c"># Key 125 description: AROMATIC RING &gt; 1</span>
2958 <span class="c">#</span>
<a name="_Generate166KeySetKey125-"></a>2959 <span class="k">sub </span><span class="m">_Generate166KeySetKey125</span> <span class="s">{</span>
2960   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2961   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$NumOfAromaticRings</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
2962 
2963   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
2964   <span class="i">$NumOfAromaticRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfAromaticRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
2965 
2966   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
2967     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfAromaticRings</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
2968   <span class="s">}</span>
2969   <span class="k">else</span> <span class="s">{</span>
2970     <span class="i">$KeyValue</span> = <span class="i">$NumOfAromaticRings</span><span class="sc">;</span>
2971   <span class="s">}</span>
2972   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
2973 <span class="s">}</span>
2974 
2975 <span class="c"># Generate key 126 value as 1/0 indicating its presence/absence or count of its</span>
2976 <span class="c"># presence in a molecule.</span>
2977 <span class="c">#</span>
2978 <span class="c"># Key 126 description: A!O!A</span>
2979 <span class="c">#</span>
<a name="_Generate166KeySetKey126-"></a>2980 <span class="k">sub </span><span class="m">_Generate166KeySetKey126</span> <span class="s">{</span>
2981   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2982   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2983 
2984   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;O&#39;</span><span class="sc">;</span>
2985   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
2986   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
2987 
2988   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2989 <span class="s">}</span>
2990 
2991 <span class="c"># Generate key 127 value as 1/0 indicating its presence/absence or count of its</span>
2992 <span class="c"># presence in a molecule.</span>
2993 <span class="c">#</span>
2994 <span class="c"># Key 127 description: A$A!O &gt; 1 (&amp;...)</span>
2995 <span class="c">#</span>
<a name="_Generate166KeySetKey127-"></a>2996 <span class="k">sub </span><span class="m">_Generate166KeySetKey127</span> <span class="s">{</span>
2997   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
2998   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
2999 
3000   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3001   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
3002   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3003   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
3004 
3005   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3006 <span class="s">}</span>
3007 
3008 <span class="c"># Generate key 128 value as 1/0 indicating its presence/absence or count of its</span>
3009 <span class="c"># presence in a molecule.</span>
3010 <span class="c">#</span>
3011 <span class="c"># Key 128 description: ACH2AAACH2A</span>
3012 <span class="c">#</span>
<a name="_Generate166KeySetKey128-"></a>3013 <span class="k">sub </span><span class="m">_Generate166KeySetKey128</span> <span class="s">{</span>
3014   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3015   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3016 
3017   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3018   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3019   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3020 
3021   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3022 <span class="s">}</span>
3023 
3024 <span class="c"># Generate key 129 value as 1/0 indicating its presence/absence or count of its</span>
3025 <span class="c"># presence in a molecule.</span>
3026 <span class="c">#</span>
3027 <span class="c"># Key 129 description: ACH2AACH2A</span>
3028 <span class="c">#</span>
<a name="_Generate166KeySetKey129-"></a>3029 <span class="k">sub </span><span class="m">_Generate166KeySetKey129</span> <span class="s">{</span>
3030   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3031   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3032 
3033   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3034   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3035   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3036 
3037   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3038 <span class="s">}</span>
3039 
3040 <span class="c"># Generate key 130 value as 1/0 indicating its presence/absence or count of its</span>
3041 <span class="c"># presence in a molecule.</span>
3042 <span class="c">#</span>
3043 <span class="c"># Key 130 description: QQ &gt; 1 (&amp;...)</span>
3044 <span class="c">#</span>
<a name="_Generate166KeySetKey130-"></a>3045 <span class="k">sub </span><span class="m">_Generate166KeySetKey130</span> <span class="s">{</span>
3046   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3047   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
3048 
3049   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3050 <span class="s">}</span>
3051 
3052 <span class="c"># Generate key 131 value as 1/0 indicating its presence/absence or count of its</span>
3053 <span class="c"># presence in a molecule.</span>
3054 <span class="c">#</span>
3055 <span class="c"># Key 131 description: QH &gt; 1</span>
3056 <span class="c">#</span>
<a name="_Generate166KeySetKey131-"></a>3057 <span class="k">sub </span><span class="m">_Generate166KeySetKey131</span> <span class="s">{</span>
3058   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3059   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3060 
3061   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3062 <span class="s">}</span>
3063 
3064 <span class="c"># Generate key 132 value as 1/0 indicating its presence/absence or count of its</span>
3065 <span class="c"># presence in a molecule.</span>
3066 <span class="c">#</span>
3067 <span class="c"># Key 132 description: OACH2A</span>
3068 <span class="c">#</span>
<a name="_Generate166KeySetKey132-"></a>3069 <span class="k">sub </span><span class="m">_Generate166KeySetKey132</span> <span class="s">{</span>
3070   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3071   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3072 
3073   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3074   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3075   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3076 
3077   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3078 <span class="s">}</span>
3079 
3080 <span class="c"># Generate key 133 value as 1/0 indicating its presence/absence or count of its</span>
3081 <span class="c"># presence in a molecule.</span>
3082 <span class="c">#</span>
3083 <span class="c"># Key 133 description: A$A!N</span>
3084 <span class="c">#</span>
<a name="_Generate166KeySetKey133-"></a>3085 <span class="k">sub </span><span class="m">_Generate166KeySetKey133</span> <span class="s">{</span>
3086   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3087   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3088 
3089   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3090   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
3091   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3092 
3093   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3094 <span class="s">}</span>
3095 
3096 <span class="c"># Generate key 134 value as 1/0 indicating its presence/absence or count of its</span>
3097 <span class="c"># presence in a molecule.</span>
3098 <span class="c">#</span>
3099 <span class="c"># Key 134 description: X (HALOGEN)</span>
3100 <span class="c">#</span>
<a name="_Generate166KeySetKey134-"></a>3101 <span class="k">sub </span><span class="m">_Generate166KeySetKey134</span> <span class="s">{</span>
3102   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3103 
3104   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
3105 <span class="s">}</span>
3106 
3107 <span class="c"># Generate key 135 value as 1/0 indicating its presence/absence or count of its</span>
3108 <span class="c"># presence in a molecule.</span>
3109 <span class="c">#</span>
3110 <span class="c"># Key 135 description: Nnot%A%A</span>
3111 <span class="c">#</span>
<a name="_Generate166KeySetKey135-"></a>3112 <span class="k">sub </span><span class="m">_Generate166KeySetKey135</span> <span class="s">{</span>
3113   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3114   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3115 
3116   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3117   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3118   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;not%&#39;</span><span class="cm">,</span> <span class="q">&#39;%&#39;</span><span class="s">)</span><span class="sc">;</span>
3119 
3120   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3121 <span class="s">}</span>
3122 
3123 <span class="c"># Generate key 136 value as 1/0 indicating its presence/absence or count of its</span>
3124 <span class="c"># presence in a molecule.</span>
3125 <span class="c">#</span>
3126 <span class="c"># Key 136 description: O=A &gt; 1</span>
3127 <span class="c">#</span>
<a name="_Generate166KeySetKey136-"></a>3128 <span class="k">sub </span><span class="m">_Generate166KeySetKey136</span> <span class="s">{</span>
3129   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3130   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
3131 
3132   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3133 <span class="s">}</span>
3134 
3135 <span class="c"># Generate key 137 value as 1/0 indicating its presence/absence or count of its</span>
3136 <span class="c"># presence in a molecule.</span>
3137 <span class="c">#</span>
3138 <span class="c"># Key 137 description: HETEROCYCLE</span>
3139 <span class="c">#</span>
<a name="_Generate166KeySetKey137-"></a>3140 <span class="k">sub </span><span class="m">_Generate166KeySetKey137</span> <span class="s">{</span>
3141   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3142   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="n">1</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3143 
3144   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
3145 <span class="s">}</span>
3146 
3147 <span class="c"># Generate key 138 value as 1/0 indicating its presence/absence or count of its</span>
3148 <span class="c"># presence in a molecule.</span>
3149 <span class="c">#</span>
3150 <span class="c"># Key 138 description: QCH2A &gt; 1 (&amp;...)</span>
3151 <span class="c">#</span>
<a name="_Generate166KeySetKey138-"></a>3152 <span class="k">sub </span><span class="m">_Generate166KeySetKey138</span> <span class="s">{</span>
3153   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3154   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3155 
3156   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3157   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3158   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3159   <span class="i">$MinKeyCount</span> = <span class="n">2</span><span class="sc">;</span>
3160   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
3161 
3162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3163 <span class="s">}</span>
3164 
3165 <span class="c"># Generate key 139 value as 1/0 indicating its presence/absence or count of its</span>
3166 <span class="c"># presence in a molecule.</span>
3167 <span class="c">#</span>
3168 <span class="c"># Key 139 description: OH</span>
3169 <span class="c">#</span>
<a name="_Generate166KeySetKey139-"></a>3170 <span class="k">sub </span><span class="m">_Generate166KeySetKey139</span> <span class="s">{</span>
3171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3172   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3173 
3174   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3175 <span class="s">}</span>
3176 
3177 <span class="c"># Generate key 140 value as 1/0 indicating its presence/absence or count of its</span>
3178 <span class="c"># presence in a molecule.</span>
3179 <span class="c">#</span>
3180 <span class="c"># Key 140 description: O &gt; 3 (&amp;...)</span>
3181 <span class="c">#</span>
<a name="_Generate166KeySetKey140-"></a>3182 <span class="k">sub </span><span class="m">_Generate166KeySetKey140</span> <span class="s">{</span>
3183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3184   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">4</span><span class="sc">;</span>
3185 
3186   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3187 <span class="s">}</span>
3188 
3189 <span class="c"># Generate key 141 value as 1/0 indicating its presence/absence or count of its</span>
3190 <span class="c"># presence in a molecule.</span>
3191 <span class="c">#</span>
3192 <span class="c"># Key 141 description: CH3 &gt; 2 (&amp;...)</span>
3193 <span class="c">#</span>
<a name="_Generate166KeySetKey141-"></a>3194 <span class="k">sub </span><span class="m">_Generate166KeySetKey141</span> <span class="s">{</span>
3195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3196   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">3</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
3197 
3198   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3199 <span class="s">}</span>
3200 
3201 <span class="c"># Generate key 142 value as 1/0 indicating its presence/absence or count of its</span>
3202 <span class="c"># presence in a molecule.</span>
3203 <span class="c">#</span>
3204 <span class="c"># Key 142 description: N &gt; 1</span>
3205 <span class="c">#</span>
<a name="_Generate166KeySetKey142-"></a>3206 <span class="k">sub </span><span class="m">_Generate166KeySetKey142</span> <span class="s">{</span>
3207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3208   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
3209 
3210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3211 <span class="s">}</span>
3212 
3213 <span class="c"># Generate key 143 value as 1/0 indicating its presence/absence or count of its</span>
3214 <span class="c"># presence in a molecule.</span>
3215 <span class="c">#</span>
3216 <span class="c"># Key 143 description: A$A!O</span>
3217 <span class="c">#</span>
<a name="_Generate166KeySetKey143-"></a>3218 <span class="k">sub </span><span class="m">_Generate166KeySetKey143</span> <span class="s">{</span>
3219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3221 
3222   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
3224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3225 
3226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3227 <span class="s">}</span>
3228 
3229 <span class="c"># Generate key 144 value as 1/0 indicating its presence/absence or count of its</span>
3230 <span class="c"># presence in a molecule.</span>
3231 <span class="c">#</span>
3232 <span class="c"># Key 144 description: Anot%A%Anot%A</span>
3233 <span class="c">#</span>
<a name="_Generate166KeySetKey144-"></a>3234 <span class="k">sub </span><span class="m">_Generate166KeySetKey144</span> <span class="s">{</span>
3235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3236   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3237 
3238   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3239   <span class="i">$BondSymbol</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
3240 
3241   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3242   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3243   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3244 <span class="s">}</span>
3245 
3246 <span class="c"># Generate key 145 value as 1/0 indicating its presence/absence or count of its</span>
3247 <span class="c"># presence in a molecule.</span>
3248 <span class="c">#</span>
3249 <span class="c"># Key 145 description: 6M RING &gt; 1</span>
3250 <span class="c">#</span>
<a name="_Generate166KeySetKey145-"></a>3251 <span class="k">sub </span><span class="m">_Generate166KeySetKey145</span> <span class="s">{</span>
3252   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3253   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
3254 
3255   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
3256   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3257   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
3258 
3259   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3260     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfRings</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
3261   <span class="s">}</span>
3262   <span class="k">else</span> <span class="s">{</span>
3263     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
3264   <span class="s">}</span>
3265   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3266 <span class="s">}</span>
3267 
3268 <span class="c"># Generate key 146 value as 1/0 indicating its presence/absence or count of its</span>
3269 <span class="c"># presence in a molecule.</span>
3270 <span class="c">#</span>
3271 <span class="c"># Key 146 description: O &gt; 2</span>
3272 <span class="c">#</span>
<a name="_Generate166KeySetKey146-"></a>3273 <span class="k">sub </span><span class="m">_Generate166KeySetKey146</span> <span class="s">{</span>
3274   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3275   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">3</span><span class="sc">;</span>
3276 
3277   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3278 <span class="s">}</span>
3279 
3280 <span class="c"># Generate key 147 value as 1/0 indicating its presence/absence or count of its</span>
3281 <span class="c"># presence in a molecule.</span>
3282 <span class="c">#</span>
3283 <span class="c"># Key 147 description: ACH2CH2A</span>
3284 <span class="c">#</span>
<a name="_Generate166KeySetKey147-"></a>3285 <span class="k">sub </span><span class="m">_Generate166KeySetKey147</span> <span class="s">{</span>
3286   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3287   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3288 
3289   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3290   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3291   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3292 
3293   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3294 <span class="s">}</span>
3295 
3296 <span class="c"># Generate key 148 value as 1/0 indicating its presence/absence or count of its</span>
3297 <span class="c"># presence in a molecule.</span>
3298 <span class="c">#</span>
3299 <span class="c"># Key 148 description: AQ(A)A</span>
3300 <span class="c">#</span>
<a name="_Generate166KeySetKey148-"></a>3301 <span class="k">sub </span><span class="m">_Generate166KeySetKey148</span> <span class="s">{</span>
3302   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3303   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3304 
3305   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
3306   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3307   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3308 
3309   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3310 <span class="s">}</span>
3311 
3312 <span class="c"># Generate key 149 value as 1/0 indicating its presence/absence or count of its</span>
3313 <span class="c"># presence in a molecule.</span>
3314 <span class="c">#</span>
3315 <span class="c"># Key 149 description: CH3 &gt; 1</span>
3316 <span class="c">#</span>
<a name="_Generate166KeySetKey149-"></a>3317 <span class="k">sub </span><span class="m">_Generate166KeySetKey149</span> <span class="s">{</span>
3318   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3319   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
3320 
3321   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3322 <span class="s">}</span>
3323 
3324 <span class="c"># Generate key 150 value as 1/0 indicating its presence/absence or count of its</span>
3325 <span class="c"># presence in a molecule.</span>
3326 <span class="c">#</span>
3327 <span class="c"># Key 150 description: A!A$A!A</span>
3328 <span class="c">#</span>
<a name="_Generate166KeySetKey150-"></a>3329 <span class="k">sub </span><span class="m">_Generate166KeySetKey150</span> <span class="s">{</span>
3330   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3331   <span class="k">my</span><span class="s">(</span><span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3332 
3333   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3334   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3335 
3336   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3337 <span class="s">}</span>
3338 
3339 <span class="c"># Generate key 151 value as 1/0 indicating its presence/absence or count of its</span>
3340 <span class="c"># presence in a molecule.</span>
3341 <span class="c">#</span>
3342 <span class="c"># Key 151 description: NH</span>
3343 <span class="c">#</span>
<a name="_Generate166KeySetKey151-"></a>3344 <span class="k">sub </span><span class="m">_Generate166KeySetKey151</span> <span class="s">{</span>
3345   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3346   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3347 
3348   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3349 <span class="s">}</span>
3350 
3351 <span class="c"># Generate key 152 value as 1/0 indicating its presence/absence or count of its</span>
3352 <span class="c"># presence in a molecule.</span>
3353 <span class="c">#</span>
3354 <span class="c"># Key 152 description: OC(C)C</span>
3355 <span class="c">#</span>
<a name="_Generate166KeySetKey152-"></a>3356 <span class="k">sub </span><span class="m">_Generate166KeySetKey152</span> <span class="s">{</span>
3357   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3358   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3359 
3360   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3361   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
3362   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3363 
3364   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3365 <span class="s">}</span>
3366 
3367 <span class="c"># Generate key 153 value as 1/0 indicating its presence/absence or count of its</span>
3368 <span class="c"># presence in a molecule.</span>
3369 <span class="c">#</span>
3370 <span class="c"># Key 153 description: QCH2A</span>
3371 <span class="c">#</span>
<a name="_Generate166KeySetKey153-"></a>3372 <span class="k">sub </span><span class="m">_Generate166KeySetKey153</span> <span class="s">{</span>
3373   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3374   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3375 
3376   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3377   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3378   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3379   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
3380   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
3381 
3382   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3383 <span class="s">}</span>
3384 
3385 <span class="c"># Generate key 154 value as 1/0 indicating its presence/absence or count of its</span>
3386 <span class="c"># presence in a molecule.</span>
3387 <span class="c">#</span>
3388 <span class="c"># Key 154 description: C=O</span>
3389 <span class="c">#</span>
<a name="_Generate166KeySetKey154-"></a>3390 <span class="k">sub </span><span class="m">_Generate166KeySetKey154</span> <span class="s">{</span>
3391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3392   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
3393 
3394   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
3395 <span class="s">}</span>
3396 
3397 <span class="c"># Generate key 155 value as 1/0 indicating its presence/absence or count of its</span>
3398 <span class="c"># presence in a molecule.</span>
3399 <span class="c">#</span>
3400 <span class="c"># Key 155 description: A!CH2!A</span>
3401 <span class="c">#</span>
<a name="_Generate166KeySetKey155-"></a>3402 <span class="k">sub </span><span class="m">_Generate166KeySetKey155</span> <span class="s">{</span>
3403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3404   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3405 
3406   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3407   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3408   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3409   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
3410   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
3411 
3412   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3413 <span class="s">}</span>
3414 
3415 <span class="c"># Generate key 156 value as 1/0 indicating its presence/absence or count of its</span>
3416 <span class="c"># presence in a molecule.</span>
3417 <span class="c">#</span>
3418 <span class="c"># Key 156 description: NA(A)A</span>
3419 <span class="c">#</span>
<a name="_Generate166KeySetKey156-"></a>3420 <span class="k">sub </span><span class="m">_Generate166KeySetKey156</span> <span class="s">{</span>
3421   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3422   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> <span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3423 
3424   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3425   <span class="i">@CentralAtomsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3426   <span class="i">@CentralAtomsMinHydrogenCount</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3427 
3428   <span class="i">@CentralAtomNbrsAtomSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3429   <span class="i">@CentralAtomNbrsBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3430   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
3431 
3432   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsBondSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomsMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsAtomSymbols</span><span class="cm">,</span> \<span class="i">@CentralAtomNbrsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3433 <span class="s">}</span>
3434 
3435 <span class="c"># Generate key 157 value as 1/0 indicating its presence/absence or count of its</span>
3436 <span class="c"># presence in a molecule.</span>
3437 <span class="c">#</span>
3438 <span class="c"># Key 157 description: C-O</span>
3439 <span class="c">#</span>
<a name="_Generate166KeySetKey157-"></a>3440 <span class="k">sub </span><span class="m">_Generate166KeySetKey157</span> <span class="s">{</span>
3441   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3442   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
3443 
3444   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
3445 <span class="s">}</span>
3446 
3447 <span class="c"># Generate key 158 value as 1/0 indicating its presence/absence or count of its</span>
3448 <span class="c"># presence in a molecule.</span>
3449 <span class="c">#</span>
3450 <span class="c"># Key 158 description: C-N</span>
3451 <span class="c">#</span>
<a name="_Generate166KeySetKey158-"></a>3452 <span class="k">sub </span><span class="m">_Generate166KeySetKey158</span> <span class="s">{</span>
3453   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3454   <span class="k">my</span><span class="s">(</span><span class="i">$BondOrder</span><span class="s">)</span> = <span class="n">1</span><span class="sc">;</span>
3455 
3456   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
3457 <span class="s">}</span>
3458 
3459 <span class="c"># Generate key 159 value as 1/0 indicating its presence/absence or count of its</span>
3460 <span class="c"># presence in a molecule.</span>
3461 <span class="c">#</span>
3462 <span class="c"># Key 159 description: O &gt; 1</span>
3463 <span class="c">#</span>
<a name="_Generate166KeySetKey159-"></a>3464 <span class="k">sub </span><span class="m">_Generate166KeySetKey159</span> <span class="s">{</span>
3465   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3466   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> = <span class="n">2</span><span class="sc">;</span>
3467 
3468   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="s">)</span><span class="sc">;</span>
3469 <span class="s">}</span>
3470 
3471 <span class="c"># Generate key 160 value as 1/0 indicating its presence/absence or count of its</span>
3472 <span class="c"># presence in a molecule.</span>
3473 <span class="c">#</span>
3474 <span class="c"># Key 160 description: CH3</span>
3475 <span class="c">#</span>
<a name="_Generate166KeySetKey160-"></a>3476 <span class="k">sub </span><span class="m">_Generate166KeySetKey160</span> <span class="s">{</span>
3477   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3478   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">3</span><span class="s">)</span><span class="sc">;</span>
3479 
3480   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3481 <span class="s">}</span>
3482 
3483 <span class="c"># Generate key 161 value as 1/0 indicating its presence/absence or count of its</span>
3484 <span class="c"># presence in a molecule.</span>
3485 <span class="c">#</span>
3486 <span class="c"># Key 161 description: N</span>
3487 <span class="c">#</span>
<a name="_Generate166KeySetKey161-"></a>3488 <span class="k">sub </span><span class="m">_Generate166KeySetKey161</span> <span class="s">{</span>
3489   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3490 
3491   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
3492 <span class="s">}</span>
3493 
3494 <span class="c"># Generate key 162 value as 1/0 indicating its presence/absence or count of its</span>
3495 <span class="c"># presence in a molecule.</span>
3496 <span class="c">#</span>
3497 <span class="c"># Key 162 description: AROMATIC</span>
3498 <span class="c">#</span>
<a name="_Generate166KeySetKey162-"></a>3499 <span class="k">sub </span><span class="m">_Generate166KeySetKey162</span> <span class="s">{</span>
3500   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3501   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
3502 
3503   <span class="c"># Check molecule aromatic property...</span>
3504   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3505   <span class="k">if</span> <span class="s">(</span><span class="i">$Molecule</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
3506     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
3507   <span class="s">}</span>
3508 
3509   <span class="c"># Check aromatic property of each atom...</span>
3510   <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
3511   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
3512       <span class="k">if</span> <span class="s">(</span>!<span class="i">$Atom</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
3513         <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
3514         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
3515       <span class="s">}</span>
3516   <span class="s">}</span>
3517   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3518 <span class="s">}</span>
3519 
3520 <span class="c"># Generate key 163 value as 1/0 indicating its presence/absence or count of its</span>
3521 <span class="c"># presence in a molecule.</span>
3522 <span class="c">#</span>
3523 <span class="c"># Key 163 description: 6M RING</span>
3524 <span class="c">#</span>
<a name="_Generate166KeySetKey163-"></a>3525 <span class="k">sub </span><span class="m">_Generate166KeySetKey163</span> <span class="s">{</span>
3526   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3527   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
3528 
3529   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
3530   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3531   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
3532 
3533   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3534     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
3535   <span class="s">}</span>
3536   <span class="k">else</span> <span class="s">{</span>
3537     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
3538   <span class="s">}</span>
3539   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3540 <span class="s">}</span>
3541 
3542 <span class="c"># Generate key 164 value as 1/0 indicating its presence/absence or count of its</span>
3543 <span class="c"># presence in a molecule.</span>
3544 <span class="c">#</span>
3545 <span class="c"># Key 164 description: O</span>
3546 <span class="c">#</span>
<a name="_Generate166KeySetKey164-"></a>3547 <span class="k">sub </span><span class="m">_Generate166KeySetKey164</span> <span class="s">{</span>
3548   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3549 
3550   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
3551 <span class="s">}</span>
3552 
3553 <span class="c"># Generate key 165 value as 1/0 indicating its presence/absence or count of its</span>
3554 <span class="c"># presence in a molecule.</span>
3555 <span class="c">#</span>
3556 <span class="c"># Key 165 description: RING</span>
3557 <span class="c">#</span>
<a name="_Generate166KeySetKey165-"></a>3558 <span class="k">sub </span><span class="m">_Generate166KeySetKey165</span> <span class="s">{</span>
3559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3560   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
3561 
3562   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3563   <span class="i">$NumOfRings</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfRings</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3564 
3565   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3566     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
3567   <span class="s">}</span>
3568   <span class="k">else</span> <span class="s">{</span>
3569     <span class="i">$KeyValue</span> = <span class="i">$NumOfRings</span><span class="sc">;</span>
3570   <span class="s">}</span>
3571   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3572 <span class="s">}</span>
3573 
3574 <span class="c"># Generate key 166 value as 1/0 indicating its presence/absence or count of its</span>
3575 <span class="c"># presence in a molecule.</span>
3576 <span class="c">#</span>
3577 <span class="c"># Key 166 description: FRAGMENTS</span>
3578 <span class="c">#</span>
<a name="_Generate166KeySetKey166-"></a>3579 <span class="k">sub </span><span class="m">_Generate166KeySetKey166</span> <span class="s">{</span>
3580   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3581   <span class="k">my</span><span class="s">(</span><span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$NumOfComponents</span><span class="s">)</span><span class="sc">;</span>
3582 
3583   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3584   <span class="i">$NumOfComponents</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetNumOfConnectedComponents</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
3585 
3586   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3587     <span class="i">$KeyValue</span> = <span class="s">(</span><span class="i">$NumOfComponents</span> &gt; <span class="n">1</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
3588   <span class="s">}</span>
3589   <span class="k">else</span> <span class="s">{</span>
3590     <span class="i">$KeyValue</span> = <span class="i">$NumOfComponents</span><span class="sc">;</span>
3591   <span class="s">}</span>
3592   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3593 <span class="s">}</span>
3594 
3595 <span class="c">##################################</span>
3596 <span class="c">#</span>
3597 <span class="c">#  Implementation of MDL MACCS 322 keys...</span>
3598 <span class="c">#</span>
3599 <span class="c">##################################</span>
3600 
3601 <span class="c"># Generate 322 keyset key 1 value as 1/0 indicating its presence/absence or</span>
3602 <span class="c"># count of its presence in a molecule.</span>
3603 <span class="c">#</span>
3604 <span class="c"># Key 1 description: A(AAA) or AA(A)A - atom with at least three neighbors</span>
3605 <span class="c">#</span>
<a name="_Generate322KeySetKey1-"></a>3606 <span class="k">sub </span><span class="m">_Generate322KeySetKey1</span> <span class="s">{</span>
3607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3608   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3609 
3610   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3611   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3612   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3613 
3614   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3615 <span class="s">}</span>
3616 
3617 <span class="c"># Generate 322 keyset key 2 value as 1/0 indicating its presence/absence or</span>
3618 <span class="c"># count of its presence in a molecule.</span>
3619 <span class="c">#</span>
3620 <span class="c"># Key 2 description: Q - heteroatom</span>
3621 <span class="c">#</span>
<a name="_Generate322KeySetKey2-"></a>3622 <span class="k">sub </span><span class="m">_Generate322KeySetKey2</span> <span class="s">{</span>
3623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3624 
3625   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
3626 <span class="s">}</span>
3627 
3628 <span class="c"># Generate 322 keyset key 3 value as 1/0 indicating its presence/absence or</span>
3629 <span class="c"># count of its presence in a molecule.</span>
3630 <span class="c">#</span>
3631 <span class="c"># Key 3 description: Anot%not-A - atom involved in one or more multiple bonds, not aromatic</span>
3632 <span class="c">#</span>
<a name="_Generate322KeySetKey3-"></a>3633 <span class="k">sub </span><span class="m">_Generate322KeySetKey3</span> <span class="s">{</span>
3634   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3635   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;not%not-&#39;</span><span class="sc">;</span>
3636 
3637   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
3638 <span class="s">}</span>
3639 
3640 <span class="c"># Generate 322 keyset key 4 value as 1/0 indicating its presence/absence or</span>
3641 <span class="c"># count of its presence in a molecule.</span>
3642 <span class="c">#</span>
3643 <span class="c"># Key 4 description:      A(AAAA) or AA(A)(A)A - atom with at least four neighbors</span>
3644 <span class="c">#</span>
<a name="_Generate322KeySetKey4-"></a>3645 <span class="k">sub </span><span class="m">_Generate322KeySetKey4</span> <span class="s">{</span>
3646   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3647   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3648 
3649   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3650   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3651   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3652 
3653   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3654 <span class="s">}</span>
3655 
3656 <span class="c"># Generate 322 keyset key 5 value as 1/0 indicating its presence/absence or</span>
3657 <span class="c"># count of its presence in a molecule.</span>
3658 <span class="c">#</span>
3659 <span class="c"># Key 5 description: A(QQ) or QA(Q) - atom with at least two heteroatom neighbors</span>
3660 <span class="c">#</span>
<a name="_Generate322KeySetKey5-"></a>3661 <span class="k">sub </span><span class="m">_Generate322KeySetKey5</span> <span class="s">{</span>
3662   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3663   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3664 
3665   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3666   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
3667   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3668 
3669   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3670 <span class="s">}</span>
3671 
3672 <span class="c"># Generate 322 keyset key 6 value as 1/0 indicating its presence/absence or</span>
3673 <span class="c"># count of its presence in a molecule.</span>
3674 <span class="c">#</span>
3675 <span class="c"># Key 6 description: A(QQQ) or QA(Q)Q - atom with at least three heteroatom neighbors</span>
3676 <span class="c">#</span>
<a name="_Generate322KeySetKey6-"></a>3677 <span class="k">sub </span><span class="m">_Generate322KeySetKey6</span> <span class="s">{</span>
3678   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3679   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3680 
3681   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3682   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="q">&#39;Q&#39;</span><span class="s">)</span><span class="sc">;</span>
3683   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3684 
3685   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3686 <span class="s">}</span>
3687 
3688 <span class="c"># Generate 322 keyset key 7 value as 1/0 indicating its presence/absence or</span>
3689 <span class="c"># count of its presence in a molecule.</span>
3690 <span class="c">#</span>
3691 <span class="c"># Key 7 description:      QH - heteroatom with at least one hydrogen attached</span>
3692 <span class="c">#</span>
<a name="_Generate322KeySetKey7-"></a>3693 <span class="k">sub </span><span class="m">_Generate322KeySetKey7</span> <span class="s">{</span>
3694   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3695   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3696 
3697   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3698 <span class="s">}</span>
3699 
3700 <span class="c"># Generate 322 keyset key 8 value as 1/0 indicating its presence/absence or</span>
3701 <span class="c"># count of its presence in a molecule.</span>
3702 <span class="c">#</span>
3703 <span class="c"># Key 8 description: CH2(AA) or ACH2A - carbon with at least two single bonds and at least two hydrogens attached</span>
3704 <span class="c">#</span>
<a name="_Generate322KeySetKey8-"></a>3705 <span class="k">sub </span><span class="m">_Generate322KeySetKey8</span> <span class="s">{</span>
3706   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3707   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3708 
3709   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3710   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3711   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3712   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
3713   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">2</span><span class="sc">;</span>
3714 
3715   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3716 <span class="s">}</span>
3717 
3718 <span class="c"># Generate 322 keyset key 9 value as 1/0 indicating its presence/absence or</span>
3719 <span class="c"># count of its presence in a molecule.</span>
3720 <span class="c">#</span>
3721 <span class="c"># Key 9 description: CH3(A) or ACH3 - carbon with at least one single bond and at least three hydrogens attached</span>
3722 <span class="c">#</span>
<a name="_Generate322KeySetKey9-"></a>3723 <span class="k">sub </span><span class="m">_Generate322KeySetKey9</span> <span class="s">{</span>
3724   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3725   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3726 
3727   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
3728   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3729   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
3730   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
3731   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="n">3</span><span class="sc">;</span>
3732 
3733   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
3734 <span class="s">}</span>
3735 
3736 <span class="c"># Generate 322 keyset key 10 value as 1/0 indicating its presence/absence or</span>
3737 <span class="c"># count of its presence in a molecule.</span>
3738 <span class="c">#</span>
3739 <span class="c"># Key 10 description: Halogen</span>
3740 <span class="c">#</span>
<a name="_Generate322KeySetKey10-"></a>3741 <span class="k">sub </span><span class="m">_Generate322KeySetKey10</span> <span class="s">{</span>
3742   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3743 
3744   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;X&#39;</span><span class="s">)</span><span class="sc">;</span>
3745 <span class="s">}</span>
3746 
3747 <span class="c"># Generate 322 keyset key 11 value as 1/0 indicating its presence/absence or</span>
3748 <span class="c"># count of its presence in a molecule.</span>
3749 <span class="c">#</span>
3750 <span class="c"># Key 11 description: A(-A-A-A) or A-A(-A)-A - atom has at least three single bonds</span>
3751 <span class="c">#</span>
<a name="_Generate322KeySetKey11-"></a>3752 <span class="k">sub </span><span class="m">_Generate322KeySetKey11</span> <span class="s">{</span>
3753   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3754   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3755 
3756   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3757   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3758   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;-&#39;</span><span class="cm">,</span> <span class="q">&#39;-&#39;</span><span class="cm">,</span> <span class="q">&#39;-&#39;</span><span class="s">)</span><span class="sc">;</span>
3759 
3760   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3761 <span class="s">}</span>
3762 
3763 <span class="c"># Generate 322 keyset key 12 value as 1/0 indicating its presence/absence or</span>
3764 <span class="c"># count of its presence in a molecule.</span>
3765 <span class="c">#</span>
3766 <span class="c"># Key 12 description: AAAAAA@1 &gt;= 2 - atom is in at least two different six-membered rings</span>
3767 <span class="c">#</span>
<a name="_Generate322KeySetKey12-"></a>3768 <span class="k">sub </span><span class="m">_Generate322KeySetKey12</span> <span class="s">{</span>
3769   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3770   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$RingSize</span><span class="cm">,</span> <span class="i">$NumOfRings</span><span class="s">)</span><span class="sc">;</span>
3771 
3772   <span class="i">$RingSize</span> = <span class="n">6</span><span class="sc">;</span>
3773   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
3774 
3775   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
3776     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
3777       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
3778     <span class="s">}</span>
3779     <span class="i">$NumOfRings</span> = <span class="i">$Atom</span><span class="i">-&gt;GetNumOfRingsWithSize</span><span class="s">(</span><span class="i">$RingSize</span><span class="s">)</span><span class="sc">;</span>
3780     <span class="k">if</span> <span class="s">(</span><span class="i">$NumOfRings</span> &gt;= <span class="n">2</span><span class="s">)</span> <span class="s">{</span>
3781       <span class="i">$KeyValue</span>++<span class="sc">;</span>
3782       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3783         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
3784         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
3785       <span class="s">}</span>
3786     <span class="s">}</span>
3787   <span class="s">}</span>
3788   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3789 <span class="s">}</span>
3790 
3791 <span class="c"># Generate 322 keyset key 13 value as 1/0 indicating its presence/absence or</span>
3792 <span class="c"># count of its presence in a molecule.</span>
3793 <span class="c">#</span>
3794 <span class="c"># Key 13 description: A($A$A$A) or A$A($A)$A - atom has more than two ring bonds (at least three ring bonds)</span>
3795 <span class="c">#</span>
<a name="_Generate322KeySetKey13-"></a>3796 <span class="k">sub </span><span class="m">_Generate322KeySetKey13</span> <span class="s">{</span>
3797   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3798   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3799 
3800   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3801   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3802   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="cm">,</span> <span class="q">&#39;$&#39;</span><span class="s">)</span><span class="sc">;</span>
3803 
3804   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3805 <span class="s">}</span>
3806 
3807 <span class="c"># Generate 322 keyset key 14 value as 1/0 indicating its presence/absence or</span>
3808 <span class="c"># count of its presence in a molecule.</span>
3809 <span class="c">#</span>
3810 <span class="c"># Key 14 description: A$A!A$A - atom is at a ring/chain boundary. When a comparison is</span>
3811 <span class="c">#                     done with another atom the path passes through the chain bond.</span>
3812 <span class="c">#</span>
<a name="_Generate322KeySetKey14-"></a>3813 <span class="k">sub </span><span class="m">_Generate322KeySetKey14</span> <span class="s">{</span>
3814   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3815   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3816 
3817   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3818   <span class="i">$BondSymbol</span> = <span class="q">&#39;!&#39;</span><span class="sc">;</span>
3819 
3820   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3821   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;$&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3822   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3823 <span class="s">}</span>
3824 
3825 <span class="c"># Generate 322 keyset key 15 value as 1/0 indicating its presence/absence or</span>
3826 <span class="c"># count of its presence in a molecule.</span>
3827 <span class="c">#</span>
3828 <span class="c"># Key 15 description:  Anot%A%Anot%A - atom is at an aromatic/nonaromatic boundary.</span>
3829 <span class="c">#                      When a comparison is done with another atom the path passes through the aromatic bond.</span>
3830 <span class="c">#</span>
<a name="_Generate322KeySetKey15-"></a>3831 <span class="k">sub </span><span class="m">_Generate322KeySetKey15</span> <span class="s">{</span>
3832   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3833   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3834 
3835   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3836   <span class="i">$BondSymbol</span> = <span class="q">&#39;%&#39;</span><span class="sc">;</span>
3837 
3838   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3839   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;not%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3840   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3841 <span class="s">}</span>
3842 
3843 <span class="c"># Generate 322 keyset key 16 value as 1/0 indicating its presence/absence or</span>
3844 <span class="c"># count of its presence in a molecule.</span>
3845 <span class="c">#</span>
3846 <span class="c"># Key 16 description:     A!A!A  - atom with more than one chain bond</span>
3847 <span class="c">#</span>
<a name="_Generate322KeySetKey16-"></a>3848 <span class="k">sub </span><span class="m">_Generate322KeySetKey16</span> <span class="s">{</span>
3849   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3850   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3851 
3852   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
3853   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3854   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="q">&#39;!&#39;</span><span class="cm">,</span> <span class="q">&#39;!&#39;</span><span class="s">)</span><span class="sc">;</span>
3855 
3856   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3857 <span class="s">}</span>
3858 
3859 <span class="c"># Generate 322 keyset key 17 value as 1/0 indicating its presence/absence or</span>
3860 <span class="c"># count of its presence in a molecule.</span>
3861 <span class="c">#</span>
3862 <span class="c"># Key 17 description: A!A$A!A - atom is at a ring/chain boundary. When a comparison</span>
3863 <span class="c">#                     is done  with another atom the path passes through the ring bond.</span>
3864 <span class="c">#</span>
<a name="_Generate322KeySetKey17-"></a>3865 <span class="k">sub </span><span class="m">_Generate322KeySetKey17</span> <span class="s">{</span>
3866   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3867   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3868 
3869   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3870   <span class="i">$BondSymbol</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
3871 
3872   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3873   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;!&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;!&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3874   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3875 <span class="s">}</span>
3876 
3877 <span class="c"># Generate 322 keyset key 18 value as 1/0 indicating its presence/absence or</span>
3878 <span class="c"># count of its presence in a molecule.</span>
3879 <span class="c">#</span>
3880 <span class="c"># Key 18 description: A%Anot%A%A - atom is at an aromatic/nonaromatic boundary.</span>
3881 <span class="c">#                     When a comparison is done with another atom the path passes through</span>
3882 <span class="c">#                     the nonaromatic bond</span>
3883 <span class="c">#</span>
<a name="_Generate322KeySetKey18-"></a>3884 <span class="k">sub </span><span class="m">_Generate322KeySetKey18</span> <span class="s">{</span>
3885   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3886   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3887 
3888   <span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="s">)</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
3889   <span class="i">$BondSymbol</span> = <span class="q">&#39;not%&#39;</span><span class="sc">;</span>
3890 
3891   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3892   <span class="i">@NbrAtomsBondSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;%&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;%&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
3893   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondNeighborhoodKeys</span><span class="s">(</span><span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="cm">,</span> \<span class="i">@NbrAtomsBondSymbols</span><span class="s">)</span><span class="sc">;</span>
3894 <span class="s">}</span>
3895 
3896 <span class="c"># Generate 322 keyset key 19 value as 1/0 indicating its presence/absence or</span>
3897 <span class="c"># count of its presence in a molecule.</span>
3898 <span class="c">#</span>
3899 <span class="c"># Key 19 description: HETEROCYCLE - atom is a heteroatom in a ring.</span>
3900 <span class="c">#</span>
<a name="_Generate322KeySetKey19-"></a>3901 <span class="k">sub </span><span class="m">_Generate322KeySetKey19</span> <span class="s">{</span>
3902   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3903   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span>
3904 
3905   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;Q&#39;</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="s">)</span><span class="sc">;</span>
3906 <span class="s">}</span>
3907 
3908 <span class="c"># Generate 322 keyset key 20 value as 1/0 indicating its presence/absence or</span>
3909 <span class="c"># count of its presence in a molecule.</span>
3910 <span class="c">#</span>
3911 <span class="c"># Key 20 description: rare properties: atom with five or more neighbors, atom in four</span>
3912 <span class="c">#                     or more rings, or atom types other than  H, C, N, O, S, F, Cl, Br, or I</span>
3913 <span class="c">#</span>
<a name="_Generate322KeySetKey20-"></a>3914 <span class="k">sub </span><span class="m">_Generate322KeySetKey20</span> <span class="s">{</span>
3915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3916   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
3917 
3918   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
3919   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
3920     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> !~ <span class="q">/^(1|6|7|8|9|16|17|35|53)$/</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfRings</span><span class="s">(</span><span class="s">)</span> &gt;= <span class="n">4</span><span class="s">)</span> || <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfNeighbors</span><span class="s">(</span><span class="s">)</span> &gt;= <span class="n">5</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
3921       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
3922     <span class="s">}</span>
3923     <span class="i">$KeyValue</span>++<span class="sc">;</span>
3924     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3925       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
3926       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
3927     <span class="s">}</span>
3928   <span class="s">}</span>
3929   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3930 <span class="s">}</span>
3931 
3932 <span class="c"># Generate 322 keyset key 21 value as 1/0 indicating its presence/absence or</span>
3933 <span class="c"># count of its presence in a molecule.</span>
3934 <span class="c">#</span>
3935 <span class="c"># Key 21 description: rare properties: atom has a charge, is an isotope, has</span>
3936 <span class="c">#                     two or more multiple bonds, or has a triple bond.</span>
3937 <span class="c">#</span>
<a name="_Generate322KeySetKey21-"></a>3938 <span class="k">sub </span><span class="m">_Generate322KeySetKey21</span> <span class="s">{</span>
3939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3940   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
3941 
3942   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
3943   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
3944     <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;IsIsotope</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Atom</span><span class="i">-&gt;GetFormalCharge</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
3945       <span class="c"># Look for multiple and triple bonds...</span>
3946       <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span><span class="sc">;</span>
3947 
3948       <span class="s">(</span><span class="i">$NumOfTripleBonds</span><span class="cm">,</span> <span class="i">$NumOfMultipleBonds</span><span class="s">)</span> = <span class="s">(</span><span class="n">0</span><span class="cm">,</span> <span class="n">0</span><span class="s">)</span><span class="sc">;</span>
3949       <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetBonds</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
3950         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
3951         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfMultipleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
3952         <span class="k">if</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span> <span class="i">$NumOfTripleBonds</span>++<span class="sc">;</span> <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span> <span class="s">}</span>
3953       <span class="s">}</span>
3954       <span class="k">if</span> <span class="s">(</span> !<span class="s">(</span><span class="i">$NumOfTripleBonds</span> || <span class="s">(</span><span class="i">$NumOfMultipleBonds</span> &gt;= <span class="n">2</span><span class="s">)</span><span class="s">)</span> <span class="s">)</span> <span class="s">{</span>
3955         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
3956       <span class="s">}</span>
3957     <span class="s">}</span>
3958     <span class="i">$KeyValue</span>++<span class="sc">;</span>
3959     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
3960       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
3961       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
3962     <span class="s">}</span>
3963   <span class="s">}</span>
3964   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
3965 <span class="s">}</span>
3966 
3967 <span class="c"># Generate 322 keyset key 22 value as 1/0 indicating its presence/absence or</span>
3968 <span class="c"># count of its presence in a molecule.</span>
3969 <span class="c">#</span>
3970 <span class="c"># Key 22 description:  N - nitrogen</span>
3971 <span class="c">#</span>
<a name="_Generate322KeySetKey22-"></a>3972 <span class="k">sub </span><span class="m">_Generate322KeySetKey22</span> <span class="s">{</span>
3973   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3974 
3975   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
3976 <span class="s">}</span>
3977 
3978 <span class="c"># Generate 322 keyset key 23 value as 1/0 indicating its presence/absence or</span>
3979 <span class="c"># count of its presence in a molecule.</span>
3980 <span class="c">#</span>
3981 <span class="c"># Key 23 description: S - sulfur</span>
3982 <span class="c">#</span>
<a name="_Generate322KeySetKey23-"></a>3983 <span class="k">sub </span><span class="m">_Generate322KeySetKey23</span> <span class="s">{</span>
3984   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3985 
3986   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="s">)</span><span class="sc">;</span>
3987 <span class="s">}</span>
3988 
3989 <span class="c"># Generate 322 keyset key 24 value as 1/0 indicating its presence/absence or</span>
3990 <span class="c"># count of its presence in a molecule.</span>
3991 <span class="c">#</span>
3992 <span class="c"># Key 24 description: O - oxygen</span>
3993 <span class="c">#</span>
<a name="_Generate322KeySetKey24-"></a>3994 <span class="k">sub </span><span class="m">_Generate322KeySetKey24</span> <span class="s">{</span>
3995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
3996 
3997   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
3998 <span class="s">}</span>
3999 
4000 <span class="c"># Generate 322 keyset key 25 value as 1/0 indicating its presence/absence or</span>
4001 <span class="c"># count of its presence in a molecule.</span>
4002 <span class="c">#</span>
4003 <span class="c"># Key 25 description: A(AA)A(A)A(AA) - atom has two neighbors, each with</span>
4004 <span class="c">#                     three or more neighbors (including the central atom).</span>
4005 <span class="c">#</span>
<a name="_Generate322KeySetKey25-"></a>4006 <span class="k">sub </span><span class="m">_Generate322KeySetKey25</span> <span class="s">{</span>
4007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4008   <span class="k">my</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span>
4009 
4010   <span class="i">@CentralAtomsSymbols</span> = <span class="s">(</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">)</span><span class="sc">;</span>
4011   <span class="i">@NbrAtomsSymbols</span> = <span class="s">(</span><span class="s">[</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="s">]</span><span class="cm">,</span> <span class="s">[</span><span class="q">&#39;A&#39;</span><span class="cm">,</span> <span class="q">&#39;A&#39;</span><span class="s">]</span><span class="s">)</span><span class="sc">;</span>
4012 
4013   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectExtendedAtomNeighborhoodKeys</span><span class="s">(</span>\<span class="i">@CentralAtomsSymbols</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> \<span class="i">@NbrAtomsSymbols</span><span class="s">)</span><span class="sc">;</span>
4014 <span class="s">}</span>
4015 
4016 <span class="c"># Generate 322 keyset key 26 value as 1/0 indicating its presence/absence or</span>
4017 <span class="c"># count of its presence in a molecule.</span>
4018 <span class="c">#</span>
4019 <span class="c"># Key 26 description:     CH2ACH2 - atom has two hydrocarbon (CH2) neighbors</span>
4020 <span class="c">#</span>
<a name="_Generate322KeySetKey26-"></a>4021 <span class="k">sub </span><span class="m">_Generate322KeySetKey26</span> <span class="s">{</span>
4022   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4023   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
4024 
4025   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;A&#39;</span><span class="sc">;</span>
4026   <span class="i">$CentralAtomMinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
4027 
4028   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4029   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4030   <span class="i">@NbrAtomMinHydrogenCount</span> = <span class="s">(</span><span class="n">2</span><span class="cm">,</span> <span class="n">2</span><span class="s">)</span><span class="sc">;</span>
4031 
4032   <span class="i">$MinKeyCount</span> = <span class="k">undef</span><span class="sc">;</span>
4033 
4034   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
4035 <span class="s">}</span>
4036 
4037 <span class="c"># Generate 322 keyset key 27 value as 1/0 indicating its presence/absence or</span>
4038 <span class="c"># count of its presence in a molecule.</span>
4039 <span class="c">#</span>
4040 <span class="c"># Key 27 description: C(CC)</span>
4041 <span class="c">#</span>
<a name="_Generate322KeySetKey27-"></a>4042 <span class="k">sub </span><span class="m">_Generate322KeySetKey27</span> <span class="s">{</span>
4043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4044   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4045 
4046   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4047   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4048   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4049 
4050   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4051 <span class="s">}</span>
4052 
4053 <span class="c"># Generate 322 keyset key 28 value as 1/0 indicating its presence/absence or</span>
4054 <span class="c"># count of its presence in a molecule.</span>
4055 <span class="c">#</span>
4056 <span class="c"># Key 28 description: C(CCC)</span>
4057 <span class="c">#</span>
<a name="_Generate322KeySetKey28-"></a>4058 <span class="k">sub </span><span class="m">_Generate322KeySetKey28</span> <span class="s">{</span>
4059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4060   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4061 
4062   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4063   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4064   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4065 
4066   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4067 <span class="s">}</span>
4068 
4069 <span class="c"># Generate 322 keyset key 29 value as 1/0 indicating its presence/absence or</span>
4070 <span class="c"># count of its presence in a molecule.</span>
4071 <span class="c">#</span>
4072 <span class="c"># Key 29 description: C(CN)</span>
4073 <span class="c">#</span>
<a name="_Generate322KeySetKey29-"></a>4074 <span class="k">sub </span><span class="m">_Generate322KeySetKey29</span> <span class="s">{</span>
4075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4076   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4077 
4078   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4079   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4080   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4081 
4082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4083 <span class="s">}</span>
4084 
4085 <span class="c"># Generate 322 keyset key 30 value as 1/0 indicating its presence/absence or</span>
4086 <span class="c"># count of its presence in a molecule.</span>
4087 <span class="c">#</span>
4088 <span class="c"># Key 30 description: C(CCN)</span>
4089 <span class="c">#</span>
<a name="_Generate322KeySetKey30-"></a>4090 <span class="k">sub </span><span class="m">_Generate322KeySetKey30</span> <span class="s">{</span>
4091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4092   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4093 
4094   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4095   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4096   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4097 
4098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4099 <span class="s">}</span>
4100 
4101 <span class="c"># Generate 322 keyset key 31 value as 1/0 indicating its presence/absence or</span>
4102 <span class="c"># count of its presence in a molecule.</span>
4103 <span class="c">#</span>
4104 <span class="c"># Key 31 description: C(NN)</span>
4105 <span class="c">#</span>
<a name="_Generate322KeySetKey31-"></a>4106 <span class="k">sub </span><span class="m">_Generate322KeySetKey31</span> <span class="s">{</span>
4107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4108   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4109 
4110   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4111   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4112   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4113 
4114   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4115 <span class="s">}</span>
4116 
4117 <span class="c"># Generate 322 keyset key 32 value as 1/0 indicating its presence/absence or</span>
4118 <span class="c"># count of its presence in a molecule.</span>
4119 <span class="c">#</span>
4120 <span class="c"># Key 32 description: C(NNC)</span>
4121 <span class="c">#</span>
<a name="_Generate322KeySetKey32-"></a>4122 <span class="k">sub </span><span class="m">_Generate322KeySetKey32</span> <span class="s">{</span>
4123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4124   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4125 
4126   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4127   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4128   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4129 
4130   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4131 <span class="s">}</span>
4132 
4133 <span class="c"># Generate 322 keyset key 33 value as 1/0 indicating its presence/absence or</span>
4134 <span class="c"># count of its presence in a molecule.</span>
4135 <span class="c">#</span>
4136 <span class="c"># Key 33 description: C(NNN)</span>
4137 <span class="c">#</span>
<a name="_Generate322KeySetKey33-"></a>4138 <span class="k">sub </span><span class="m">_Generate322KeySetKey33</span> <span class="s">{</span>
4139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4140   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4141 
4142   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4143   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4144   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4145 
4146   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4147 <span class="s">}</span>
4148 
4149 <span class="c"># Generate 322 keyset key 34 value as 1/0 indicating its presence/absence or</span>
4150 <span class="c"># count of its presence in a molecule.</span>
4151 <span class="c">#</span>
4152 <span class="c"># Key 34 description: C(CO)</span>
4153 <span class="c">#</span>
<a name="_Generate322KeySetKey34-"></a>4154 <span class="k">sub </span><span class="m">_Generate322KeySetKey34</span> <span class="s">{</span>
4155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4156   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4157 
4158   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4159   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4160   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4161 
4162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4163 <span class="s">}</span>
4164 
4165 <span class="c"># Generate 322 keyset key 35 value as 1/0 indicating its presence/absence or</span>
4166 <span class="c"># count of its presence in a molecule.</span>
4167 <span class="c">#</span>
4168 <span class="c"># Key 35 description: C(CCO)</span>
4169 <span class="c">#</span>
<a name="_Generate322KeySetKey35-"></a>4170 <span class="k">sub </span><span class="m">_Generate322KeySetKey35</span> <span class="s">{</span>
4171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4172   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4173 
4174   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4175   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4176   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4177 
4178   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4179 <span class="s">}</span>
4180 
4181 <span class="c"># Generate 322 keyset key 36 value as 1/0 indicating its presence/absence or</span>
4182 <span class="c"># count of its presence in a molecule.</span>
4183 <span class="c">#</span>
4184 <span class="c"># Key 36 description: C(NO)</span>
4185 <span class="c">#</span>
<a name="_Generate322KeySetKey36-"></a>4186 <span class="k">sub </span><span class="m">_Generate322KeySetKey36</span> <span class="s">{</span>
4187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4188   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4189 
4190   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4191   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4192   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4193 
4194   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4195 <span class="s">}</span>
4196 
4197 <span class="c"># Generate 322 keyset key 37 value as 1/0 indicating its presence/absence or</span>
4198 <span class="c"># count of its presence in a molecule.</span>
4199 <span class="c">#</span>
4200 <span class="c"># Key 37 description: C(NCO)</span>
4201 <span class="c">#</span>
<a name="_Generate322KeySetKey37-"></a>4202 <span class="k">sub </span><span class="m">_Generate322KeySetKey37</span> <span class="s">{</span>
4203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4204   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4205 
4206   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4207   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4208   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4209 
4210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4211 <span class="s">}</span>
4212 
4213 <span class="c"># Generate 322 keyset key 38 value as 1/0 indicating its presence/absence or</span>
4214 <span class="c"># count of its presence in a molecule.</span>
4215 <span class="c">#</span>
4216 <span class="c"># Key 38 description: C(NNO)</span>
4217 <span class="c">#</span>
<a name="_Generate322KeySetKey38-"></a>4218 <span class="k">sub </span><span class="m">_Generate322KeySetKey38</span> <span class="s">{</span>
4219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4220   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4221 
4222   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4223   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4224   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4225 
4226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4227 <span class="s">}</span>
4228 
4229 <span class="c"># Generate 322 keyset key 39 value as 1/0 indicating its presence/absence or</span>
4230 <span class="c"># count of its presence in a molecule.</span>
4231 <span class="c">#</span>
4232 <span class="c"># Key 39 description: C(OO)</span>
4233 <span class="c">#</span>
<a name="_Generate322KeySetKey39-"></a>4234 <span class="k">sub </span><span class="m">_Generate322KeySetKey39</span> <span class="s">{</span>
4235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4236   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4237 
4238   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4239   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4240   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4241 
4242   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4243 <span class="s">}</span>
4244 
4245 <span class="c"># Generate 322 keyset key 40 value as 1/0 indicating its presence/absence or</span>
4246 <span class="c"># count of its presence in a molecule.</span>
4247 <span class="c">#</span>
4248 <span class="c"># Key 40 description: C(COO)</span>
4249 <span class="c">#</span>
<a name="_Generate322KeySetKey40-"></a>4250 <span class="k">sub </span><span class="m">_Generate322KeySetKey40</span> <span class="s">{</span>
4251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4252   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4253 
4254   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4255   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4256   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4257 
4258   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4259 <span class="s">}</span>
4260 
4261 <span class="c"># Generate 322 keyset key 41 value as 1/0 indicating its presence/absence or</span>
4262 <span class="c"># count of its presence in a molecule.</span>
4263 <span class="c">#</span>
4264 <span class="c"># Key 41 description: C(NOO)</span>
4265 <span class="c">#</span>
<a name="_Generate322KeySetKey41-"></a>4266 <span class="k">sub </span><span class="m">_Generate322KeySetKey41</span> <span class="s">{</span>
4267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4268   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4269 
4270   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4271   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4272   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4273 
4274   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4275 <span class="s">}</span>
4276 
4277 <span class="c"># Generate 322 keyset key 42 value as 1/0 indicating its presence/absence or</span>
4278 <span class="c"># count of its presence in a molecule.</span>
4279 <span class="c">#</span>
4280 <span class="c"># Key 42 description: C(OOO)</span>
4281 <span class="c">#</span>
<a name="_Generate322KeySetKey42-"></a>4282 <span class="k">sub </span><span class="m">_Generate322KeySetKey42</span> <span class="s">{</span>
4283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4284   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4285 
4286   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;C&#39;</span><span class="sc">;</span>
4287   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4288   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4289 
4290   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4291 <span class="s">}</span>
4292 
4293 <span class="c"># Generate 322 keyset key 43 value as 1/0 indicating its presence/absence or</span>
4294 <span class="c"># count of its presence in a molecule.</span>
4295 <span class="c">#</span>
4296 <span class="c"># Key 43 description: Q(CC)</span>
4297 <span class="c">#</span>
<a name="_Generate322KeySetKey43-"></a>4298 <span class="k">sub </span><span class="m">_Generate322KeySetKey43</span> <span class="s">{</span>
4299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4300   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4301 
4302   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4303   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4304   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4305 
4306   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4307 <span class="s">}</span>
4308 
4309 <span class="c"># Generate 322 keyset key 44 value as 1/0 indicating its presence/absence or</span>
4310 <span class="c"># count of its presence in a molecule.</span>
4311 <span class="c">#</span>
4312 <span class="c"># Key 44 description: Q(CCC)</span>
4313 <span class="c">#</span>
<a name="_Generate322KeySetKey44-"></a>4314 <span class="k">sub </span><span class="m">_Generate322KeySetKey44</span> <span class="s">{</span>
4315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4316   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4317 
4318   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4319   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="s">)</span><span class="sc">;</span>
4320   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4321 
4322   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4323 <span class="s">}</span>
4324 
4325 <span class="c"># Generate 322 keyset key 45 value as 1/0 indicating its presence/absence or</span>
4326 <span class="c"># count of its presence in a molecule.</span>
4327 <span class="c">#</span>
4328 <span class="c"># Key 45 description: Q(CN)</span>
4329 <span class="c">#</span>
<a name="_Generate322KeySetKey45-"></a>4330 <span class="k">sub </span><span class="m">_Generate322KeySetKey45</span> <span class="s">{</span>
4331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4332   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4333 
4334   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4335   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4336   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4337 
4338   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4339 <span class="s">}</span>
4340 
4341 <span class="c"># Generate 322 keyset key 46 value as 1/0 indicating its presence/absence or</span>
4342 <span class="c"># count of its presence in a molecule.</span>
4343 <span class="c">#</span>
4344 <span class="c"># Key 46 description: Q(CCN)</span>
4345 <span class="c">#</span>
<a name="_Generate322KeySetKey46-"></a>4346 <span class="k">sub </span><span class="m">_Generate322KeySetKey46</span> <span class="s">{</span>
4347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4348   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4349 
4350   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4351   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4352   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4353 
4354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4355 <span class="s">}</span>
4356 
4357 <span class="c"># Generate 322 keyset key 47 value as 1/0 indicating its presence/absence or</span>
4358 <span class="c"># count of its presence in a molecule.</span>
4359 <span class="c">#</span>
4360 <span class="c"># Key 47 description: Q(NN)</span>
4361 <span class="c">#</span>
<a name="_Generate322KeySetKey47-"></a>4362 <span class="k">sub </span><span class="m">_Generate322KeySetKey47</span> <span class="s">{</span>
4363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4364   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4365 
4366   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4367   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4368   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4369 
4370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4371 <span class="s">}</span>
4372 
4373 <span class="c"># Generate 322 keyset key 48 value as 1/0 indicating its presence/absence or</span>
4374 <span class="c"># count of its presence in a molecule.</span>
4375 <span class="c">#</span>
4376 <span class="c"># Key 48 description: Q(CNN)</span>
4377 <span class="c">#</span>
<a name="_Generate322KeySetKey48-"></a>4378 <span class="k">sub </span><span class="m">_Generate322KeySetKey48</span> <span class="s">{</span>
4379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4380   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4381 
4382   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4383   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4384   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4385 
4386   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4387 <span class="s">}</span>
4388 
4389 <span class="c"># Generate 322 keyset key 49 value as 1/0 indicating its presence/absence or</span>
4390 <span class="c"># count of its presence in a molecule.</span>
4391 <span class="c">#</span>
4392 <span class="c"># Key 49 description: Q(NNN)</span>
4393 <span class="c">#</span>
<a name="_Generate322KeySetKey49-"></a>4394 <span class="k">sub </span><span class="m">_Generate322KeySetKey49</span> <span class="s">{</span>
4395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4396   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4397 
4398   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4399   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="s">)</span><span class="sc">;</span>
4400   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4401 
4402   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4403 <span class="s">}</span>
4404 
4405 <span class="c"># Generate 322 keyset key 50 value as 1/0 indicating its presence/absence or</span>
4406 <span class="c"># count of its presence in a molecule.</span>
4407 <span class="c">#</span>
4408 <span class="c"># Key 50 description: Q(CO)</span>
4409 <span class="c">#</span>
<a name="_Generate322KeySetKey50-"></a>4410 <span class="k">sub </span><span class="m">_Generate322KeySetKey50</span> <span class="s">{</span>
4411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4412   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4413 
4414   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4415   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4416   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4417 
4418   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4419 <span class="s">}</span>
4420 
4421 <span class="c"># Generate 322 keyset key 51 value as 1/0 indicating its presence/absence or</span>
4422 <span class="c"># count of its presence in a molecule.</span>
4423 <span class="c">#</span>
4424 <span class="c"># Key 51 description: Q(CCO)</span>
4425 <span class="c">#</span>
<a name="_Generate322KeySetKey51-"></a>4426 <span class="k">sub </span><span class="m">_Generate322KeySetKey51</span> <span class="s">{</span>
4427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4428   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4429 
4430   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4431   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4432   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4433 
4434   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4435 <span class="s">}</span>
4436 
4437 <span class="c"># Generate 322 keyset key 52 value as 1/0 indicating its presence/absence or</span>
4438 <span class="c"># count of its presence in a molecule.</span>
4439 <span class="c">#</span>
4440 <span class="c"># Key 52 description: Q(NO)</span>
4441 <span class="c">#</span>
<a name="_Generate322KeySetKey52-"></a>4442 <span class="k">sub </span><span class="m">_Generate322KeySetKey52</span> <span class="s">{</span>
4443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4444   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4445 
4446   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4447   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4448   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4449 
4450   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4451 <span class="s">}</span>
4452 
4453 <span class="c"># Generate 322 keyset key 53 value as 1/0 indicating its presence/absence or</span>
4454 <span class="c"># count of its presence in a molecule.</span>
4455 <span class="c">#</span>
4456 <span class="c"># Key 53 description: Q(CNO)</span>
4457 <span class="c">#</span>
<a name="_Generate322KeySetKey53-"></a>4458 <span class="k">sub </span><span class="m">_Generate322KeySetKey53</span> <span class="s">{</span>
4459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4460   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4461 
4462   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4463   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4464   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4465 
4466   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4467 <span class="s">}</span>
4468 
4469 <span class="c"># Generate 322 keyset key 54 value as 1/0 indicating its presence/absence or</span>
4470 <span class="c"># count of its presence in a molecule.</span>
4471 <span class="c">#</span>
4472 <span class="c"># Key 54 description: Q(NNO)</span>
4473 <span class="c">#</span>
<a name="_Generate322KeySetKey54-"></a>4474 <span class="k">sub </span><span class="m">_Generate322KeySetKey54</span> <span class="s">{</span>
4475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4476   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4477 
4478   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4479   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4480   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4481 
4482   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4483 <span class="s">}</span>
4484 
4485 <span class="c"># Generate 322 keyset key 55 value as 1/0 indicating its presence/absence or</span>
4486 <span class="c"># count of its presence in a molecule.</span>
4487 <span class="c">#</span>
4488 <span class="c"># Key 55 description: Q(OO)</span>
4489 <span class="c">#</span>
<a name="_Generate322KeySetKey55-"></a>4490 <span class="k">sub </span><span class="m">_Generate322KeySetKey55</span> <span class="s">{</span>
4491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4492   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4493 
4494   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4495   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4496   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4497 
4498   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4499 <span class="s">}</span>
4500 
4501 <span class="c"># Generate 322 keyset key 56 value as 1/0 indicating its presence/absence or</span>
4502 <span class="c"># count of its presence in a molecule.</span>
4503 <span class="c">#</span>
4504 <span class="c"># Key 56 description: Q(COO)</span>
4505 <span class="c">#</span>
<a name="_Generate322KeySetKey56-"></a>4506 <span class="k">sub </span><span class="m">_Generate322KeySetKey56</span> <span class="s">{</span>
4507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4508   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4509 
4510   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4511   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4512   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4513 
4514   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4515 <span class="s">}</span>
4516 
4517 <span class="c"># Generate 322 keyset key 57 value as 1/0 indicating its presence/absence or</span>
4518 <span class="c"># count of its presence in a molecule.</span>
4519 <span class="c">#</span>
4520 <span class="c"># Key 57 description: Q(NOO)</span>
4521 <span class="c">#</span>
<a name="_Generate322KeySetKey57-"></a>4522 <span class="k">sub </span><span class="m">_Generate322KeySetKey57</span> <span class="s">{</span>
4523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4524   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4525 
4526   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4527   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4528   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4529 
4530   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4531 <span class="s">}</span>
4532 
4533 <span class="c"># Generate 322 keyset key 58 value as 1/0 indicating its presence/absence or</span>
4534 <span class="c"># count of its presence in a molecule.</span>
4535 <span class="c">#</span>
4536 <span class="c"># Key 58 description: Q(OOO)</span>
4537 <span class="c">#</span>
<a name="_Generate322KeySetKey58-"></a>4538 <span class="k">sub </span><span class="m">_Generate322KeySetKey58</span> <span class="s">{</span>
4539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4540   <span class="k">my</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4541 
4542   <span class="i">$CentralAtomSymbol</span> = <span class="q">&#39;Q&#39;</span><span class="sc">;</span>
4543   <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="s">)</span><span class="sc">;</span>
4544   <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
4545 
4546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectAtomNeighborhoodKeys</span><span class="s">(</span><span class="i">$CentralAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="s">)</span><span class="sc">;</span>
4547 <span class="s">}</span>
4548 
4549 <span class="c"># Generate 322 keyset key 59 value as 1/0 indicating its presence/absence or</span>
4550 <span class="c"># count of its presence in a molecule.</span>
4551 <span class="c">#</span>
4552 <span class="c"># Key 59 description: C-C</span>
4553 <span class="c">#</span>
<a name="_Generate322KeySetKey59-"></a>4554 <span class="k">sub </span><span class="m">_Generate322KeySetKey59</span> <span class="s">{</span>
4555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4557 
4558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4559 <span class="s">}</span>
4560 
4561 <span class="c"># Generate 322 keyset key 60 value as 1/0 indicating its presence/absence or</span>
4562 <span class="c"># count of its presence in a molecule.</span>
4563 <span class="c">#</span>
4564 <span class="c"># Key 60 description: C-N</span>
4565 <span class="c">#</span>
<a name="_Generate322KeySetKey60-"></a>4566 <span class="k">sub </span><span class="m">_Generate322KeySetKey60</span> <span class="s">{</span>
4567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4569 
4570   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4571 <span class="s">}</span>
4572 
4573 <span class="c"># Generate 322 keyset key 61 value as 1/0 indicating its presence/absence or</span>
4574 <span class="c"># count of its presence in a molecule.</span>
4575 <span class="c">#</span>
4576 <span class="c"># Key 61 description: C-O</span>
4577 <span class="c">#</span>
<a name="_Generate322KeySetKey61-"></a>4578 <span class="k">sub </span><span class="m">_Generate322KeySetKey61</span> <span class="s">{</span>
4579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4581 
4582   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4583 <span class="s">}</span>
4584 
4585 <span class="c"># Generate 322 keyset key 62 value as 1/0 indicating its presence/absence or</span>
4586 <span class="c"># count of its presence in a molecule.</span>
4587 <span class="c">#</span>
4588 <span class="c"># Key 62 description: C-S</span>
4589 <span class="c">#</span>
<a name="_Generate322KeySetKey62-"></a>4590 <span class="k">sub </span><span class="m">_Generate322KeySetKey62</span> <span class="s">{</span>
4591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4593 
4594   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4595 <span class="s">}</span>
4596 
4597 <span class="c"># Generate 322 keyset key 63 value as 1/0 indicating its presence/absence or</span>
4598 <span class="c"># count of its presence in a molecule.</span>
4599 <span class="c">#</span>
4600 <span class="c"># Key 63 description: C-Cl</span>
4601 <span class="c">#</span>
<a name="_Generate322KeySetKey63-"></a>4602 <span class="k">sub </span><span class="m">_Generate322KeySetKey63</span> <span class="s">{</span>
4603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4605 
4606   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4607 <span class="s">}</span>
4608 
4609 <span class="c"># Generate 322 keyset key 64 value as 1/0 indicating its presence/absence or</span>
4610 <span class="c"># count of its presence in a molecule.</span>
4611 <span class="c">#</span>
4612 <span class="c"># Key 64 description: C-P</span>
4613 <span class="c">#</span>
<a name="_Generate322KeySetKey64-"></a>4614 <span class="k">sub </span><span class="m">_Generate322KeySetKey64</span> <span class="s">{</span>
4615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4617 
4618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4619 <span class="s">}</span>
4620 
4621 <span class="c"># Generate 322 keyset key 65 value as 1/0 indicating its presence/absence or</span>
4622 <span class="c"># count of its presence in a molecule.</span>
4623 <span class="c">#</span>
4624 <span class="c"># Key 65 description: C-F</span>
4625 <span class="c">#</span>
<a name="_Generate322KeySetKey65-"></a>4626 <span class="k">sub </span><span class="m">_Generate322KeySetKey65</span> <span class="s">{</span>
4627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4629 
4630   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4631 <span class="s">}</span>
4632 
4633 <span class="c"># Generate 322 keyset key 66 value as 1/0 indicating its presence/absence or</span>
4634 <span class="c"># count of its presence in a molecule.</span>
4635 <span class="c">#</span>
4636 <span class="c"># Key 66 description: C-Br</span>
4637 <span class="c">#</span>
<a name="_Generate322KeySetKey66-"></a>4638 <span class="k">sub </span><span class="m">_Generate322KeySetKey66</span> <span class="s">{</span>
4639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4641 
4642   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4643 <span class="s">}</span>
4644 
4645 <span class="c"># Generate 322 keyset key 67 value as 1/0 indicating its presence/absence or</span>
4646 <span class="c"># count of its presence in a molecule.</span>
4647 <span class="c">#</span>
4648 <span class="c"># Key 67 description: C-Si</span>
4649 <span class="c">#</span>
<a name="_Generate322KeySetKey67-"></a>4650 <span class="k">sub </span><span class="m">_Generate322KeySetKey67</span> <span class="s">{</span>
4651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4653 
4654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4655 <span class="s">}</span>
4656 
4657 <span class="c"># Generate 322 keyset key 68 value as 1/0 indicating its presence/absence or</span>
4658 <span class="c"># count of its presence in a molecule.</span>
4659 <span class="c">#</span>
4660 <span class="c"># Key 68 description: C-I</span>
4661 <span class="c">#</span>
<a name="_Generate322KeySetKey68-"></a>4662 <span class="k">sub </span><span class="m">_Generate322KeySetKey68</span> <span class="s">{</span>
4663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4665 
4666   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4667 <span class="s">}</span>
4668 
4669 <span class="c"># Generate 322 keyset key 69 value as 1/0 indicating its presence/absence or</span>
4670 <span class="c"># count of its presence in a molecule.</span>
4671 <span class="c">#</span>
4672 <span class="c"># Key 69 description: C-X</span>
4673 <span class="c">#</span>
<a name="_Generate322KeySetKey69-"></a>4674 <span class="k">sub </span><span class="m">_Generate322KeySetKey69</span> <span class="s">{</span>
4675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4677 
4678   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4679 <span class="s">}</span>
4680 
4681 <span class="c"># Generate 322 keyset key 70 value as 1/0 indicating its presence/absence or</span>
4682 <span class="c"># count of its presence in a molecule.</span>
4683 <span class="c">#</span>
4684 <span class="c"># Key 70 description: N-N</span>
4685 <span class="c">#</span>
<a name="_Generate322KeySetKey70-"></a>4686 <span class="k">sub </span><span class="m">_Generate322KeySetKey70</span> <span class="s">{</span>
4687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4689 
4690   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4691 <span class="s">}</span>
4692 
4693 <span class="c"># Generate 322 keyset key 71 value as 1/0 indicating its presence/absence or</span>
4694 <span class="c"># count of its presence in a molecule.</span>
4695 <span class="c">#</span>
4696 <span class="c"># Key 71 description: N-O</span>
4697 <span class="c">#</span>
<a name="_Generate322KeySetKey71-"></a>4698 <span class="k">sub </span><span class="m">_Generate322KeySetKey71</span> <span class="s">{</span>
4699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4701 
4702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4703 <span class="s">}</span>
4704 
4705 <span class="c"># Generate 322 keyset key 72 value as 1/0 indicating its presence/absence or</span>
4706 <span class="c"># count of its presence in a molecule.</span>
4707 <span class="c">#</span>
4708 <span class="c"># Key 72 description: N-S</span>
4709 <span class="c">#</span>
<a name="_Generate322KeySetKey72-"></a>4710 <span class="k">sub </span><span class="m">_Generate322KeySetKey72</span> <span class="s">{</span>
4711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4713 
4714   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4715 <span class="s">}</span>
4716 
4717 <span class="c"># Generate 322 keyset key 73 value as 1/0 indicating its presence/absence or</span>
4718 <span class="c"># count of its presence in a molecule.</span>
4719 <span class="c">#</span>
4720 <span class="c"># Key 73 description: N-Cl</span>
4721 <span class="c">#</span>
<a name="_Generate322KeySetKey73-"></a>4722 <span class="k">sub </span><span class="m">_Generate322KeySetKey73</span> <span class="s">{</span>
4723   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4724   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4725 
4726   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4727 <span class="s">}</span>
4728 
4729 <span class="c"># Generate 322 keyset key 74 value as 1/0 indicating its presence/absence or</span>
4730 <span class="c"># count of its presence in a molecule.</span>
4731 <span class="c">#</span>
4732 <span class="c"># Key 74 description: N-P</span>
4733 <span class="c">#</span>
<a name="_Generate322KeySetKey74-"></a>4734 <span class="k">sub </span><span class="m">_Generate322KeySetKey74</span> <span class="s">{</span>
4735   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4736   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4737 
4738   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4739 <span class="s">}</span>
4740 
4741 <span class="c"># Generate 322 keyset key 75 value as 1/0 indicating its presence/absence or</span>
4742 <span class="c"># count of its presence in a molecule.</span>
4743 <span class="c">#</span>
4744 <span class="c"># Key 75 description: N-F</span>
4745 <span class="c">#</span>
<a name="_Generate322KeySetKey75-"></a>4746 <span class="k">sub </span><span class="m">_Generate322KeySetKey75</span> <span class="s">{</span>
4747   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4748   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4749 
4750   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4751 <span class="s">}</span>
4752 
4753 <span class="c"># Generate 322 keyset key 76 value as 1/0 indicating its presence/absence or</span>
4754 <span class="c"># count of its presence in a molecule.</span>
4755 <span class="c">#</span>
4756 <span class="c"># Key 76 description: N-Br</span>
4757 <span class="c">#</span>
<a name="_Generate322KeySetKey76-"></a>4758 <span class="k">sub </span><span class="m">_Generate322KeySetKey76</span> <span class="s">{</span>
4759   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4760   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4761 
4762   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4763 <span class="s">}</span>
4764 
4765 <span class="c"># Generate 322 keyset key 77 value as 1/0 indicating its presence/absence or</span>
4766 <span class="c"># count of its presence in a molecule.</span>
4767 <span class="c">#</span>
4768 <span class="c"># Key 77 description: N-Si</span>
4769 <span class="c">#</span>
<a name="_Generate322KeySetKey77-"></a>4770 <span class="k">sub </span><span class="m">_Generate322KeySetKey77</span> <span class="s">{</span>
4771   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4772   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4773 
4774   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4775 <span class="s">}</span>
4776 
4777 <span class="c"># Generate 322 keyset key 78 value as 1/0 indicating its presence/absence or</span>
4778 <span class="c"># count of its presence in a molecule.</span>
4779 <span class="c">#</span>
4780 <span class="c"># Key 78 description: N-I</span>
4781 <span class="c">#</span>
<a name="_Generate322KeySetKey78-"></a>4782 <span class="k">sub </span><span class="m">_Generate322KeySetKey78</span> <span class="s">{</span>
4783   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4784   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4785 
4786   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4787 <span class="s">}</span>
4788 
4789 <span class="c"># Generate 322 keyset key 79 value as 1/0 indicating its presence/absence or</span>
4790 <span class="c"># count of its presence in a molecule.</span>
4791 <span class="c">#</span>
4792 <span class="c"># Key 79 description: N-X</span>
4793 <span class="c">#</span>
<a name="_Generate322KeySetKey79-"></a>4794 <span class="k">sub </span><span class="m">_Generate322KeySetKey79</span> <span class="s">{</span>
4795   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4796   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4797 
4798   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4799 <span class="s">}</span>
4800 
4801 <span class="c"># Generate 322 keyset key 80 value as 1/0 indicating its presence/absence or</span>
4802 <span class="c"># count of its presence in a molecule.</span>
4803 <span class="c">#</span>
4804 <span class="c"># Key 80 description: O-O</span>
4805 <span class="c">#</span>
<a name="_Generate322KeySetKey80-"></a>4806 <span class="k">sub </span><span class="m">_Generate322KeySetKey80</span> <span class="s">{</span>
4807   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4808   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4809 
4810   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4811 <span class="s">}</span>
4812 
4813 <span class="c"># Generate 322 keyset key 81 value as 1/0 indicating its presence/absence or</span>
4814 <span class="c"># count of its presence in a molecule.</span>
4815 <span class="c">#</span>
4816 <span class="c"># Key 81 description: O-S</span>
4817 <span class="c">#</span>
<a name="_Generate322KeySetKey81-"></a>4818 <span class="k">sub </span><span class="m">_Generate322KeySetKey81</span> <span class="s">{</span>
4819   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4820   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4821 
4822   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4823 <span class="s">}</span>
4824 
4825 <span class="c"># Generate 322 keyset key 82 value as 1/0 indicating its presence/absence or</span>
4826 <span class="c"># count of its presence in a molecule.</span>
4827 <span class="c">#</span>
4828 <span class="c"># Key 82 description: O-Cl</span>
4829 <span class="c">#</span>
<a name="_Generate322KeySetKey82-"></a>4830 <span class="k">sub </span><span class="m">_Generate322KeySetKey82</span> <span class="s">{</span>
4831   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4832   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4833 
4834   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4835 <span class="s">}</span>
4836 
4837 <span class="c"># Generate 322 keyset key 83 value as 1/0 indicating its presence/absence or</span>
4838 <span class="c"># count of its presence in a molecule.</span>
4839 <span class="c">#</span>
4840 <span class="c"># Key 83 description: O-P</span>
4841 <span class="c">#</span>
<a name="_Generate322KeySetKey83-"></a>4842 <span class="k">sub </span><span class="m">_Generate322KeySetKey83</span> <span class="s">{</span>
4843   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4844   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4845 
4846   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4847 <span class="s">}</span>
4848 
4849 <span class="c"># Generate 322 keyset key 84 value as 1/0 indicating its presence/absence or</span>
4850 <span class="c"># count of its presence in a molecule.</span>
4851 <span class="c">#</span>
4852 <span class="c"># Key 84 description: O-F</span>
4853 <span class="c">#</span>
<a name="_Generate322KeySetKey84-"></a>4854 <span class="k">sub </span><span class="m">_Generate322KeySetKey84</span> <span class="s">{</span>
4855   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4856   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4857 
4858   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4859 <span class="s">}</span>
4860 
4861 <span class="c"># Generate 322 keyset key 85 value as 1/0 indicating its presence/absence or</span>
4862 <span class="c"># count of its presence in a molecule.</span>
4863 <span class="c">#</span>
4864 <span class="c"># Key 85 description: O-Br</span>
4865 <span class="c">#</span>
<a name="_Generate322KeySetKey85-"></a>4866 <span class="k">sub </span><span class="m">_Generate322KeySetKey85</span> <span class="s">{</span>
4867   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4868   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4869 
4870   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4871 <span class="s">}</span>
4872 
4873 <span class="c"># Generate 322 keyset key 86 value as 1/0 indicating its presence/absence or</span>
4874 <span class="c"># count of its presence in a molecule.</span>
4875 <span class="c">#</span>
4876 <span class="c"># Key 86 description: O-Si</span>
4877 <span class="c">#</span>
<a name="_Generate322KeySetKey86-"></a>4878 <span class="k">sub </span><span class="m">_Generate322KeySetKey86</span> <span class="s">{</span>
4879   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4880   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4881 
4882   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4883 <span class="s">}</span>
4884 
4885 <span class="c"># Generate 322 keyset key 87 value as 1/0 indicating its presence/absence or</span>
4886 <span class="c"># count of its presence in a molecule.</span>
4887 <span class="c">#</span>
4888 <span class="c"># Key 87 description: O-I</span>
4889 <span class="c">#</span>
<a name="_Generate322KeySetKey87-"></a>4890 <span class="k">sub </span><span class="m">_Generate322KeySetKey87</span> <span class="s">{</span>
4891   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4892   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4893 
4894   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4895 <span class="s">}</span>
4896 
4897 <span class="c"># Generate 322 keyset key 88 value as 1/0 indicating its presence/absence or</span>
4898 <span class="c"># count of its presence in a molecule.</span>
4899 <span class="c">#</span>
4900 <span class="c"># Key 88 description: O-X</span>
4901 <span class="c">#</span>
<a name="_Generate322KeySetKey88-"></a>4902 <span class="k">sub </span><span class="m">_Generate322KeySetKey88</span> <span class="s">{</span>
4903   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4904   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4905 
4906   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4907 <span class="s">}</span>
4908 
4909 <span class="c"># Generate 322 keyset key 89 value as 1/0 indicating its presence/absence or</span>
4910 <span class="c"># count of its presence in a molecule.</span>
4911 <span class="c">#</span>
4912 <span class="c"># Key 89 description: S-S</span>
4913 <span class="c">#</span>
<a name="_Generate322KeySetKey89-"></a>4914 <span class="k">sub </span><span class="m">_Generate322KeySetKey89</span> <span class="s">{</span>
4915   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4916   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4917 
4918   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4919 <span class="s">}</span>
4920 
4921 <span class="c"># Generate 322 keyset key 90 value as 1/0 indicating its presence/absence or</span>
4922 <span class="c"># count of its presence in a molecule.</span>
4923 <span class="c">#</span>
4924 <span class="c"># Key 90 description: S-Cl</span>
4925 <span class="c">#</span>
<a name="_Generate322KeySetKey90-"></a>4926 <span class="k">sub </span><span class="m">_Generate322KeySetKey90</span> <span class="s">{</span>
4927   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4928   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4929 
4930   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4931 <span class="s">}</span>
4932 
4933 <span class="c"># Generate 322 keyset key 91 value as 1/0 indicating its presence/absence or</span>
4934 <span class="c"># count of its presence in a molecule.</span>
4935 <span class="c">#</span>
4936 <span class="c"># Key 91 description: S-P</span>
4937 <span class="c">#</span>
<a name="_Generate322KeySetKey91-"></a>4938 <span class="k">sub </span><span class="m">_Generate322KeySetKey91</span> <span class="s">{</span>
4939   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4940   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4941 
4942   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4943 <span class="s">}</span>
4944 
4945 <span class="c"># Generate 322 keyset key 92 value as 1/0 indicating its presence/absence or</span>
4946 <span class="c"># count of its presence in a molecule.</span>
4947 <span class="c">#</span>
4948 <span class="c"># Key 92 description: S-F</span>
4949 <span class="c">#</span>
<a name="_Generate322KeySetKey92-"></a>4950 <span class="k">sub </span><span class="m">_Generate322KeySetKey92</span> <span class="s">{</span>
4951   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4952   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4953 
4954   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4955 <span class="s">}</span>
4956 
4957 <span class="c"># Generate 322 keyset key 93 value as 1/0 indicating its presence/absence or</span>
4958 <span class="c"># count of its presence in a molecule.</span>
4959 <span class="c">#</span>
4960 <span class="c"># Key 93 description: S-Br</span>
4961 <span class="c">#</span>
<a name="_Generate322KeySetKey93-"></a>4962 <span class="k">sub </span><span class="m">_Generate322KeySetKey93</span> <span class="s">{</span>
4963   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4964   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4965 
4966   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4967 <span class="s">}</span>
4968 
4969 <span class="c"># Generate 322 keyset key 94 value as 1/0 indicating its presence/absence or</span>
4970 <span class="c"># count of its presence in a molecule.</span>
4971 <span class="c">#</span>
4972 <span class="c"># Key 94 description: S-Si</span>
4973 <span class="c">#</span>
<a name="_Generate322KeySetKey94-"></a>4974 <span class="k">sub </span><span class="m">_Generate322KeySetKey94</span> <span class="s">{</span>
4975   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4976   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4977 
4978   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4979 <span class="s">}</span>
4980 
4981 <span class="c"># Generate 322 keyset key 95 value as 1/0 indicating its presence/absence or</span>
4982 <span class="c"># count of its presence in a molecule.</span>
4983 <span class="c">#</span>
4984 <span class="c"># Key 95 description: S-I</span>
4985 <span class="c">#</span>
<a name="_Generate322KeySetKey95-"></a>4986 <span class="k">sub </span><span class="m">_Generate322KeySetKey95</span> <span class="s">{</span>
4987   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
4988   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
4989 
4990   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
4991 <span class="s">}</span>
4992 
4993 <span class="c"># Generate 322 keyset key 96 value as 1/0 indicating its presence/absence or</span>
4994 <span class="c"># count of its presence in a molecule.</span>
4995 <span class="c">#</span>
4996 <span class="c"># Key 96 description: S-X</span>
4997 <span class="c">#</span>
<a name="_Generate322KeySetKey96-"></a>4998 <span class="k">sub </span><span class="m">_Generate322KeySetKey96</span> <span class="s">{</span>
4999   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5000   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5001 
5002   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5003 <span class="s">}</span>
5004 
5005 <span class="c"># Generate 322 keyset key 97 value as 1/0 indicating its presence/absence or</span>
5006 <span class="c"># count of its presence in a molecule.</span>
5007 <span class="c">#</span>
5008 <span class="c"># Key 97 description: Cl-Cl</span>
5009 <span class="c">#</span>
<a name="_Generate322KeySetKey97-"></a>5010 <span class="k">sub </span><span class="m">_Generate322KeySetKey97</span> <span class="s">{</span>
5011   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5012   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5013 
5014   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5015 <span class="s">}</span>
5016 
5017 <span class="c"># Generate 322 keyset key 98 value as 1/0 indicating its presence/absence or</span>
5018 <span class="c"># count of its presence in a molecule.</span>
5019 <span class="c">#</span>
5020 <span class="c"># Key 98 description: Cl-P</span>
5021 <span class="c">#</span>
<a name="_Generate322KeySetKey98-"></a>5022 <span class="k">sub </span><span class="m">_Generate322KeySetKey98</span> <span class="s">{</span>
5023   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5024   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5025 
5026   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5027 <span class="s">}</span>
5028 
5029 <span class="c"># Generate 322 keyset key 99 value as 1/0 indicating its presence/absence or</span>
5030 <span class="c"># count of its presence in a molecule.</span>
5031 <span class="c">#</span>
5032 <span class="c"># Key 99 description: Cl-F</span>
5033 <span class="c">#</span>
<a name="_Generate322KeySetKey99-"></a>5034 <span class="k">sub </span><span class="m">_Generate322KeySetKey99</span> <span class="s">{</span>
5035   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5036   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5037 
5038   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5039 <span class="s">}</span>
5040 
5041 <span class="c"># Generate 322 keyset key 100 value as 1/0 indicating its presence/absence or</span>
5042 <span class="c"># count of its presence in a molecule.</span>
5043 <span class="c">#</span>
5044 <span class="c"># Key 100 description: Cl-Br</span>
5045 <span class="c">#</span>
<a name="_Generate322KeySetKey100-"></a>5046 <span class="k">sub </span><span class="m">_Generate322KeySetKey100</span> <span class="s">{</span>
5047   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5048   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5049 
5050   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5051 <span class="s">}</span>
5052 
5053 <span class="c"># Generate 322 keyset key 101 value as 1/0 indicating its presence/absence or</span>
5054 <span class="c"># count of its presence in a molecule.</span>
5055 <span class="c">#</span>
5056 <span class="c"># Key 101 description: Cl-Si</span>
5057 <span class="c">#</span>
<a name="_Generate322KeySetKey101-"></a>5058 <span class="k">sub </span><span class="m">_Generate322KeySetKey101</span> <span class="s">{</span>
5059   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5060   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5061 
5062   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5063 <span class="s">}</span>
5064 
5065 <span class="c"># Generate 322 keyset key 102 value as 1/0 indicating its presence/absence or</span>
5066 <span class="c"># count of its presence in a molecule.</span>
5067 <span class="c">#</span>
5068 <span class="c"># Key 102 description: Cl-I</span>
5069 <span class="c">#</span>
<a name="_Generate322KeySetKey102-"></a>5070 <span class="k">sub </span><span class="m">_Generate322KeySetKey102</span> <span class="s">{</span>
5071   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5072   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5073 
5074   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5075 <span class="s">}</span>
5076 
5077 <span class="c"># Generate 322 keyset key 103 value as 1/0 indicating its presence/absence or</span>
5078 <span class="c"># count of its presence in a molecule.</span>
5079 <span class="c">#</span>
5080 <span class="c"># Key 103 description: Cl-X</span>
5081 <span class="c">#</span>
<a name="_Generate322KeySetKey103-"></a>5082 <span class="k">sub </span><span class="m">_Generate322KeySetKey103</span> <span class="s">{</span>
5083   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5084   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5085 
5086   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5087 <span class="s">}</span>
5088 
5089 <span class="c"># Generate 322 keyset key 104 value as 1/0 indicating its presence/absence or</span>
5090 <span class="c"># count of its presence in a molecule.</span>
5091 <span class="c">#</span>
5092 <span class="c"># Key 104 description: P-P</span>
5093 <span class="c">#</span>
<a name="_Generate322KeySetKey104-"></a>5094 <span class="k">sub </span><span class="m">_Generate322KeySetKey104</span> <span class="s">{</span>
5095   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5096   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5097 
5098   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5099 <span class="s">}</span>
5100 
5101 <span class="c"># Generate 322 keyset key 105 value as 1/0 indicating its presence/absence or</span>
5102 <span class="c"># count of its presence in a molecule.</span>
5103 <span class="c">#</span>
5104 <span class="c"># Key 105 description: P-F</span>
5105 <span class="c">#</span>
<a name="_Generate322KeySetKey105-"></a>5106 <span class="k">sub </span><span class="m">_Generate322KeySetKey105</span> <span class="s">{</span>
5107   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5108   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5109 
5110   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5111 <span class="s">}</span>
5112 
5113 <span class="c"># Generate 322 keyset key 106 value as 1/0 indicating its presence/absence or</span>
5114 <span class="c"># count of its presence in a molecule.</span>
5115 <span class="c">#</span>
5116 <span class="c"># Key 106 description: P-Br</span>
5117 <span class="c">#</span>
<a name="_Generate322KeySetKey106-"></a>5118 <span class="k">sub </span><span class="m">_Generate322KeySetKey106</span> <span class="s">{</span>
5119   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5120   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5121 
5122   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5123 <span class="s">}</span>
5124 
5125 <span class="c"># Generate 322 keyset key 107 value as 1/0 indicating its presence/absence or</span>
5126 <span class="c"># count of its presence in a molecule.</span>
5127 <span class="c">#</span>
5128 <span class="c"># Key 107 description: P-Si</span>
5129 <span class="c">#</span>
<a name="_Generate322KeySetKey107-"></a>5130 <span class="k">sub </span><span class="m">_Generate322KeySetKey107</span> <span class="s">{</span>
5131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5132   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5133 
5134   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5135 <span class="s">}</span>
5136 
5137 <span class="c"># Generate 322 keyset key 108 value as 1/0 indicating its presence/absence or</span>
5138 <span class="c"># count of its presence in a molecule.</span>
5139 <span class="c">#</span>
5140 <span class="c"># Key 108 description: P-I</span>
5141 <span class="c">#</span>
<a name="_Generate322KeySetKey108-"></a>5142 <span class="k">sub </span><span class="m">_Generate322KeySetKey108</span> <span class="s">{</span>
5143   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5144   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5145 
5146   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5147 <span class="s">}</span>
5148 
5149 <span class="c"># Generate 322 keyset key 109 value as 1/0 indicating its presence/absence or</span>
5150 <span class="c"># count of its presence in a molecule.</span>
5151 <span class="c">#</span>
5152 <span class="c"># Key 109 description: P-X</span>
5153 <span class="c">#</span>
<a name="_Generate322KeySetKey109-"></a>5154 <span class="k">sub </span><span class="m">_Generate322KeySetKey109</span> <span class="s">{</span>
5155   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5156   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5157 
5158   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5159 <span class="s">}</span>
5160 
5161 <span class="c"># Generate 322 keyset key 110 value as 1/0 indicating its presence/absence or</span>
5162 <span class="c"># count of its presence in a molecule.</span>
5163 <span class="c">#</span>
5164 <span class="c"># Key 110 description: F-F</span>
5165 <span class="c">#</span>
<a name="_Generate322KeySetKey110-"></a>5166 <span class="k">sub </span><span class="m">_Generate322KeySetKey110</span> <span class="s">{</span>
5167   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5168   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5169 
5170   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5171 <span class="s">}</span>
5172 
5173 <span class="c"># Generate 322 keyset key 111 value as 1/0 indicating its presence/absence or</span>
5174 <span class="c"># count of its presence in a molecule.</span>
5175 <span class="c">#</span>
5176 <span class="c"># Key 111 description: F-Br</span>
5177 <span class="c">#</span>
<a name="_Generate322KeySetKey111-"></a>5178 <span class="k">sub </span><span class="m">_Generate322KeySetKey111</span> <span class="s">{</span>
5179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5180   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5181 
5182   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5183 <span class="s">}</span>
5184 
5185 <span class="c"># Generate 322 keyset key 112 value as 1/0 indicating its presence/absence or</span>
5186 <span class="c"># count of its presence in a molecule.</span>
5187 <span class="c">#</span>
5188 <span class="c"># Key 112 description: F-Si</span>
5189 <span class="c">#</span>
<a name="_Generate322KeySetKey112-"></a>5190 <span class="k">sub </span><span class="m">_Generate322KeySetKey112</span> <span class="s">{</span>
5191   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5192   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5193 
5194   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5195 <span class="s">}</span>
5196 
5197 <span class="c"># Generate 322 keyset key 113 value as 1/0 indicating its presence/absence or</span>
5198 <span class="c"># count of its presence in a molecule.</span>
5199 <span class="c">#</span>
5200 <span class="c"># Key 113 description: F-I</span>
5201 <span class="c">#</span>
<a name="_Generate322KeySetKey113-"></a>5202 <span class="k">sub </span><span class="m">_Generate322KeySetKey113</span> <span class="s">{</span>
5203   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5204   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5205 
5206   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5207 <span class="s">}</span>
5208 
5209 <span class="c"># Generate 322 keyset key 114 value as 1/0 indicating its presence/absence or</span>
5210 <span class="c"># count of its presence in a molecule.</span>
5211 <span class="c">#</span>
5212 <span class="c"># Key 114 description: F-X</span>
5213 <span class="c">#</span>
<a name="_Generate322KeySetKey114-"></a>5214 <span class="k">sub </span><span class="m">_Generate322KeySetKey114</span> <span class="s">{</span>
5215   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5216   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5217 
5218   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5219 <span class="s">}</span>
5220 
5221 <span class="c"># Generate 322 keyset key 115 value as 1/0 indicating its presence/absence or</span>
5222 <span class="c"># count of its presence in a molecule.</span>
5223 <span class="c">#</span>
5224 <span class="c"># Key 115 description: Br-Br</span>
5225 <span class="c">#</span>
<a name="_Generate322KeySetKey115-"></a>5226 <span class="k">sub </span><span class="m">_Generate322KeySetKey115</span> <span class="s">{</span>
5227   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5228   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5229 
5230   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5231 <span class="s">}</span>
5232 
5233 <span class="c"># Generate 322 keyset key 116 value as 1/0 indicating its presence/absence or</span>
5234 <span class="c"># count of its presence in a molecule.</span>
5235 <span class="c">#</span>
5236 <span class="c"># Key 116 description: Br-Si</span>
5237 <span class="c">#</span>
<a name="_Generate322KeySetKey116-"></a>5238 <span class="k">sub </span><span class="m">_Generate322KeySetKey116</span> <span class="s">{</span>
5239   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5240   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5241 
5242   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5243 <span class="s">}</span>
5244 
5245 <span class="c"># Generate 322 keyset key 117 value as 1/0 indicating its presence/absence or</span>
5246 <span class="c"># count of its presence in a molecule.</span>
5247 <span class="c">#</span>
5248 <span class="c"># Key 117 description: Br-I</span>
5249 <span class="c">#</span>
<a name="_Generate322KeySetKey117-"></a>5250 <span class="k">sub </span><span class="m">_Generate322KeySetKey117</span> <span class="s">{</span>
5251   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5252   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5253 
5254   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5255 <span class="s">}</span>
5256 
5257 <span class="c"># Generate 322 keyset key 118 value as 1/0 indicating its presence/absence or</span>
5258 <span class="c"># count of its presence in a molecule.</span>
5259 <span class="c">#</span>
5260 <span class="c"># Key 118 description: Br-X</span>
5261 <span class="c">#</span>
<a name="_Generate322KeySetKey118-"></a>5262 <span class="k">sub </span><span class="m">_Generate322KeySetKey118</span> <span class="s">{</span>
5263   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5264   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5265 
5266   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5267 <span class="s">}</span>
5268 
5269 <span class="c"># Generate 322 keyset key 119 value as 1/0 indicating its presence/absence or</span>
5270 <span class="c"># count of its presence in a molecule.</span>
5271 <span class="c">#</span>
5272 <span class="c"># Key 119 description: Si-Si</span>
5273 <span class="c">#</span>
<a name="_Generate322KeySetKey119-"></a>5274 <span class="k">sub </span><span class="m">_Generate322KeySetKey119</span> <span class="s">{</span>
5275   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5276   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5277 
5278   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5279 <span class="s">}</span>
5280 
5281 <span class="c"># Generate 322 keyset key 120 value as 1/0 indicating its presence/absence or</span>
5282 <span class="c"># count of its presence in a molecule.</span>
5283 <span class="c">#</span>
5284 <span class="c"># Key 120 description: Si-I</span>
5285 <span class="c">#</span>
<a name="_Generate322KeySetKey120-"></a>5286 <span class="k">sub </span><span class="m">_Generate322KeySetKey120</span> <span class="s">{</span>
5287   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5288   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5289 
5290   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5291 <span class="s">}</span>
5292 
5293 <span class="c"># Generate 322 keyset key 121 value as 1/0 indicating its presence/absence or</span>
5294 <span class="c"># count of its presence in a molecule.</span>
5295 <span class="c">#</span>
5296 <span class="c"># Key 121 description: Si-X</span>
5297 <span class="c">#</span>
<a name="_Generate322KeySetKey121-"></a>5298 <span class="k">sub </span><span class="m">_Generate322KeySetKey121</span> <span class="s">{</span>
5299   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5300   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5301 
5302   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5303 <span class="s">}</span>
5304 
5305 <span class="c"># Generate 322 keyset key 122 value as 1/0 indicating its presence/absence or</span>
5306 <span class="c"># count of its presence in a molecule.</span>
5307 <span class="c">#</span>
5308 <span class="c"># Key 122 description: I-I</span>
5309 <span class="c">#</span>
<a name="_Generate322KeySetKey122-"></a>5310 <span class="k">sub </span><span class="m">_Generate322KeySetKey122</span> <span class="s">{</span>
5311   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5312   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5313 
5314   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5315 <span class="s">}</span>
5316 
5317 <span class="c"># Generate 322 keyset key 123 value as 1/0 indicating its presence/absence or</span>
5318 <span class="c"># count of its presence in a molecule.</span>
5319 <span class="c">#</span>
5320 <span class="c"># Key 123 description: I-X</span>
5321 <span class="c">#</span>
<a name="_Generate322KeySetKey123-"></a>5322 <span class="k">sub </span><span class="m">_Generate322KeySetKey123</span> <span class="s">{</span>
5323   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5324   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5325 
5326   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5327 <span class="s">}</span>
5328 
5329 <span class="c"># Generate 322 keyset key 124 value as 1/0 indicating its presence/absence or</span>
5330 <span class="c"># count of its presence in a molecule.</span>
5331 <span class="c">#</span>
5332 <span class="c"># Key 124 description: X-X</span>
5333 <span class="c">#</span>
<a name="_Generate322KeySetKey124-"></a>5334 <span class="k">sub </span><span class="m">_Generate322KeySetKey124</span> <span class="s">{</span>
5335   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5336   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;-&#39;</span><span class="sc">;</span>
5337 
5338   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5339 <span class="s">}</span>
5340 
5341 <span class="c"># Generate 322 keyset key 125 value as 1/0 indicating its presence/absence or</span>
5342 <span class="c"># count of its presence in a molecule.</span>
5343 <span class="c">#</span>
5344 <span class="c"># Key 125 description: C=C</span>
5345 <span class="c">#</span>
<a name="_Generate322KeySetKey125-"></a>5346 <span class="k">sub </span><span class="m">_Generate322KeySetKey125</span> <span class="s">{</span>
5347   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5348   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5349 
5350   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5351 <span class="s">}</span>
5352 
5353 <span class="c"># Generate 322 keyset key 126 value as 1/0 indicating its presence/absence or</span>
5354 <span class="c"># count of its presence in a molecule.</span>
5355 <span class="c">#</span>
5356 <span class="c"># Key 126 description: C=N</span>
5357 <span class="c">#</span>
<a name="_Generate322KeySetKey126-"></a>5358 <span class="k">sub </span><span class="m">_Generate322KeySetKey126</span> <span class="s">{</span>
5359   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5360   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5361 
5362   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5363 <span class="s">}</span>
5364 
5365 <span class="c"># Generate 322 keyset key 127 value as 1/0 indicating its presence/absence or</span>
5366 <span class="c"># count of its presence in a molecule.</span>
5367 <span class="c">#</span>
5368 <span class="c"># Key 127 description: C=O</span>
5369 <span class="c">#</span>
<a name="_Generate322KeySetKey127-"></a>5370 <span class="k">sub </span><span class="m">_Generate322KeySetKey127</span> <span class="s">{</span>
5371   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5372   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5373 
5374   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5375 <span class="s">}</span>
5376 
5377 <span class="c"># Generate 322 keyset key 128 value as 1/0 indicating its presence/absence or</span>
5378 <span class="c"># count of its presence in a molecule.</span>
5379 <span class="c">#</span>
5380 <span class="c"># Key 128 description: C=S</span>
5381 <span class="c">#</span>
<a name="_Generate322KeySetKey128-"></a>5382 <span class="k">sub </span><span class="m">_Generate322KeySetKey128</span> <span class="s">{</span>
5383   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5384   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5385 
5386   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5387 <span class="s">}</span>
5388 
5389 <span class="c"># Generate 322 keyset key 129 value as 1/0 indicating its presence/absence or</span>
5390 <span class="c"># count of its presence in a molecule.</span>
5391 <span class="c">#</span>
5392 <span class="c"># Key 129 description: C=Cl</span>
5393 <span class="c">#</span>
<a name="_Generate322KeySetKey129-"></a>5394 <span class="k">sub </span><span class="m">_Generate322KeySetKey129</span> <span class="s">{</span>
5395   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5396   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5397 
5398   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5399 <span class="s">}</span>
5400 
5401 <span class="c"># Generate 322 keyset key 130 value as 1/0 indicating its presence/absence or</span>
5402 <span class="c"># count of its presence in a molecule.</span>
5403 <span class="c">#</span>
5404 <span class="c"># Key 130 description: C=P</span>
5405 <span class="c">#</span>
<a name="_Generate322KeySetKey130-"></a>5406 <span class="k">sub </span><span class="m">_Generate322KeySetKey130</span> <span class="s">{</span>
5407   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5408   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5409 
5410   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5411 <span class="s">}</span>
5412 
5413 <span class="c"># Generate 322 keyset key 131 value as 1/0 indicating its presence/absence or</span>
5414 <span class="c"># count of its presence in a molecule.</span>
5415 <span class="c">#</span>
5416 <span class="c"># Key 131 description: C=F</span>
5417 <span class="c">#</span>
<a name="_Generate322KeySetKey131-"></a>5418 <span class="k">sub </span><span class="m">_Generate322KeySetKey131</span> <span class="s">{</span>
5419   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5420   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5421 
5422   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5423 <span class="s">}</span>
5424 
5425 <span class="c"># Generate 322 keyset key 132 value as 1/0 indicating its presence/absence or</span>
5426 <span class="c"># count of its presence in a molecule.</span>
5427 <span class="c">#</span>
5428 <span class="c"># Key 132 description: C=Br</span>
5429 <span class="c">#</span>
<a name="_Generate322KeySetKey132-"></a>5430 <span class="k">sub </span><span class="m">_Generate322KeySetKey132</span> <span class="s">{</span>
5431   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5432   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5433 
5434   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5435 <span class="s">}</span>
5436 
5437 <span class="c"># Generate 322 keyset key 133 value as 1/0 indicating its presence/absence or</span>
5438 <span class="c"># count of its presence in a molecule.</span>
5439 <span class="c">#</span>
5440 <span class="c"># Key 133 description: C=Si</span>
5441 <span class="c">#</span>
<a name="_Generate322KeySetKey133-"></a>5442 <span class="k">sub </span><span class="m">_Generate322KeySetKey133</span> <span class="s">{</span>
5443   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5444   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5445 
5446   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5447 <span class="s">}</span>
5448 
5449 <span class="c"># Generate 322 keyset key 134 value as 1/0 indicating its presence/absence or</span>
5450 <span class="c"># count of its presence in a molecule.</span>
5451 <span class="c">#</span>
5452 <span class="c"># Key 134 description: C=I</span>
5453 <span class="c">#</span>
<a name="_Generate322KeySetKey134-"></a>5454 <span class="k">sub </span><span class="m">_Generate322KeySetKey134</span> <span class="s">{</span>
5455   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5456   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5457 
5458   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5459 <span class="s">}</span>
5460 
5461 <span class="c"># Generate 322 keyset key 135 value as 1/0 indicating its presence/absence or</span>
5462 <span class="c"># count of its presence in a molecule.</span>
5463 <span class="c">#</span>
5464 <span class="c"># Key 135 description: C=X</span>
5465 <span class="c">#</span>
<a name="_Generate322KeySetKey135-"></a>5466 <span class="k">sub </span><span class="m">_Generate322KeySetKey135</span> <span class="s">{</span>
5467   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5468   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5469 
5470   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5471 <span class="s">}</span>
5472 
5473 <span class="c"># Generate 322 keyset key 136 value as 1/0 indicating its presence/absence or</span>
5474 <span class="c"># count of its presence in a molecule.</span>
5475 <span class="c">#</span>
5476 <span class="c"># Key 136 description: N=N</span>
5477 <span class="c">#</span>
<a name="_Generate322KeySetKey136-"></a>5478 <span class="k">sub </span><span class="m">_Generate322KeySetKey136</span> <span class="s">{</span>
5479   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5480   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5481 
5482   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5483 <span class="s">}</span>
5484 
5485 <span class="c"># Generate 322 keyset key 137 value as 1/0 indicating its presence/absence or</span>
5486 <span class="c"># count of its presence in a molecule.</span>
5487 <span class="c">#</span>
5488 <span class="c"># Key 137 description: N=O</span>
5489 <span class="c">#</span>
<a name="_Generate322KeySetKey137-"></a>5490 <span class="k">sub </span><span class="m">_Generate322KeySetKey137</span> <span class="s">{</span>
5491   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5492   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5493 
5494   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5495 <span class="s">}</span>
5496 
5497 <span class="c"># Generate 322 keyset key 138 value as 1/0 indicating its presence/absence or</span>
5498 <span class="c"># count of its presence in a molecule.</span>
5499 <span class="c">#</span>
5500 <span class="c"># Key 138 description: N=S</span>
5501 <span class="c">#</span>
<a name="_Generate322KeySetKey138-"></a>5502 <span class="k">sub </span><span class="m">_Generate322KeySetKey138</span> <span class="s">{</span>
5503   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5504   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5505 
5506   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5507 <span class="s">}</span>
5508 
5509 <span class="c"># Generate 322 keyset key 139 value as 1/0 indicating its presence/absence or</span>
5510 <span class="c"># count of its presence in a molecule.</span>
5511 <span class="c">#</span>
5512 <span class="c"># Key 139 description: N=Cl</span>
5513 <span class="c">#</span>
<a name="_Generate322KeySetKey139-"></a>5514 <span class="k">sub </span><span class="m">_Generate322KeySetKey139</span> <span class="s">{</span>
5515   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5516   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5517 
5518   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5519 <span class="s">}</span>
5520 
5521 <span class="c"># Generate 322 keyset key 140 value as 1/0 indicating its presence/absence or</span>
5522 <span class="c"># count of its presence in a molecule.</span>
5523 <span class="c">#</span>
5524 <span class="c"># Key 140 description: N=P</span>
5525 <span class="c">#</span>
<a name="_Generate322KeySetKey140-"></a>5526 <span class="k">sub </span><span class="m">_Generate322KeySetKey140</span> <span class="s">{</span>
5527   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5528   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5529 
5530   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5531 <span class="s">}</span>
5532 
5533 <span class="c"># Generate 322 keyset key 141 value as 1/0 indicating its presence/absence or</span>
5534 <span class="c"># count of its presence in a molecule.</span>
5535 <span class="c">#</span>
5536 <span class="c"># Key 141 description: N=F</span>
5537 <span class="c">#</span>
<a name="_Generate322KeySetKey141-"></a>5538 <span class="k">sub </span><span class="m">_Generate322KeySetKey141</span> <span class="s">{</span>
5539   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5540   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5541 
5542   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5543 <span class="s">}</span>
5544 
5545 <span class="c"># Generate 322 keyset key 142 value as 1/0 indicating its presence/absence or</span>
5546 <span class="c"># count of its presence in a molecule.</span>
5547 <span class="c">#</span>
5548 <span class="c"># Key 142 description: N=Br</span>
5549 <span class="c">#</span>
<a name="_Generate322KeySetKey142-"></a>5550 <span class="k">sub </span><span class="m">_Generate322KeySetKey142</span> <span class="s">{</span>
5551   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5552   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5553 
5554   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5555 <span class="s">}</span>
5556 
5557 <span class="c"># Generate 322 keyset key 143 value as 1/0 indicating its presence/absence or</span>
5558 <span class="c"># count of its presence in a molecule.</span>
5559 <span class="c">#</span>
5560 <span class="c"># Key 143 description: N=Si</span>
5561 <span class="c">#</span>
<a name="_Generate322KeySetKey143-"></a>5562 <span class="k">sub </span><span class="m">_Generate322KeySetKey143</span> <span class="s">{</span>
5563   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5564   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5565 
5566   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5567 <span class="s">}</span>
5568 
5569 <span class="c"># Generate 322 keyset key 144 value as 1/0 indicating its presence/absence or</span>
5570 <span class="c"># count of its presence in a molecule.</span>
5571 <span class="c">#</span>
5572 <span class="c"># Key 144 description: N=I</span>
5573 <span class="c">#</span>
<a name="_Generate322KeySetKey144-"></a>5574 <span class="k">sub </span><span class="m">_Generate322KeySetKey144</span> <span class="s">{</span>
5575   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5576   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5577 
5578   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5579 <span class="s">}</span>
5580 
5581 <span class="c"># Generate 322 keyset key 145 value as 1/0 indicating its presence/absence or</span>
5582 <span class="c"># count of its presence in a molecule.</span>
5583 <span class="c">#</span>
5584 <span class="c"># Key 145 description: N=X</span>
5585 <span class="c">#</span>
<a name="_Generate322KeySetKey145-"></a>5586 <span class="k">sub </span><span class="m">_Generate322KeySetKey145</span> <span class="s">{</span>
5587   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5588   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5589 
5590   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5591 <span class="s">}</span>
5592 
5593 <span class="c"># Generate 322 keyset key 146 value as 1/0 indicating its presence/absence or</span>
5594 <span class="c"># count of its presence in a molecule.</span>
5595 <span class="c">#</span>
5596 <span class="c"># Key 146 description: O=O</span>
5597 <span class="c">#</span>
<a name="_Generate322KeySetKey146-"></a>5598 <span class="k">sub </span><span class="m">_Generate322KeySetKey146</span> <span class="s">{</span>
5599   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5600   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5601 
5602   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5603 <span class="s">}</span>
5604 
5605 <span class="c"># Generate 322 keyset key 147 value as 1/0 indicating its presence/absence or</span>
5606 <span class="c"># count of its presence in a molecule.</span>
5607 <span class="c">#</span>
5608 <span class="c"># Key 147 description: O=S</span>
5609 <span class="c">#</span>
<a name="_Generate322KeySetKey147-"></a>5610 <span class="k">sub </span><span class="m">_Generate322KeySetKey147</span> <span class="s">{</span>
5611   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5612   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5613 
5614   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5615 <span class="s">}</span>
5616 
5617 <span class="c"># Generate 322 keyset key 148 value as 1/0 indicating its presence/absence or</span>
5618 <span class="c"># count of its presence in a molecule.</span>
5619 <span class="c">#</span>
5620 <span class="c"># Key 148 description: O=Cl</span>
5621 <span class="c">#</span>
<a name="_Generate322KeySetKey148-"></a>5622 <span class="k">sub </span><span class="m">_Generate322KeySetKey148</span> <span class="s">{</span>
5623   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5624   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5625 
5626   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5627 <span class="s">}</span>
5628 
5629 <span class="c"># Generate 322 keyset key 149 value as 1/0 indicating its presence/absence or</span>
5630 <span class="c"># count of its presence in a molecule.</span>
5631 <span class="c">#</span>
5632 <span class="c"># Key 149 description: O=P</span>
5633 <span class="c">#</span>
<a name="_Generate322KeySetKey149-"></a>5634 <span class="k">sub </span><span class="m">_Generate322KeySetKey149</span> <span class="s">{</span>
5635   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5636   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5637 
5638   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5639 <span class="s">}</span>
5640 
5641 <span class="c"># Generate 322 keyset key 150 value as 1/0 indicating its presence/absence or</span>
5642 <span class="c"># count of its presence in a molecule.</span>
5643 <span class="c">#</span>
5644 <span class="c"># Key 150 description: O=F</span>
5645 <span class="c">#</span>
<a name="_Generate322KeySetKey150-"></a>5646 <span class="k">sub </span><span class="m">_Generate322KeySetKey150</span> <span class="s">{</span>
5647   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5648   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5649 
5650   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5651 <span class="s">}</span>
5652 
5653 <span class="c"># Generate 322 keyset key 151 value as 1/0 indicating its presence/absence or</span>
5654 <span class="c"># count of its presence in a molecule.</span>
5655 <span class="c">#</span>
5656 <span class="c"># Key 151 description: O=Br</span>
5657 <span class="c">#</span>
<a name="_Generate322KeySetKey151-"></a>5658 <span class="k">sub </span><span class="m">_Generate322KeySetKey151</span> <span class="s">{</span>
5659   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5660   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5661 
5662   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5663 <span class="s">}</span>
5664 
5665 <span class="c"># Generate 322 keyset key 152 value as 1/0 indicating its presence/absence or</span>
5666 <span class="c"># count of its presence in a molecule.</span>
5667 <span class="c">#</span>
5668 <span class="c"># Key 152 description: O=Si</span>
5669 <span class="c">#</span>
<a name="_Generate322KeySetKey152-"></a>5670 <span class="k">sub </span><span class="m">_Generate322KeySetKey152</span> <span class="s">{</span>
5671   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5672   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5673 
5674   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5675 <span class="s">}</span>
5676 
5677 <span class="c"># Generate 322 keyset key 153 value as 1/0 indicating its presence/absence or</span>
5678 <span class="c"># count of its presence in a molecule.</span>
5679 <span class="c">#</span>
5680 <span class="c"># Key 153 description: O=I</span>
5681 <span class="c">#</span>
<a name="_Generate322KeySetKey153-"></a>5682 <span class="k">sub </span><span class="m">_Generate322KeySetKey153</span> <span class="s">{</span>
5683   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5684   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5685 
5686   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5687 <span class="s">}</span>
5688 
5689 <span class="c"># Generate 322 keyset key 154 value as 1/0 indicating its presence/absence or</span>
5690 <span class="c"># count of its presence in a molecule.</span>
5691 <span class="c">#</span>
5692 <span class="c"># Key 154 description: O=X</span>
5693 <span class="c">#</span>
<a name="_Generate322KeySetKey154-"></a>5694 <span class="k">sub </span><span class="m">_Generate322KeySetKey154</span> <span class="s">{</span>
5695   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5696   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5697 
5698   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5699 <span class="s">}</span>
5700 
5701 <span class="c"># Generate 322 keyset key 155 value as 1/0 indicating its presence/absence or</span>
5702 <span class="c"># count of its presence in a molecule.</span>
5703 <span class="c">#</span>
5704 <span class="c"># Key 155 description: S=S</span>
5705 <span class="c">#</span>
<a name="_Generate322KeySetKey155-"></a>5706 <span class="k">sub </span><span class="m">_Generate322KeySetKey155</span> <span class="s">{</span>
5707   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5708   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5709 
5710   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5711 <span class="s">}</span>
5712 
5713 <span class="c"># Generate 322 keyset key 156 value as 1/0 indicating its presence/absence or</span>
5714 <span class="c"># count of its presence in a molecule.</span>
5715 <span class="c">#</span>
5716 <span class="c"># Key 156 description: S=Cl</span>
5717 <span class="c">#</span>
<a name="_Generate322KeySetKey156-"></a>5718 <span class="k">sub </span><span class="m">_Generate322KeySetKey156</span> <span class="s">{</span>
5719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5720   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5721 
5722   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5723 <span class="s">}</span>
5724 
5725 <span class="c"># Generate 322 keyset key 157 value as 1/0 indicating its presence/absence or</span>
5726 <span class="c"># count of its presence in a molecule.</span>
5727 <span class="c">#</span>
5728 <span class="c"># Key 157 description: S=P</span>
5729 <span class="c">#</span>
<a name="_Generate322KeySetKey157-"></a>5730 <span class="k">sub </span><span class="m">_Generate322KeySetKey157</span> <span class="s">{</span>
5731   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5732   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5733 
5734   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5735 <span class="s">}</span>
5736 
5737 <span class="c"># Generate 322 keyset key 158 value as 1/0 indicating its presence/absence or</span>
5738 <span class="c"># count of its presence in a molecule.</span>
5739 <span class="c">#</span>
5740 <span class="c"># Key 158 description: S=F</span>
5741 <span class="c">#</span>
<a name="_Generate322KeySetKey158-"></a>5742 <span class="k">sub </span><span class="m">_Generate322KeySetKey158</span> <span class="s">{</span>
5743   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5744   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5745 
5746   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5747 <span class="s">}</span>
5748 
5749 <span class="c"># Generate 322 keyset key 159 value as 1/0 indicating its presence/absence or</span>
5750 <span class="c"># count of its presence in a molecule.</span>
5751 <span class="c">#</span>
5752 <span class="c"># Key 159 description: S=Br</span>
5753 <span class="c">#</span>
<a name="_Generate322KeySetKey159-"></a>5754 <span class="k">sub </span><span class="m">_Generate322KeySetKey159</span> <span class="s">{</span>
5755   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5756   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5757 
5758   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5759 <span class="s">}</span>
5760 
5761 <span class="c"># Generate 322 keyset key 160 value as 1/0 indicating its presence/absence or</span>
5762 <span class="c"># count of its presence in a molecule.</span>
5763 <span class="c">#</span>
5764 <span class="c"># Key 160 description: S=Si</span>
5765 <span class="c">#</span>
<a name="_Generate322KeySetKey160-"></a>5766 <span class="k">sub </span><span class="m">_Generate322KeySetKey160</span> <span class="s">{</span>
5767   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5768   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5769 
5770   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5771 <span class="s">}</span>
5772 
5773 <span class="c"># Generate 322 keyset key 161 value as 1/0 indicating its presence/absence or</span>
5774 <span class="c"># count of its presence in a molecule.</span>
5775 <span class="c">#</span>
5776 <span class="c"># Key 161 description: S=I</span>
5777 <span class="c">#</span>
<a name="_Generate322KeySetKey161-"></a>5778 <span class="k">sub </span><span class="m">_Generate322KeySetKey161</span> <span class="s">{</span>
5779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5780   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5781 
5782   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5783 <span class="s">}</span>
5784 
5785 <span class="c"># Generate 322 keyset key 162 value as 1/0 indicating its presence/absence or</span>
5786 <span class="c"># count of its presence in a molecule.</span>
5787 <span class="c">#</span>
5788 <span class="c"># Key 162 description: S=X</span>
5789 <span class="c">#</span>
<a name="_Generate322KeySetKey162-"></a>5790 <span class="k">sub </span><span class="m">_Generate322KeySetKey162</span> <span class="s">{</span>
5791   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5792   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5793 
5794   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5795 <span class="s">}</span>
5796 
5797 <span class="c"># Generate 322 keyset key 163 value as 1/0 indicating its presence/absence or</span>
5798 <span class="c"># count of its presence in a molecule.</span>
5799 <span class="c">#</span>
5800 <span class="c"># Key 163 description: Cl=Cl</span>
5801 <span class="c">#</span>
<a name="_Generate322KeySetKey163-"></a>5802 <span class="k">sub </span><span class="m">_Generate322KeySetKey163</span> <span class="s">{</span>
5803   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5804   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5805 
5806   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5807 <span class="s">}</span>
5808 
5809 <span class="c"># Generate 322 keyset key 164 value as 1/0 indicating its presence/absence or</span>
5810 <span class="c"># count of its presence in a molecule.</span>
5811 <span class="c">#</span>
5812 <span class="c"># Key 164 description: Cl=P</span>
5813 <span class="c">#</span>
<a name="_Generate322KeySetKey164-"></a>5814 <span class="k">sub </span><span class="m">_Generate322KeySetKey164</span> <span class="s">{</span>
5815   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5816   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5817 
5818   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5819 <span class="s">}</span>
5820 
5821 <span class="c"># Generate 322 keyset key 165 value as 1/0 indicating its presence/absence or</span>
5822 <span class="c"># count of its presence in a molecule.</span>
5823 <span class="c">#</span>
5824 <span class="c"># Key 165 description: Cl=F</span>
5825 <span class="c">#</span>
<a name="_Generate322KeySetKey165-"></a>5826 <span class="k">sub </span><span class="m">_Generate322KeySetKey165</span> <span class="s">{</span>
5827   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5828   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5829 
5830   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5831 <span class="s">}</span>
5832 
5833 <span class="c"># Generate 322 keyset key 166 value as 1/0 indicating its presence/absence or</span>
5834 <span class="c"># count of its presence in a molecule.</span>
5835 <span class="c">#</span>
5836 <span class="c"># Key 166 description: Cl=Br</span>
5837 <span class="c">#</span>
<a name="_Generate322KeySetKey166-"></a>5838 <span class="k">sub </span><span class="m">_Generate322KeySetKey166</span> <span class="s">{</span>
5839   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5840   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5841 
5842   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5843 <span class="s">}</span>
5844 
5845 <span class="c"># Generate 322 keyset key 167 value as 1/0 indicating its presence/absence or</span>
5846 <span class="c"># count of its presence in a molecule.</span>
5847 <span class="c">#</span>
5848 <span class="c"># Key 167 description: Cl=Si</span>
5849 <span class="c">#</span>
<a name="_Generate322KeySetKey167-"></a>5850 <span class="k">sub </span><span class="m">_Generate322KeySetKey167</span> <span class="s">{</span>
5851   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5852   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5853 
5854   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5855 <span class="s">}</span>
5856 
5857 <span class="c"># Generate 322 keyset key 168 value as 1/0 indicating its presence/absence or</span>
5858 <span class="c"># count of its presence in a molecule.</span>
5859 <span class="c">#</span>
5860 <span class="c"># Key 168 description: Cl=I</span>
5861 <span class="c">#</span>
<a name="_Generate322KeySetKey168-"></a>5862 <span class="k">sub </span><span class="m">_Generate322KeySetKey168</span> <span class="s">{</span>
5863   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5864   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5865 
5866   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5867 <span class="s">}</span>
5868 
5869 <span class="c"># Generate 322 keyset key 169 value as 1/0 indicating its presence/absence or</span>
5870 <span class="c"># count of its presence in a molecule.</span>
5871 <span class="c">#</span>
5872 <span class="c"># Key 169 description: Cl=X</span>
5873 <span class="c">#</span>
<a name="_Generate322KeySetKey169-"></a>5874 <span class="k">sub </span><span class="m">_Generate322KeySetKey169</span> <span class="s">{</span>
5875   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5876   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5877 
5878   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5879 <span class="s">}</span>
5880 
5881 <span class="c"># Generate 322 keyset key 170 value as 1/0 indicating its presence/absence or</span>
5882 <span class="c"># count of its presence in a molecule.</span>
5883 <span class="c">#</span>
5884 <span class="c"># Key 170 description: P=P</span>
5885 <span class="c">#</span>
<a name="_Generate322KeySetKey170-"></a>5886 <span class="k">sub </span><span class="m">_Generate322KeySetKey170</span> <span class="s">{</span>
5887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5888   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5889 
5890   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5891 <span class="s">}</span>
5892 
5893 <span class="c"># Generate 322 keyset key 171 value as 1/0 indicating its presence/absence or</span>
5894 <span class="c"># count of its presence in a molecule.</span>
5895 <span class="c">#</span>
5896 <span class="c"># Key 171 description: P=F</span>
5897 <span class="c">#</span>
<a name="_Generate322KeySetKey171-"></a>5898 <span class="k">sub </span><span class="m">_Generate322KeySetKey171</span> <span class="s">{</span>
5899   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5900   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5901 
5902   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5903 <span class="s">}</span>
5904 
5905 <span class="c"># Generate 322 keyset key 172 value as 1/0 indicating its presence/absence or</span>
5906 <span class="c"># count of its presence in a molecule.</span>
5907 <span class="c">#</span>
5908 <span class="c"># Key 172 description: P=Br</span>
5909 <span class="c">#</span>
<a name="_Generate322KeySetKey172-"></a>5910 <span class="k">sub </span><span class="m">_Generate322KeySetKey172</span> <span class="s">{</span>
5911   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5912   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5913 
5914   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5915 <span class="s">}</span>
5916 
5917 <span class="c"># Generate 322 keyset key 173 value as 1/0 indicating its presence/absence or</span>
5918 <span class="c"># count of its presence in a molecule.</span>
5919 <span class="c">#</span>
5920 <span class="c"># Key 173 description: P=Si</span>
5921 <span class="c">#</span>
<a name="_Generate322KeySetKey173-"></a>5922 <span class="k">sub </span><span class="m">_Generate322KeySetKey173</span> <span class="s">{</span>
5923   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5924   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5925 
5926   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5927 <span class="s">}</span>
5928 
5929 <span class="c"># Generate 322 keyset key 174 value as 1/0 indicating its presence/absence or</span>
5930 <span class="c"># count of its presence in a molecule.</span>
5931 <span class="c">#</span>
5932 <span class="c"># Key 174 description: P=I</span>
5933 <span class="c">#</span>
<a name="_Generate322KeySetKey174-"></a>5934 <span class="k">sub </span><span class="m">_Generate322KeySetKey174</span> <span class="s">{</span>
5935   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5936   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5937 
5938   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5939 <span class="s">}</span>
5940 
5941 <span class="c"># Generate 322 keyset key 175 value as 1/0 indicating its presence/absence or</span>
5942 <span class="c"># count of its presence in a molecule.</span>
5943 <span class="c">#</span>
5944 <span class="c"># Key 175 description: P=X</span>
5945 <span class="c">#</span>
<a name="_Generate322KeySetKey175-"></a>5946 <span class="k">sub </span><span class="m">_Generate322KeySetKey175</span> <span class="s">{</span>
5947   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5948   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5949 
5950   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5951 <span class="s">}</span>
5952 
5953 <span class="c"># Generate 322 keyset key 176 value as 1/0 indicating its presence/absence or</span>
5954 <span class="c"># count of its presence in a molecule.</span>
5955 <span class="c">#</span>
5956 <span class="c"># Key 176 description: F=F</span>
5957 <span class="c">#</span>
<a name="_Generate322KeySetKey176-"></a>5958 <span class="k">sub </span><span class="m">_Generate322KeySetKey176</span> <span class="s">{</span>
5959   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5960   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5961 
5962   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5963 <span class="s">}</span>
5964 
5965 <span class="c"># Generate 322 keyset key 177 value as 1/0 indicating its presence/absence or</span>
5966 <span class="c"># count of its presence in a molecule.</span>
5967 <span class="c">#</span>
5968 <span class="c"># Key 177 description: F=Br</span>
5969 <span class="c">#</span>
<a name="_Generate322KeySetKey177-"></a>5970 <span class="k">sub </span><span class="m">_Generate322KeySetKey177</span> <span class="s">{</span>
5971   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5972   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5973 
5974   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5975 <span class="s">}</span>
5976 
5977 <span class="c"># Generate 322 keyset key 178 value as 1/0 indicating its presence/absence or</span>
5978 <span class="c"># count of its presence in a molecule.</span>
5979 <span class="c">#</span>
5980 <span class="c"># Key 178 description: F=Si</span>
5981 <span class="c">#</span>
<a name="_Generate322KeySetKey178-"></a>5982 <span class="k">sub </span><span class="m">_Generate322KeySetKey178</span> <span class="s">{</span>
5983   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5984   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5985 
5986   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5987 <span class="s">}</span>
5988 
5989 <span class="c"># Generate 322 keyset key 179 value as 1/0 indicating its presence/absence or</span>
5990 <span class="c"># count of its presence in a molecule.</span>
5991 <span class="c">#</span>
5992 <span class="c"># Key 179 description: F=I</span>
5993 <span class="c">#</span>
<a name="_Generate322KeySetKey179-"></a>5994 <span class="k">sub </span><span class="m">_Generate322KeySetKey179</span> <span class="s">{</span>
5995   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
5996   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
5997 
5998   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
5999 <span class="s">}</span>
6000 
6001 <span class="c"># Generate 322 keyset key 180 value as 1/0 indicating its presence/absence or</span>
6002 <span class="c"># count of its presence in a molecule.</span>
6003 <span class="c">#</span>
6004 <span class="c"># Key 180 description: F=X</span>
6005 <span class="c">#</span>
<a name="_Generate322KeySetKey180-"></a>6006 <span class="k">sub </span><span class="m">_Generate322KeySetKey180</span> <span class="s">{</span>
6007   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6008   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6009 
6010   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6011 <span class="s">}</span>
6012 
6013 <span class="c"># Generate 322 keyset key 181 value as 1/0 indicating its presence/absence or</span>
6014 <span class="c"># count of its presence in a molecule.</span>
6015 <span class="c">#</span>
6016 <span class="c"># Key 181 description: Br=Br</span>
6017 <span class="c">#</span>
<a name="_Generate322KeySetKey181-"></a>6018 <span class="k">sub </span><span class="m">_Generate322KeySetKey181</span> <span class="s">{</span>
6019   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6020   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6021 
6022   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6023 <span class="s">}</span>
6024 
6025 <span class="c"># Generate 322 keyset key 182 value as 1/0 indicating its presence/absence or</span>
6026 <span class="c"># count of its presence in a molecule.</span>
6027 <span class="c">#</span>
6028 <span class="c"># Key 182 description: Br=Si</span>
6029 <span class="c">#</span>
<a name="_Generate322KeySetKey182-"></a>6030 <span class="k">sub </span><span class="m">_Generate322KeySetKey182</span> <span class="s">{</span>
6031   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6032   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6033 
6034   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6035 <span class="s">}</span>
6036 
6037 <span class="c"># Generate 322 keyset key 183 value as 1/0 indicating its presence/absence or</span>
6038 <span class="c"># count of its presence in a molecule.</span>
6039 <span class="c">#</span>
6040 <span class="c"># Key 183 description: Br=I</span>
6041 <span class="c">#</span>
<a name="_Generate322KeySetKey183-"></a>6042 <span class="k">sub </span><span class="m">_Generate322KeySetKey183</span> <span class="s">{</span>
6043   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6044   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6045 
6046   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6047 <span class="s">}</span>
6048 
6049 <span class="c"># Generate 322 keyset key 184 value as 1/0 indicating its presence/absence or</span>
6050 <span class="c"># count of its presence in a molecule.</span>
6051 <span class="c">#</span>
6052 <span class="c"># Key 184 description: Br=X</span>
6053 <span class="c">#</span>
<a name="_Generate322KeySetKey184-"></a>6054 <span class="k">sub </span><span class="m">_Generate322KeySetKey184</span> <span class="s">{</span>
6055   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6056   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6057 
6058   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6059 <span class="s">}</span>
6060 
6061 <span class="c"># Generate 322 keyset key 185 value as 1/0 indicating its presence/absence or</span>
6062 <span class="c"># count of its presence in a molecule.</span>
6063 <span class="c">#</span>
6064 <span class="c"># Key 185 description: Si=Si</span>
6065 <span class="c">#</span>
<a name="_Generate322KeySetKey185-"></a>6066 <span class="k">sub </span><span class="m">_Generate322KeySetKey185</span> <span class="s">{</span>
6067   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6068   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6069 
6070   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6071 <span class="s">}</span>
6072 
6073 <span class="c"># Generate 322 keyset key 186 value as 1/0 indicating its presence/absence or</span>
6074 <span class="c"># count of its presence in a molecule.</span>
6075 <span class="c">#</span>
6076 <span class="c"># Key 186 description: Si=I</span>
6077 <span class="c">#</span>
<a name="_Generate322KeySetKey186-"></a>6078 <span class="k">sub </span><span class="m">_Generate322KeySetKey186</span> <span class="s">{</span>
6079   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6080   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6081 
6082   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6083 <span class="s">}</span>
6084 
6085 <span class="c"># Generate 322 keyset key 187 value as 1/0 indicating its presence/absence or</span>
6086 <span class="c"># count of its presence in a molecule.</span>
6087 <span class="c">#</span>
6088 <span class="c"># Key 187 description: Si=X</span>
6089 <span class="c">#</span>
<a name="_Generate322KeySetKey187-"></a>6090 <span class="k">sub </span><span class="m">_Generate322KeySetKey187</span> <span class="s">{</span>
6091   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6092   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6093 
6094   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6095 <span class="s">}</span>
6096 
6097 <span class="c"># Generate 322 keyset key 188 value as 1/0 indicating its presence/absence or</span>
6098 <span class="c"># count of its presence in a molecule.</span>
6099 <span class="c">#</span>
6100 <span class="c"># Key 188 description: I=I</span>
6101 <span class="c">#</span>
<a name="_Generate322KeySetKey188-"></a>6102 <span class="k">sub </span><span class="m">_Generate322KeySetKey188</span> <span class="s">{</span>
6103   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6104   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6105 
6106   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6107 <span class="s">}</span>
6108 
6109 <span class="c"># Generate 322 keyset key 189 value as 1/0 indicating its presence/absence or</span>
6110 <span class="c"># count of its presence in a molecule.</span>
6111 <span class="c">#</span>
6112 <span class="c"># Key 189 description: I=X</span>
6113 <span class="c">#</span>
<a name="_Generate322KeySetKey189-"></a>6114 <span class="k">sub </span><span class="m">_Generate322KeySetKey189</span> <span class="s">{</span>
6115   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6116   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6117 
6118   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6119 <span class="s">}</span>
6120 
6121 <span class="c"># Generate 322 keyset key 190 value as 1/0 indicating its presence/absence or</span>
6122 <span class="c"># count of its presence in a molecule.</span>
6123 <span class="c">#</span>
6124 <span class="c"># Key 190 description: X=X</span>
6125 <span class="c">#</span>
<a name="_Generate322KeySetKey190-"></a>6126 <span class="k">sub </span><span class="m">_Generate322KeySetKey190</span> <span class="s">{</span>
6127   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6128   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;=&#39;</span><span class="sc">;</span>
6129 
6130   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6131 <span class="s">}</span>
6132 
6133 <span class="c"># Generate 322 keyset key 191 value as 1/0 indicating its presence/absence or</span>
6134 <span class="c"># count of its presence in a molecule.</span>
6135 <span class="c">#</span>
6136 <span class="c"># Key 191 description: C#C</span>
6137 <span class="c">#</span>
<a name="_Generate322KeySetKey191-"></a>6138 <span class="k">sub </span><span class="m">_Generate322KeySetKey191</span> <span class="s">{</span>
6139   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6140   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6141 
6142   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6143 <span class="s">}</span>
6144 
6145 <span class="c"># Generate 322 keyset key 192 value as 1/0 indicating its presence/absence or</span>
6146 <span class="c"># count of its presence in a molecule.</span>
6147 <span class="c">#</span>
6148 <span class="c"># Key 192 description: C#N</span>
6149 <span class="c">#</span>
<a name="_Generate322KeySetKey192-"></a>6150 <span class="k">sub </span><span class="m">_Generate322KeySetKey192</span> <span class="s">{</span>
6151   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6152   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6153 
6154   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6155 <span class="s">}</span>
6156 
6157 <span class="c"># Generate 322 keyset key 193 value as 1/0 indicating its presence/absence or</span>
6158 <span class="c"># count of its presence in a molecule.</span>
6159 <span class="c">#</span>
6160 <span class="c"># Key 193 description: C#O</span>
6161 <span class="c">#</span>
<a name="_Generate322KeySetKey193-"></a>6162 <span class="k">sub </span><span class="m">_Generate322KeySetKey193</span> <span class="s">{</span>
6163   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6164   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6165 
6166   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6167 <span class="s">}</span>
6168 
6169 <span class="c"># Generate 322 keyset key 194 value as 1/0 indicating its presence/absence or</span>
6170 <span class="c"># count of its presence in a molecule.</span>
6171 <span class="c">#</span>
6172 <span class="c"># Key 194 description: C#S</span>
6173 <span class="c">#</span>
<a name="_Generate322KeySetKey194-"></a>6174 <span class="k">sub </span><span class="m">_Generate322KeySetKey194</span> <span class="s">{</span>
6175   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6176   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6177 
6178   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6179 <span class="s">}</span>
6180 
6181 <span class="c"># Generate 322 keyset key 195 value as 1/0 indicating its presence/absence or</span>
6182 <span class="c"># count of its presence in a molecule.</span>
6183 <span class="c">#</span>
6184 <span class="c"># Key 195 description: C#Cl</span>
6185 <span class="c">#</span>
<a name="_Generate322KeySetKey195-"></a>6186 <span class="k">sub </span><span class="m">_Generate322KeySetKey195</span> <span class="s">{</span>
6187   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6188   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6189 
6190   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6191 <span class="s">}</span>
6192 
6193 <span class="c"># Generate 322 keyset key 196 value as 1/0 indicating its presence/absence or</span>
6194 <span class="c"># count of its presence in a molecule.</span>
6195 <span class="c">#</span>
6196 <span class="c"># Key 196 description: C#P</span>
6197 <span class="c">#</span>
<a name="_Generate322KeySetKey196-"></a>6198 <span class="k">sub </span><span class="m">_Generate322KeySetKey196</span> <span class="s">{</span>
6199   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6200   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6201 
6202   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6203 <span class="s">}</span>
6204 
6205 <span class="c"># Generate 322 keyset key 197 value as 1/0 indicating its presence/absence or</span>
6206 <span class="c"># count of its presence in a molecule.</span>
6207 <span class="c">#</span>
6208 <span class="c"># Key 197 description: C#F</span>
6209 <span class="c">#</span>
<a name="_Generate322KeySetKey197-"></a>6210 <span class="k">sub </span><span class="m">_Generate322KeySetKey197</span> <span class="s">{</span>
6211   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6212   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6213 
6214   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6215 <span class="s">}</span>
6216 
6217 <span class="c"># Generate 322 keyset key 198 value as 1/0 indicating its presence/absence or</span>
6218 <span class="c"># count of its presence in a molecule.</span>
6219 <span class="c">#</span>
6220 <span class="c"># Key 198 description: C#Br</span>
6221 <span class="c">#</span>
<a name="_Generate322KeySetKey198-"></a>6222 <span class="k">sub </span><span class="m">_Generate322KeySetKey198</span> <span class="s">{</span>
6223   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6224   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6225 
6226   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6227 <span class="s">}</span>
6228 
6229 <span class="c"># Generate 322 keyset key 199 value as 1/0 indicating its presence/absence or</span>
6230 <span class="c"># count of its presence in a molecule.</span>
6231 <span class="c">#</span>
6232 <span class="c"># Key 199 description: C#Si</span>
6233 <span class="c">#</span>
<a name="_Generate322KeySetKey199-"></a>6234 <span class="k">sub </span><span class="m">_Generate322KeySetKey199</span> <span class="s">{</span>
6235   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6236   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6237 
6238   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6239 <span class="s">}</span>
6240 
6241 <span class="c"># Generate 322 keyset key 200 value as 1/0 indicating its presence/absence or</span>
6242 <span class="c"># count of its presence in a molecule.</span>
6243 <span class="c">#</span>
6244 <span class="c"># Key 200 description: C#I</span>
6245 <span class="c">#</span>
<a name="_Generate322KeySetKey200-"></a>6246 <span class="k">sub </span><span class="m">_Generate322KeySetKey200</span> <span class="s">{</span>
6247   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6248   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6249 
6250   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6251 <span class="s">}</span>
6252 
6253 <span class="c"># Generate 322 keyset key 201 value as 1/0 indicating its presence/absence or</span>
6254 <span class="c"># count of its presence in a molecule.</span>
6255 <span class="c">#</span>
6256 <span class="c"># Key 201 description: C#X</span>
6257 <span class="c">#</span>
<a name="_Generate322KeySetKey201-"></a>6258 <span class="k">sub </span><span class="m">_Generate322KeySetKey201</span> <span class="s">{</span>
6259   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6260   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6261 
6262   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6263 <span class="s">}</span>
6264 
6265 <span class="c"># Generate 322 keyset key 202 value as 1/0 indicating its presence/absence or</span>
6266 <span class="c"># count of its presence in a molecule.</span>
6267 <span class="c">#</span>
6268 <span class="c"># Key 202 description: N#N</span>
6269 <span class="c">#</span>
<a name="_Generate322KeySetKey202-"></a>6270 <span class="k">sub </span><span class="m">_Generate322KeySetKey202</span> <span class="s">{</span>
6271   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6272   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6273 
6274   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6275 <span class="s">}</span>
6276 
6277 <span class="c"># Generate 322 keyset key 203 value as 1/0 indicating its presence/absence or</span>
6278 <span class="c"># count of its presence in a molecule.</span>
6279 <span class="c">#</span>
6280 <span class="c"># Key 203 description: N#O</span>
6281 <span class="c">#</span>
<a name="_Generate322KeySetKey203-"></a>6282 <span class="k">sub </span><span class="m">_Generate322KeySetKey203</span> <span class="s">{</span>
6283   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6284   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6285 
6286   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6287 <span class="s">}</span>
6288 
6289 <span class="c"># Generate 322 keyset key 204 value as 1/0 indicating its presence/absence or</span>
6290 <span class="c"># count of its presence in a molecule.</span>
6291 <span class="c">#</span>
6292 <span class="c"># Key 204 description: N#S</span>
6293 <span class="c">#</span>
<a name="_Generate322KeySetKey204-"></a>6294 <span class="k">sub </span><span class="m">_Generate322KeySetKey204</span> <span class="s">{</span>
6295   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6296   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6297 
6298   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6299 <span class="s">}</span>
6300 
6301 <span class="c"># Generate 322 keyset key 205 value as 1/0 indicating its presence/absence or</span>
6302 <span class="c"># count of its presence in a molecule.</span>
6303 <span class="c">#</span>
6304 <span class="c"># Key 205 description: N#Cl</span>
6305 <span class="c">#</span>
<a name="_Generate322KeySetKey205-"></a>6306 <span class="k">sub </span><span class="m">_Generate322KeySetKey205</span> <span class="s">{</span>
6307   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6308   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6309 
6310   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6311 <span class="s">}</span>
6312 
6313 <span class="c"># Generate 322 keyset key 206 value as 1/0 indicating its presence/absence or</span>
6314 <span class="c"># count of its presence in a molecule.</span>
6315 <span class="c">#</span>
6316 <span class="c"># Key 206 description: N#P</span>
6317 <span class="c">#</span>
<a name="_Generate322KeySetKey206-"></a>6318 <span class="k">sub </span><span class="m">_Generate322KeySetKey206</span> <span class="s">{</span>
6319   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6320   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6321 
6322   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6323 <span class="s">}</span>
6324 
6325 <span class="c"># Generate 322 keyset key 207 value as 1/0 indicating its presence/absence or</span>
6326 <span class="c"># count of its presence in a molecule.</span>
6327 <span class="c">#</span>
6328 <span class="c"># Key 207 description: N#F</span>
6329 <span class="c">#</span>
<a name="_Generate322KeySetKey207-"></a>6330 <span class="k">sub </span><span class="m">_Generate322KeySetKey207</span> <span class="s">{</span>
6331   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6332   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6333 
6334   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6335 <span class="s">}</span>
6336 
6337 <span class="c"># Generate 322 keyset key 208 value as 1/0 indicating its presence/absence or</span>
6338 <span class="c"># count of its presence in a molecule.</span>
6339 <span class="c">#</span>
6340 <span class="c"># Key 208 description: N#Br</span>
6341 <span class="c">#</span>
<a name="_Generate322KeySetKey208-"></a>6342 <span class="k">sub </span><span class="m">_Generate322KeySetKey208</span> <span class="s">{</span>
6343   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6344   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6345 
6346   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6347 <span class="s">}</span>
6348 
6349 <span class="c"># Generate 322 keyset key 209 value as 1/0 indicating its presence/absence or</span>
6350 <span class="c"># count of its presence in a molecule.</span>
6351 <span class="c">#</span>
6352 <span class="c"># Key 209 description: N#Si</span>
6353 <span class="c">#</span>
<a name="_Generate322KeySetKey209-"></a>6354 <span class="k">sub </span><span class="m">_Generate322KeySetKey209</span> <span class="s">{</span>
6355   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6356   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6357 
6358   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6359 <span class="s">}</span>
6360 
6361 <span class="c"># Generate 322 keyset key 210 value as 1/0 indicating its presence/absence or</span>
6362 <span class="c"># count of its presence in a molecule.</span>
6363 <span class="c">#</span>
6364 <span class="c"># Key 210 description: N#I</span>
6365 <span class="c">#</span>
<a name="_Generate322KeySetKey210-"></a>6366 <span class="k">sub </span><span class="m">_Generate322KeySetKey210</span> <span class="s">{</span>
6367   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6368   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6369 
6370   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6371 <span class="s">}</span>
6372 
6373 <span class="c"># Generate 322 keyset key 211 value as 1/0 indicating its presence/absence or</span>
6374 <span class="c"># count of its presence in a molecule.</span>
6375 <span class="c">#</span>
6376 <span class="c"># Key 211 description: N#X</span>
6377 <span class="c">#</span>
<a name="_Generate322KeySetKey211-"></a>6378 <span class="k">sub </span><span class="m">_Generate322KeySetKey211</span> <span class="s">{</span>
6379   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6380   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6381 
6382   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6383 <span class="s">}</span>
6384 
6385 <span class="c"># Generate 322 keyset key 212 value as 1/0 indicating its presence/absence or</span>
6386 <span class="c"># count of its presence in a molecule.</span>
6387 <span class="c">#</span>
6388 <span class="c"># Key 212 description: O#O</span>
6389 <span class="c">#</span>
<a name="_Generate322KeySetKey212-"></a>6390 <span class="k">sub </span><span class="m">_Generate322KeySetKey212</span> <span class="s">{</span>
6391   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6392   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6393 
6394   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6395 <span class="s">}</span>
6396 
6397 <span class="c"># Generate 322 keyset key 213 value as 1/0 indicating its presence/absence or</span>
6398 <span class="c"># count of its presence in a molecule.</span>
6399 <span class="c">#</span>
6400 <span class="c"># Key 213 description: O#S</span>
6401 <span class="c">#</span>
<a name="_Generate322KeySetKey213-"></a>6402 <span class="k">sub </span><span class="m">_Generate322KeySetKey213</span> <span class="s">{</span>
6403   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6404   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6405 
6406   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6407 <span class="s">}</span>
6408 
6409 <span class="c"># Generate 322 keyset key 214 value as 1/0 indicating its presence/absence or</span>
6410 <span class="c"># count of its presence in a molecule.</span>
6411 <span class="c">#</span>
6412 <span class="c"># Key 214 description: O#Cl</span>
6413 <span class="c">#</span>
<a name="_Generate322KeySetKey214-"></a>6414 <span class="k">sub </span><span class="m">_Generate322KeySetKey214</span> <span class="s">{</span>
6415   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6416   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6417 
6418   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6419 <span class="s">}</span>
6420 
6421 <span class="c"># Generate 322 keyset key 215 value as 1/0 indicating its presence/absence or</span>
6422 <span class="c"># count of its presence in a molecule.</span>
6423 <span class="c">#</span>
6424 <span class="c"># Key 215 description: O#P</span>
6425 <span class="c">#</span>
<a name="_Generate322KeySetKey215-"></a>6426 <span class="k">sub </span><span class="m">_Generate322KeySetKey215</span> <span class="s">{</span>
6427   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6428   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6429 
6430   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6431 <span class="s">}</span>
6432 
6433 <span class="c"># Generate 322 keyset key 216 value as 1/0 indicating its presence/absence or</span>
6434 <span class="c"># count of its presence in a molecule.</span>
6435 <span class="c">#</span>
6436 <span class="c"># Key 216 description: O#F</span>
6437 <span class="c">#</span>
<a name="_Generate322KeySetKey216-"></a>6438 <span class="k">sub </span><span class="m">_Generate322KeySetKey216</span> <span class="s">{</span>
6439   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6440   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6441 
6442   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6443 <span class="s">}</span>
6444 
6445 <span class="c"># Generate 322 keyset key 217 value as 1/0 indicating its presence/absence or</span>
6446 <span class="c"># count of its presence in a molecule.</span>
6447 <span class="c">#</span>
6448 <span class="c"># Key 217 description: O#Br</span>
6449 <span class="c">#</span>
<a name="_Generate322KeySetKey217-"></a>6450 <span class="k">sub </span><span class="m">_Generate322KeySetKey217</span> <span class="s">{</span>
6451   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6452   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6453 
6454   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6455 <span class="s">}</span>
6456 
6457 <span class="c"># Generate 322 keyset key 218 value as 1/0 indicating its presence/absence or</span>
6458 <span class="c"># count of its presence in a molecule.</span>
6459 <span class="c">#</span>
6460 <span class="c"># Key 218 description: O#Si</span>
6461 <span class="c">#</span>
<a name="_Generate322KeySetKey218-"></a>6462 <span class="k">sub </span><span class="m">_Generate322KeySetKey218</span> <span class="s">{</span>
6463   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6464   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6465 
6466   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6467 <span class="s">}</span>
6468 
6469 <span class="c"># Generate 322 keyset key 219 value as 1/0 indicating its presence/absence or</span>
6470 <span class="c"># count of its presence in a molecule.</span>
6471 <span class="c">#</span>
6472 <span class="c"># Key 219 description: O#I</span>
6473 <span class="c">#</span>
<a name="_Generate322KeySetKey219-"></a>6474 <span class="k">sub </span><span class="m">_Generate322KeySetKey219</span> <span class="s">{</span>
6475   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6476   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6477 
6478   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6479 <span class="s">}</span>
6480 
6481 <span class="c"># Generate 322 keyset key 220 value as 1/0 indicating its presence/absence or</span>
6482 <span class="c"># count of its presence in a molecule.</span>
6483 <span class="c">#</span>
6484 <span class="c"># Key 220 description: O#X</span>
6485 <span class="c">#</span>
<a name="_Generate322KeySetKey220-"></a>6486 <span class="k">sub </span><span class="m">_Generate322KeySetKey220</span> <span class="s">{</span>
6487   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6488   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6489 
6490   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6491 <span class="s">}</span>
6492 
6493 <span class="c"># Generate 322 keyset key 221 value as 1/0 indicating its presence/absence or</span>
6494 <span class="c"># count of its presence in a molecule.</span>
6495 <span class="c">#</span>
6496 <span class="c"># Key 221 description: S#S</span>
6497 <span class="c">#</span>
<a name="_Generate322KeySetKey221-"></a>6498 <span class="k">sub </span><span class="m">_Generate322KeySetKey221</span> <span class="s">{</span>
6499   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6500   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6501 
6502   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6503 <span class="s">}</span>
6504 
6505 <span class="c"># Generate 322 keyset key 222 value as 1/0 indicating its presence/absence or</span>
6506 <span class="c"># count of its presence in a molecule.</span>
6507 <span class="c">#</span>
6508 <span class="c"># Key 222 description: S#Cl</span>
6509 <span class="c">#</span>
<a name="_Generate322KeySetKey222-"></a>6510 <span class="k">sub </span><span class="m">_Generate322KeySetKey222</span> <span class="s">{</span>
6511   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6512   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6513 
6514   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6515 <span class="s">}</span>
6516 
6517 <span class="c"># Generate 322 keyset key 223 value as 1/0 indicating its presence/absence or</span>
6518 <span class="c"># count of its presence in a molecule.</span>
6519 <span class="c">#</span>
6520 <span class="c"># Key 223 description: S#P</span>
6521 <span class="c">#</span>
<a name="_Generate322KeySetKey223-"></a>6522 <span class="k">sub </span><span class="m">_Generate322KeySetKey223</span> <span class="s">{</span>
6523   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6524   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6525 
6526   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6527 <span class="s">}</span>
6528 
6529 <span class="c"># Generate 322 keyset key 224 value as 1/0 indicating its presence/absence or</span>
6530 <span class="c"># count of its presence in a molecule.</span>
6531 <span class="c">#</span>
6532 <span class="c"># Key 224 description: S#F</span>
6533 <span class="c">#</span>
<a name="_Generate322KeySetKey224-"></a>6534 <span class="k">sub </span><span class="m">_Generate322KeySetKey224</span> <span class="s">{</span>
6535   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6536   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6537 
6538   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6539 <span class="s">}</span>
6540 
6541 <span class="c"># Generate 322 keyset key 225 value as 1/0 indicating its presence/absence or</span>
6542 <span class="c"># count of its presence in a molecule.</span>
6543 <span class="c">#</span>
6544 <span class="c"># Key 225 description: S#Br</span>
6545 <span class="c">#</span>
<a name="_Generate322KeySetKey225-"></a>6546 <span class="k">sub </span><span class="m">_Generate322KeySetKey225</span> <span class="s">{</span>
6547   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6548   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6549 
6550   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6551 <span class="s">}</span>
6552 
6553 <span class="c"># Generate 322 keyset key 226 value as 1/0 indicating its presence/absence or</span>
6554 <span class="c"># count of its presence in a molecule.</span>
6555 <span class="c">#</span>
6556 <span class="c"># Key 226 description: S#Si</span>
6557 <span class="c">#</span>
<a name="_Generate322KeySetKey226-"></a>6558 <span class="k">sub </span><span class="m">_Generate322KeySetKey226</span> <span class="s">{</span>
6559   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6560   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6561 
6562   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6563 <span class="s">}</span>
6564 
6565 <span class="c"># Generate 322 keyset key 227 value as 1/0 indicating its presence/absence or</span>
6566 <span class="c"># count of its presence in a molecule.</span>
6567 <span class="c">#</span>
6568 <span class="c"># Key 227 description: S#I</span>
6569 <span class="c">#</span>
<a name="_Generate322KeySetKey227-"></a>6570 <span class="k">sub </span><span class="m">_Generate322KeySetKey227</span> <span class="s">{</span>
6571   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6572   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6573 
6574   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6575 <span class="s">}</span>
6576 
6577 <span class="c"># Generate 322 keyset key 228 value as 1/0 indicating its presence/absence or</span>
6578 <span class="c"># count of its presence in a molecule.</span>
6579 <span class="c">#</span>
6580 <span class="c"># Key 228 description: S#X</span>
6581 <span class="c">#</span>
<a name="_Generate322KeySetKey228-"></a>6582 <span class="k">sub </span><span class="m">_Generate322KeySetKey228</span> <span class="s">{</span>
6583   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6584   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6585 
6586   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6587 <span class="s">}</span>
6588 
6589 <span class="c"># Generate 322 keyset key 229 value as 1/0 indicating its presence/absence or</span>
6590 <span class="c"># count of its presence in a molecule.</span>
6591 <span class="c">#</span>
6592 <span class="c"># Key 229 description: Cl#Cl</span>
6593 <span class="c">#</span>
<a name="_Generate322KeySetKey229-"></a>6594 <span class="k">sub </span><span class="m">_Generate322KeySetKey229</span> <span class="s">{</span>
6595   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6596   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6597 
6598   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6599 <span class="s">}</span>
6600 
6601 <span class="c"># Generate 322 keyset key 230 value as 1/0 indicating its presence/absence or</span>
6602 <span class="c"># count of its presence in a molecule.</span>
6603 <span class="c">#</span>
6604 <span class="c"># Key 230 description: Cl#P</span>
6605 <span class="c">#</span>
<a name="_Generate322KeySetKey230-"></a>6606 <span class="k">sub </span><span class="m">_Generate322KeySetKey230</span> <span class="s">{</span>
6607   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6608   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6609 
6610   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6611 <span class="s">}</span>
6612 
6613 <span class="c"># Generate 322 keyset key 231 value as 1/0 indicating its presence/absence or</span>
6614 <span class="c"># count of its presence in a molecule.</span>
6615 <span class="c">#</span>
6616 <span class="c"># Key 231 description: Cl#F</span>
6617 <span class="c">#</span>
<a name="_Generate322KeySetKey231-"></a>6618 <span class="k">sub </span><span class="m">_Generate322KeySetKey231</span> <span class="s">{</span>
6619   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6620   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6621 
6622   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6623 <span class="s">}</span>
6624 
6625 <span class="c"># Generate 322 keyset key 232 value as 1/0 indicating its presence/absence or</span>
6626 <span class="c"># count of its presence in a molecule.</span>
6627 <span class="c">#</span>
6628 <span class="c"># Key 232 description: Cl#Br</span>
6629 <span class="c">#</span>
<a name="_Generate322KeySetKey232-"></a>6630 <span class="k">sub </span><span class="m">_Generate322KeySetKey232</span> <span class="s">{</span>
6631   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6632   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6633 
6634   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6635 <span class="s">}</span>
6636 
6637 <span class="c"># Generate 322 keyset key 233 value as 1/0 indicating its presence/absence or</span>
6638 <span class="c"># count of its presence in a molecule.</span>
6639 <span class="c">#</span>
6640 <span class="c"># Key 233 description: Cl#Si</span>
6641 <span class="c">#</span>
<a name="_Generate322KeySetKey233-"></a>6642 <span class="k">sub </span><span class="m">_Generate322KeySetKey233</span> <span class="s">{</span>
6643   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6644   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6645 
6646   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6647 <span class="s">}</span>
6648 
6649 <span class="c"># Generate 322 keyset key 234 value as 1/0 indicating its presence/absence or</span>
6650 <span class="c"># count of its presence in a molecule.</span>
6651 <span class="c">#</span>
6652 <span class="c"># Key 234 description: Cl#I</span>
6653 <span class="c">#</span>
<a name="_Generate322KeySetKey234-"></a>6654 <span class="k">sub </span><span class="m">_Generate322KeySetKey234</span> <span class="s">{</span>
6655   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6656   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6657 
6658   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6659 <span class="s">}</span>
6660 
6661 <span class="c"># Generate 322 keyset key 235 value as 1/0 indicating its presence/absence or</span>
6662 <span class="c"># count of its presence in a molecule.</span>
6663 <span class="c">#</span>
6664 <span class="c"># Key 235 description: Cl#X</span>
6665 <span class="c">#</span>
<a name="_Generate322KeySetKey235-"></a>6666 <span class="k">sub </span><span class="m">_Generate322KeySetKey235</span> <span class="s">{</span>
6667   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6668   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6669 
6670   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6671 <span class="s">}</span>
6672 
6673 <span class="c"># Generate 322 keyset key 236 value as 1/0 indicating its presence/absence or</span>
6674 <span class="c"># count of its presence in a molecule.</span>
6675 <span class="c">#</span>
6676 <span class="c"># Key 236 description: P#P</span>
6677 <span class="c">#</span>
<a name="_Generate322KeySetKey236-"></a>6678 <span class="k">sub </span><span class="m">_Generate322KeySetKey236</span> <span class="s">{</span>
6679   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6680   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6681 
6682   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6683 <span class="s">}</span>
6684 
6685 <span class="c"># Generate 322 keyset key 237 value as 1/0 indicating its presence/absence or</span>
6686 <span class="c"># count of its presence in a molecule.</span>
6687 <span class="c">#</span>
6688 <span class="c"># Key 237 description: P#F</span>
6689 <span class="c">#</span>
<a name="_Generate322KeySetKey237-"></a>6690 <span class="k">sub </span><span class="m">_Generate322KeySetKey237</span> <span class="s">{</span>
6691   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6692   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6693 
6694   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6695 <span class="s">}</span>
6696 
6697 <span class="c"># Generate 322 keyset key 238 value as 1/0 indicating its presence/absence or</span>
6698 <span class="c"># count of its presence in a molecule.</span>
6699 <span class="c">#</span>
6700 <span class="c"># Key 238 description: P#Br</span>
6701 <span class="c">#</span>
<a name="_Generate322KeySetKey238-"></a>6702 <span class="k">sub </span><span class="m">_Generate322KeySetKey238</span> <span class="s">{</span>
6703   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6704   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6705 
6706   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6707 <span class="s">}</span>
6708 
6709 <span class="c"># Generate 322 keyset key 239 value as 1/0 indicating its presence/absence or</span>
6710 <span class="c"># count of its presence in a molecule.</span>
6711 <span class="c">#</span>
6712 <span class="c"># Key 239 description: P#Si</span>
6713 <span class="c">#</span>
<a name="_Generate322KeySetKey239-"></a>6714 <span class="k">sub </span><span class="m">_Generate322KeySetKey239</span> <span class="s">{</span>
6715   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6716   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6717 
6718   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6719 <span class="s">}</span>
6720 
6721 <span class="c"># Generate 322 keyset key 240 value as 1/0 indicating its presence/absence or</span>
6722 <span class="c"># count of its presence in a molecule.</span>
6723 <span class="c">#</span>
6724 <span class="c"># Key 240 description: P#I</span>
6725 <span class="c">#</span>
<a name="_Generate322KeySetKey240-"></a>6726 <span class="k">sub </span><span class="m">_Generate322KeySetKey240</span> <span class="s">{</span>
6727   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6728   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6729 
6730   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6731 <span class="s">}</span>
6732 
6733 <span class="c"># Generate 322 keyset key 241 value as 1/0 indicating its presence/absence or</span>
6734 <span class="c"># count of its presence in a molecule.</span>
6735 <span class="c">#</span>
6736 <span class="c"># Key 241 description: P#X</span>
6737 <span class="c">#</span>
<a name="_Generate322KeySetKey241-"></a>6738 <span class="k">sub </span><span class="m">_Generate322KeySetKey241</span> <span class="s">{</span>
6739   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6740   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6741 
6742   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6743 <span class="s">}</span>
6744 
6745 <span class="c"># Generate 322 keyset key 242 value as 1/0 indicating its presence/absence or</span>
6746 <span class="c"># count of its presence in a molecule.</span>
6747 <span class="c">#</span>
6748 <span class="c"># Key 242 description: F#F</span>
6749 <span class="c">#</span>
<a name="_Generate322KeySetKey242-"></a>6750 <span class="k">sub </span><span class="m">_Generate322KeySetKey242</span> <span class="s">{</span>
6751   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6752   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6753 
6754   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6755 <span class="s">}</span>
6756 
6757 <span class="c"># Generate 322 keyset key 243 value as 1/0 indicating its presence/absence or</span>
6758 <span class="c"># count of its presence in a molecule.</span>
6759 <span class="c">#</span>
6760 <span class="c"># Key 243 description: F#Br</span>
6761 <span class="c">#</span>
<a name="_Generate322KeySetKey243-"></a>6762 <span class="k">sub </span><span class="m">_Generate322KeySetKey243</span> <span class="s">{</span>
6763   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6764   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6765 
6766   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6767 <span class="s">}</span>
6768 
6769 <span class="c"># Generate 322 keyset key 244 value as 1/0 indicating its presence/absence or</span>
6770 <span class="c"># count of its presence in a molecule.</span>
6771 <span class="c">#</span>
6772 <span class="c"># Key 244 description: F#Si</span>
6773 <span class="c">#</span>
<a name="_Generate322KeySetKey244-"></a>6774 <span class="k">sub </span><span class="m">_Generate322KeySetKey244</span> <span class="s">{</span>
6775   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6776   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6777 
6778   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6779 <span class="s">}</span>
6780 
6781 <span class="c"># Generate 322 keyset key 245 value as 1/0 indicating its presence/absence or</span>
6782 <span class="c"># count of its presence in a molecule.</span>
6783 <span class="c">#</span>
6784 <span class="c"># Key 245 description: F#I</span>
6785 <span class="c">#</span>
<a name="_Generate322KeySetKey245-"></a>6786 <span class="k">sub </span><span class="m">_Generate322KeySetKey245</span> <span class="s">{</span>
6787   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6788   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6789 
6790   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6791 <span class="s">}</span>
6792 
6793 <span class="c"># Generate 322 keyset key 246 value as 1/0 indicating its presence/absence or</span>
6794 <span class="c"># count of its presence in a molecule.</span>
6795 <span class="c">#</span>
6796 <span class="c"># Key 246 description: F#X</span>
6797 <span class="c">#</span>
<a name="_Generate322KeySetKey246-"></a>6798 <span class="k">sub </span><span class="m">_Generate322KeySetKey246</span> <span class="s">{</span>
6799   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6800   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6801 
6802   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6803 <span class="s">}</span>
6804 
6805 <span class="c"># Generate 322 keyset key 247 value as 1/0 indicating its presence/absence or</span>
6806 <span class="c"># count of its presence in a molecule.</span>
6807 <span class="c">#</span>
6808 <span class="c"># Key 247 description: Br#Br</span>
6809 <span class="c">#</span>
<a name="_Generate322KeySetKey247-"></a>6810 <span class="k">sub </span><span class="m">_Generate322KeySetKey247</span> <span class="s">{</span>
6811   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6812   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6813 
6814   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6815 <span class="s">}</span>
6816 
6817 <span class="c"># Generate 322 keyset key 248 value as 1/0 indicating its presence/absence or</span>
6818 <span class="c"># count of its presence in a molecule.</span>
6819 <span class="c">#</span>
6820 <span class="c"># Key 248 description: Br#Si</span>
6821 <span class="c">#</span>
<a name="_Generate322KeySetKey248-"></a>6822 <span class="k">sub </span><span class="m">_Generate322KeySetKey248</span> <span class="s">{</span>
6823   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6824   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6825 
6826   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6827 <span class="s">}</span>
6828 
6829 <span class="c"># Generate 322 keyset key 249 value as 1/0 indicating its presence/absence or</span>
6830 <span class="c"># count of its presence in a molecule.</span>
6831 <span class="c">#</span>
6832 <span class="c"># Key 249 description: Br#I</span>
6833 <span class="c">#</span>
<a name="_Generate322KeySetKey249-"></a>6834 <span class="k">sub </span><span class="m">_Generate322KeySetKey249</span> <span class="s">{</span>
6835   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6836   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6837 
6838   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6839 <span class="s">}</span>
6840 
6841 <span class="c"># Generate 322 keyset key 250 value as 1/0 indicating its presence/absence or</span>
6842 <span class="c"># count of its presence in a molecule.</span>
6843 <span class="c">#</span>
6844 <span class="c"># Key 250 description: Br#X</span>
6845 <span class="c">#</span>
<a name="_Generate322KeySetKey250-"></a>6846 <span class="k">sub </span><span class="m">_Generate322KeySetKey250</span> <span class="s">{</span>
6847   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6848   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6849 
6850   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6851 <span class="s">}</span>
6852 
6853 <span class="c"># Generate 322 keyset key 251 value as 1/0 indicating its presence/absence or</span>
6854 <span class="c"># count of its presence in a molecule.</span>
6855 <span class="c">#</span>
6856 <span class="c"># Key 251 description: Si#Si</span>
6857 <span class="c">#</span>
<a name="_Generate322KeySetKey251-"></a>6858 <span class="k">sub </span><span class="m">_Generate322KeySetKey251</span> <span class="s">{</span>
6859   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6860   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6861 
6862   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6863 <span class="s">}</span>
6864 
6865 <span class="c"># Generate 322 keyset key 252 value as 1/0 indicating its presence/absence or</span>
6866 <span class="c"># count of its presence in a molecule.</span>
6867 <span class="c">#</span>
6868 <span class="c"># Key 252 description: Si#I</span>
6869 <span class="c">#</span>
<a name="_Generate322KeySetKey252-"></a>6870 <span class="k">sub </span><span class="m">_Generate322KeySetKey252</span> <span class="s">{</span>
6871   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6872   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6873 
6874   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6875 <span class="s">}</span>
6876 
6877 <span class="c"># Generate 322 keyset key 253 value as 1/0 indicating its presence/absence or</span>
6878 <span class="c"># count of its presence in a molecule.</span>
6879 <span class="c">#</span>
6880 <span class="c"># Key 253 description: Si#X</span>
6881 <span class="c">#</span>
<a name="_Generate322KeySetKey253-"></a>6882 <span class="k">sub </span><span class="m">_Generate322KeySetKey253</span> <span class="s">{</span>
6883   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6884   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6885 
6886   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6887 <span class="s">}</span>
6888 
6889 <span class="c"># Generate 322 keyset key 254 value as 1/0 indicating its presence/absence or</span>
6890 <span class="c"># count of its presence in a molecule.</span>
6891 <span class="c">#</span>
6892 <span class="c"># Key 254 description: I#I</span>
6893 <span class="c">#</span>
<a name="_Generate322KeySetKey254-"></a>6894 <span class="k">sub </span><span class="m">_Generate322KeySetKey254</span> <span class="s">{</span>
6895   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6896   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6897 
6898   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6899 <span class="s">}</span>
6900 
6901 <span class="c"># Generate 322 keyset key 255 value as 1/0 indicating its presence/absence or</span>
6902 <span class="c"># count of its presence in a molecule.</span>
6903 <span class="c">#</span>
6904 <span class="c"># Key 255 description: I#X</span>
6905 <span class="c">#</span>
<a name="_Generate322KeySetKey255-"></a>6906 <span class="k">sub </span><span class="m">_Generate322KeySetKey255</span> <span class="s">{</span>
6907   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6908   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6909 
6910   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6911 <span class="s">}</span>
6912 
6913 <span class="c"># Generate 322 keyset key 256 value as 1/0 indicating its presence/absence or</span>
6914 <span class="c"># count of its presence in a molecule.</span>
6915 <span class="c">#</span>
6916 <span class="c"># Key 256 description: X#X</span>
6917 <span class="c">#</span>
<a name="_Generate322KeySetKey256-"></a>6918 <span class="k">sub </span><span class="m">_Generate322KeySetKey256</span> <span class="s">{</span>
6919   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6920   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;#&#39;</span><span class="sc">;</span>
6921 
6922   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6923 <span class="s">}</span>
6924 
6925 <span class="c"># Generate 322 keyset key 257 value as 1/0 indicating its presence/absence or</span>
6926 <span class="c"># count of its presence in a molecule.</span>
6927 <span class="c">#</span>
6928 <span class="c"># Key 257 description: C$C</span>
6929 <span class="c">#</span>
<a name="_Generate322KeySetKey257-"></a>6930 <span class="k">sub </span><span class="m">_Generate322KeySetKey257</span> <span class="s">{</span>
6931   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6932   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6933 
6934   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6935 <span class="s">}</span>
6936 
6937 <span class="c"># Generate 322 keyset key 258 value as 1/0 indicating its presence/absence or</span>
6938 <span class="c"># count of its presence in a molecule.</span>
6939 <span class="c">#</span>
6940 <span class="c"># Key 258 description: C$N</span>
6941 <span class="c">#</span>
<a name="_Generate322KeySetKey258-"></a>6942 <span class="k">sub </span><span class="m">_Generate322KeySetKey258</span> <span class="s">{</span>
6943   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6944   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6945 
6946   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6947 <span class="s">}</span>
6948 
6949 <span class="c"># Generate 322 keyset key 259 value as 1/0 indicating its presence/absence or</span>
6950 <span class="c"># count of its presence in a molecule.</span>
6951 <span class="c">#</span>
6952 <span class="c"># Key 259 description: C$O</span>
6953 <span class="c">#</span>
<a name="_Generate322KeySetKey259-"></a>6954 <span class="k">sub </span><span class="m">_Generate322KeySetKey259</span> <span class="s">{</span>
6955   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6956   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6957 
6958   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6959 <span class="s">}</span>
6960 
6961 <span class="c"># Generate 322 keyset key 260 value as 1/0 indicating its presence/absence or</span>
6962 <span class="c"># count of its presence in a molecule.</span>
6963 <span class="c">#</span>
6964 <span class="c"># Key 260 description: C$S</span>
6965 <span class="c">#</span>
<a name="_Generate322KeySetKey260-"></a>6966 <span class="k">sub </span><span class="m">_Generate322KeySetKey260</span> <span class="s">{</span>
6967   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6968   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6969 
6970   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6971 <span class="s">}</span>
6972 
6973 <span class="c"># Generate 322 keyset key 261 value as 1/0 indicating its presence/absence or</span>
6974 <span class="c"># count of its presence in a molecule.</span>
6975 <span class="c">#</span>
6976 <span class="c"># Key 261 description: C$Cl</span>
6977 <span class="c">#</span>
<a name="_Generate322KeySetKey261-"></a>6978 <span class="k">sub </span><span class="m">_Generate322KeySetKey261</span> <span class="s">{</span>
6979   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6980   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6981 
6982   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6983 <span class="s">}</span>
6984 
6985 <span class="c"># Generate 322 keyset key 262 value as 1/0 indicating its presence/absence or</span>
6986 <span class="c"># count of its presence in a molecule.</span>
6987 <span class="c">#</span>
6988 <span class="c"># Key 262 description: C$P</span>
6989 <span class="c">#</span>
<a name="_Generate322KeySetKey262-"></a>6990 <span class="k">sub </span><span class="m">_Generate322KeySetKey262</span> <span class="s">{</span>
6991   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
6992   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
6993 
6994   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
6995 <span class="s">}</span>
6996 
6997 <span class="c"># Generate 322 keyset key 263 value as 1/0 indicating its presence/absence or</span>
6998 <span class="c"># count of its presence in a molecule.</span>
6999 <span class="c">#</span>
7000 <span class="c"># Key 263 description: C$F</span>
7001 <span class="c">#</span>
<a name="_Generate322KeySetKey263-"></a>7002 <span class="k">sub </span><span class="m">_Generate322KeySetKey263</span> <span class="s">{</span>
7003   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7004   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7005 
7006   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7007 <span class="s">}</span>
7008 
7009 <span class="c"># Generate 322 keyset key 264 value as 1/0 indicating its presence/absence or</span>
7010 <span class="c"># count of its presence in a molecule.</span>
7011 <span class="c">#</span>
7012 <span class="c"># Key 264 description: C$Br</span>
7013 <span class="c">#</span>
<a name="_Generate322KeySetKey264-"></a>7014 <span class="k">sub </span><span class="m">_Generate322KeySetKey264</span> <span class="s">{</span>
7015   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7016   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7017 
7018   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7019 <span class="s">}</span>
7020 
7021 <span class="c"># Generate 322 keyset key 265 value as 1/0 indicating its presence/absence or</span>
7022 <span class="c"># count of its presence in a molecule.</span>
7023 <span class="c">#</span>
7024 <span class="c"># Key 265 description: C$Si</span>
7025 <span class="c">#</span>
<a name="_Generate322KeySetKey265-"></a>7026 <span class="k">sub </span><span class="m">_Generate322KeySetKey265</span> <span class="s">{</span>
7027   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7028   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7029 
7030   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7031 <span class="s">}</span>
7032 
7033 <span class="c"># Generate 322 keyset key 266 value as 1/0 indicating its presence/absence or</span>
7034 <span class="c"># count of its presence in a molecule.</span>
7035 <span class="c">#</span>
7036 <span class="c"># Key 266 description: C$I</span>
7037 <span class="c">#</span>
<a name="_Generate322KeySetKey266-"></a>7038 <span class="k">sub </span><span class="m">_Generate322KeySetKey266</span> <span class="s">{</span>
7039   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7040   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7041 
7042   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7043 <span class="s">}</span>
7044 
7045 <span class="c"># Generate 322 keyset key 267 value as 1/0 indicating its presence/absence or</span>
7046 <span class="c"># count of its presence in a molecule.</span>
7047 <span class="c">#</span>
7048 <span class="c"># Key 267 description: C$X</span>
7049 <span class="c">#</span>
<a name="_Generate322KeySetKey267-"></a>7050 <span class="k">sub </span><span class="m">_Generate322KeySetKey267</span> <span class="s">{</span>
7051   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7052   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7053 
7054   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;C&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7055 <span class="s">}</span>
7056 
7057 <span class="c"># Generate 322 keyset key 268 value as 1/0 indicating its presence/absence or</span>
7058 <span class="c"># count of its presence in a molecule.</span>
7059 <span class="c">#</span>
7060 <span class="c"># Key 268 description: N$N</span>
7061 <span class="c">#</span>
<a name="_Generate322KeySetKey268-"></a>7062 <span class="k">sub </span><span class="m">_Generate322KeySetKey268</span> <span class="s">{</span>
7063   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7064   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7065 
7066   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7067 <span class="s">}</span>
7068 
7069 <span class="c"># Generate 322 keyset key 269 value as 1/0 indicating its presence/absence or</span>
7070 <span class="c"># count of its presence in a molecule.</span>
7071 <span class="c">#</span>
7072 <span class="c"># Key 269 description: N$O</span>
7073 <span class="c">#</span>
<a name="_Generate322KeySetKey269-"></a>7074 <span class="k">sub </span><span class="m">_Generate322KeySetKey269</span> <span class="s">{</span>
7075   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7076   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7077 
7078   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7079 <span class="s">}</span>
7080 
7081 <span class="c"># Generate 322 keyset key 270 value as 1/0 indicating its presence/absence or</span>
7082 <span class="c"># count of its presence in a molecule.</span>
7083 <span class="c">#</span>
7084 <span class="c"># Key 270 description: N$S</span>
7085 <span class="c">#</span>
<a name="_Generate322KeySetKey270-"></a>7086 <span class="k">sub </span><span class="m">_Generate322KeySetKey270</span> <span class="s">{</span>
7087   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7088   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7089 
7090   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7091 <span class="s">}</span>
7092 
7093 <span class="c"># Generate 322 keyset key 271 value as 1/0 indicating its presence/absence or</span>
7094 <span class="c"># count of its presence in a molecule.</span>
7095 <span class="c">#</span>
7096 <span class="c"># Key 271 description: N$Cl</span>
7097 <span class="c">#</span>
<a name="_Generate322KeySetKey271-"></a>7098 <span class="k">sub </span><span class="m">_Generate322KeySetKey271</span> <span class="s">{</span>
7099   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7100   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7101 
7102   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7103 <span class="s">}</span>
7104 
7105 <span class="c"># Generate 322 keyset key 272 value as 1/0 indicating its presence/absence or</span>
7106 <span class="c"># count of its presence in a molecule.</span>
7107 <span class="c">#</span>
7108 <span class="c"># Key 272 description: N$P</span>
7109 <span class="c">#</span>
<a name="_Generate322KeySetKey272-"></a>7110 <span class="k">sub </span><span class="m">_Generate322KeySetKey272</span> <span class="s">{</span>
7111   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7112   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7113 
7114   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7115 <span class="s">}</span>
7116 
7117 <span class="c"># Generate 322 keyset key 273 value as 1/0 indicating its presence/absence or</span>
7118 <span class="c"># count of its presence in a molecule.</span>
7119 <span class="c">#</span>
7120 <span class="c"># Key 273 description: N$F</span>
7121 <span class="c">#</span>
<a name="_Generate322KeySetKey273-"></a>7122 <span class="k">sub </span><span class="m">_Generate322KeySetKey273</span> <span class="s">{</span>
7123   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7124   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7125 
7126   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7127 <span class="s">}</span>
7128 
7129 <span class="c"># Generate 322 keyset key 274 value as 1/0 indicating its presence/absence or</span>
7130 <span class="c"># count of its presence in a molecule.</span>
7131 <span class="c">#</span>
7132 <span class="c"># Key 274 description: N$Br</span>
7133 <span class="c">#</span>
<a name="_Generate322KeySetKey274-"></a>7134 <span class="k">sub </span><span class="m">_Generate322KeySetKey274</span> <span class="s">{</span>
7135   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7136   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7137 
7138   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7139 <span class="s">}</span>
7140 
7141 <span class="c"># Generate 322 keyset key 275 value as 1/0 indicating its presence/absence or</span>
7142 <span class="c"># count of its presence in a molecule.</span>
7143 <span class="c">#</span>
7144 <span class="c"># Key 275 description: N$Si</span>
7145 <span class="c">#</span>
<a name="_Generate322KeySetKey275-"></a>7146 <span class="k">sub </span><span class="m">_Generate322KeySetKey275</span> <span class="s">{</span>
7147   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7148   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7149 
7150   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7151 <span class="s">}</span>
7152 
7153 <span class="c"># Generate 322 keyset key 276 value as 1/0 indicating its presence/absence or</span>
7154 <span class="c"># count of its presence in a molecule.</span>
7155 <span class="c">#</span>
7156 <span class="c"># Key 276 description: N$I</span>
7157 <span class="c">#</span>
<a name="_Generate322KeySetKey276-"></a>7158 <span class="k">sub </span><span class="m">_Generate322KeySetKey276</span> <span class="s">{</span>
7159   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7160   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7161 
7162   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7163 <span class="s">}</span>
7164 
7165 <span class="c"># Generate 322 keyset key 277 value as 1/0 indicating its presence/absence or</span>
7166 <span class="c"># count of its presence in a molecule.</span>
7167 <span class="c">#</span>
7168 <span class="c"># Key 277 description: N$X</span>
7169 <span class="c">#</span>
<a name="_Generate322KeySetKey277-"></a>7170 <span class="k">sub </span><span class="m">_Generate322KeySetKey277</span> <span class="s">{</span>
7171   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7172   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7173 
7174   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;N&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7175 <span class="s">}</span>
7176 
7177 <span class="c"># Generate 322 keyset key 278 value as 1/0 indicating its presence/absence or</span>
7178 <span class="c"># count of its presence in a molecule.</span>
7179 <span class="c">#</span>
7180 <span class="c"># Key 278 description: O$O</span>
7181 <span class="c">#</span>
<a name="_Generate322KeySetKey278-"></a>7182 <span class="k">sub </span><span class="m">_Generate322KeySetKey278</span> <span class="s">{</span>
7183   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7184   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7185 
7186   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7187 <span class="s">}</span>
7188 
7189 <span class="c"># Generate 322 keyset key 279 value as 1/0 indicating its presence/absence or</span>
7190 <span class="c"># count of its presence in a molecule.</span>
7191 <span class="c">#</span>
7192 <span class="c"># Key 279 description: O$S</span>
7193 <span class="c">#</span>
<a name="_Generate322KeySetKey279-"></a>7194 <span class="k">sub </span><span class="m">_Generate322KeySetKey279</span> <span class="s">{</span>
7195   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7196   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7197 
7198   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7199 <span class="s">}</span>
7200 
7201 <span class="c"># Generate 322 keyset key 280 value as 1/0 indicating its presence/absence or</span>
7202 <span class="c"># count of its presence in a molecule.</span>
7203 <span class="c">#</span>
7204 <span class="c"># Key 280 description: O$Cl</span>
7205 <span class="c">#</span>
<a name="_Generate322KeySetKey280-"></a>7206 <span class="k">sub </span><span class="m">_Generate322KeySetKey280</span> <span class="s">{</span>
7207   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7208   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7209 
7210   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7211 <span class="s">}</span>
7212 
7213 <span class="c"># Generate 322 keyset key 281 value as 1/0 indicating its presence/absence or</span>
7214 <span class="c"># count of its presence in a molecule.</span>
7215 <span class="c">#</span>
7216 <span class="c"># Key 281 description: O$P</span>
7217 <span class="c">#</span>
<a name="_Generate322KeySetKey281-"></a>7218 <span class="k">sub </span><span class="m">_Generate322KeySetKey281</span> <span class="s">{</span>
7219   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7220   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7221 
7222   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7223 <span class="s">}</span>
7224 
7225 <span class="c"># Generate 322 keyset key 282 value as 1/0 indicating its presence/absence or</span>
7226 <span class="c"># count of its presence in a molecule.</span>
7227 <span class="c">#</span>
7228 <span class="c"># Key 282 description: O$F</span>
7229 <span class="c">#</span>
<a name="_Generate322KeySetKey282-"></a>7230 <span class="k">sub </span><span class="m">_Generate322KeySetKey282</span> <span class="s">{</span>
7231   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7232   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7233 
7234   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7235 <span class="s">}</span>
7236 
7237 <span class="c"># Generate 322 keyset key 283 value as 1/0 indicating its presence/absence or</span>
7238 <span class="c"># count of its presence in a molecule.</span>
7239 <span class="c">#</span>
7240 <span class="c"># Key 283 description: O$Br</span>
7241 <span class="c">#</span>
<a name="_Generate322KeySetKey283-"></a>7242 <span class="k">sub </span><span class="m">_Generate322KeySetKey283</span> <span class="s">{</span>
7243   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7244   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7245 
7246   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7247 <span class="s">}</span>
7248 
7249 <span class="c"># Generate 322 keyset key 284 value as 1/0 indicating its presence/absence or</span>
7250 <span class="c"># count of its presence in a molecule.</span>
7251 <span class="c">#</span>
7252 <span class="c"># Key 284 description: O$Si</span>
7253 <span class="c">#</span>
<a name="_Generate322KeySetKey284-"></a>7254 <span class="k">sub </span><span class="m">_Generate322KeySetKey284</span> <span class="s">{</span>
7255   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7256   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7257 
7258   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7259 <span class="s">}</span>
7260 
7261 <span class="c"># Generate 322 keyset key 285 value as 1/0 indicating its presence/absence or</span>
7262 <span class="c"># count of its presence in a molecule.</span>
7263 <span class="c">#</span>
7264 <span class="c"># Key 285 description: O$I</span>
7265 <span class="c">#</span>
<a name="_Generate322KeySetKey285-"></a>7266 <span class="k">sub </span><span class="m">_Generate322KeySetKey285</span> <span class="s">{</span>
7267   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7268   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7269 
7270   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7271 <span class="s">}</span>
7272 
7273 <span class="c"># Generate 322 keyset key 286 value as 1/0 indicating its presence/absence or</span>
7274 <span class="c"># count of its presence in a molecule.</span>
7275 <span class="c">#</span>
7276 <span class="c"># Key 286 description: O$X</span>
7277 <span class="c">#</span>
<a name="_Generate322KeySetKey286-"></a>7278 <span class="k">sub </span><span class="m">_Generate322KeySetKey286</span> <span class="s">{</span>
7279   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7280   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7281 
7282   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;O&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7283 <span class="s">}</span>
7284 
7285 <span class="c"># Generate 322 keyset key 287 value as 1/0 indicating its presence/absence or</span>
7286 <span class="c"># count of its presence in a molecule.</span>
7287 <span class="c">#</span>
7288 <span class="c"># Key 287 description: S$S</span>
7289 <span class="c">#</span>
<a name="_Generate322KeySetKey287-"></a>7290 <span class="k">sub </span><span class="m">_Generate322KeySetKey287</span> <span class="s">{</span>
7291   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7292   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7293 
7294   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7295 <span class="s">}</span>
7296 
7297 <span class="c"># Generate 322 keyset key 288 value as 1/0 indicating its presence/absence or</span>
7298 <span class="c"># count of its presence in a molecule.</span>
7299 <span class="c">#</span>
7300 <span class="c"># Key 288 description: S$Cl</span>
7301 <span class="c">#</span>
<a name="_Generate322KeySetKey288-"></a>7302 <span class="k">sub </span><span class="m">_Generate322KeySetKey288</span> <span class="s">{</span>
7303   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7304   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7305 
7306   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7307 <span class="s">}</span>
7308 
7309 <span class="c"># Generate 322 keyset key 289 value as 1/0 indicating its presence/absence or</span>
7310 <span class="c"># count of its presence in a molecule.</span>
7311 <span class="c">#</span>
7312 <span class="c"># Key 289 description: S$P</span>
7313 <span class="c">#</span>
<a name="_Generate322KeySetKey289-"></a>7314 <span class="k">sub </span><span class="m">_Generate322KeySetKey289</span> <span class="s">{</span>
7315   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7316   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7317 
7318   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7319 <span class="s">}</span>
7320 
7321 <span class="c"># Generate 322 keyset key 290 value as 1/0 indicating its presence/absence or</span>
7322 <span class="c"># count of its presence in a molecule.</span>
7323 <span class="c">#</span>
7324 <span class="c"># Key 290 description: S$F</span>
7325 <span class="c">#</span>
<a name="_Generate322KeySetKey290-"></a>7326 <span class="k">sub </span><span class="m">_Generate322KeySetKey290</span> <span class="s">{</span>
7327   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7328   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7329 
7330   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7331 <span class="s">}</span>
7332 
7333 <span class="c"># Generate 322 keyset key 291 value as 1/0 indicating its presence/absence or</span>
7334 <span class="c"># count of its presence in a molecule.</span>
7335 <span class="c">#</span>
7336 <span class="c"># Key 291 description: S$Br</span>
7337 <span class="c">#</span>
<a name="_Generate322KeySetKey291-"></a>7338 <span class="k">sub </span><span class="m">_Generate322KeySetKey291</span> <span class="s">{</span>
7339   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7340   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7341 
7342   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7343 <span class="s">}</span>
7344 
7345 <span class="c"># Generate 322 keyset key 292 value as 1/0 indicating its presence/absence or</span>
7346 <span class="c"># count of its presence in a molecule.</span>
7347 <span class="c">#</span>
7348 <span class="c"># Key 292 description: S$Si</span>
7349 <span class="c">#</span>
<a name="_Generate322KeySetKey292-"></a>7350 <span class="k">sub </span><span class="m">_Generate322KeySetKey292</span> <span class="s">{</span>
7351   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7352   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7353 
7354   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7355 <span class="s">}</span>
7356 
7357 <span class="c"># Generate 322 keyset key 293 value as 1/0 indicating its presence/absence or</span>
7358 <span class="c"># count of its presence in a molecule.</span>
7359 <span class="c">#</span>
7360 <span class="c"># Key 293 description: S$I</span>
7361 <span class="c">#</span>
<a name="_Generate322KeySetKey293-"></a>7362 <span class="k">sub </span><span class="m">_Generate322KeySetKey293</span> <span class="s">{</span>
7363   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7364   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7365 
7366   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7367 <span class="s">}</span>
7368 
7369 <span class="c"># Generate 322 keyset key 294 value as 1/0 indicating its presence/absence or</span>
7370 <span class="c"># count of its presence in a molecule.</span>
7371 <span class="c">#</span>
7372 <span class="c"># Key 294 description: S$X</span>
7373 <span class="c">#</span>
<a name="_Generate322KeySetKey294-"></a>7374 <span class="k">sub </span><span class="m">_Generate322KeySetKey294</span> <span class="s">{</span>
7375   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7376   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7377 
7378   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;S&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7379 <span class="s">}</span>
7380 
7381 <span class="c"># Generate 322 keyset key 295 value as 1/0 indicating its presence/absence or</span>
7382 <span class="c"># count of its presence in a molecule.</span>
7383 <span class="c">#</span>
7384 <span class="c"># Key 295 description: Cl$Cl</span>
7385 <span class="c">#</span>
<a name="_Generate322KeySetKey295-"></a>7386 <span class="k">sub </span><span class="m">_Generate322KeySetKey295</span> <span class="s">{</span>
7387   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7388   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7389 
7390   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7391 <span class="s">}</span>
7392 
7393 <span class="c"># Generate 322 keyset key 296 value as 1/0 indicating its presence/absence or</span>
7394 <span class="c"># count of its presence in a molecule.</span>
7395 <span class="c">#</span>
7396 <span class="c"># Key 296 description: Cl$P</span>
7397 <span class="c">#</span>
<a name="_Generate322KeySetKey296-"></a>7398 <span class="k">sub </span><span class="m">_Generate322KeySetKey296</span> <span class="s">{</span>
7399   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7400   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7401 
7402   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7403 <span class="s">}</span>
7404 
7405 <span class="c"># Generate 322 keyset key 297 value as 1/0 indicating its presence/absence or</span>
7406 <span class="c"># count of its presence in a molecule.</span>
7407 <span class="c">#</span>
7408 <span class="c"># Key 297 description: Cl$F</span>
7409 <span class="c">#</span>
<a name="_Generate322KeySetKey297-"></a>7410 <span class="k">sub </span><span class="m">_Generate322KeySetKey297</span> <span class="s">{</span>
7411   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7412   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7413 
7414   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7415 <span class="s">}</span>
7416 
7417 <span class="c"># Generate 322 keyset key 298 value as 1/0 indicating its presence/absence or</span>
7418 <span class="c"># count of its presence in a molecule.</span>
7419 <span class="c">#</span>
7420 <span class="c"># Key 298 description: Cl$Br</span>
7421 <span class="c">#</span>
<a name="_Generate322KeySetKey298-"></a>7422 <span class="k">sub </span><span class="m">_Generate322KeySetKey298</span> <span class="s">{</span>
7423   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7424   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7425 
7426   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7427 <span class="s">}</span>
7428 
7429 <span class="c"># Generate 322 keyset key 299 value as 1/0 indicating its presence/absence or</span>
7430 <span class="c"># count of its presence in a molecule.</span>
7431 <span class="c">#</span>
7432 <span class="c"># Key 299 description: Cl$Si</span>
7433 <span class="c">#</span>
<a name="_Generate322KeySetKey299-"></a>7434 <span class="k">sub </span><span class="m">_Generate322KeySetKey299</span> <span class="s">{</span>
7435   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7436   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7437 
7438   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7439 <span class="s">}</span>
7440 
7441 <span class="c"># Generate 322 keyset key 300 value as 1/0 indicating its presence/absence or</span>
7442 <span class="c"># count of its presence in a molecule.</span>
7443 <span class="c">#</span>
7444 <span class="c"># Key 300 description: Cl$I</span>
7445 <span class="c">#</span>
<a name="_Generate322KeySetKey300-"></a>7446 <span class="k">sub </span><span class="m">_Generate322KeySetKey300</span> <span class="s">{</span>
7447   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7448   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7449 
7450   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7451 <span class="s">}</span>
7452 
7453 <span class="c"># Generate 322 keyset key 301 value as 1/0 indicating its presence/absence or</span>
7454 <span class="c"># count of its presence in a molecule.</span>
7455 <span class="c">#</span>
7456 <span class="c"># Key 301 description: Cl$X</span>
7457 <span class="c">#</span>
<a name="_Generate322KeySetKey301-"></a>7458 <span class="k">sub </span><span class="m">_Generate322KeySetKey301</span> <span class="s">{</span>
7459   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7460   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7461 
7462   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Cl&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7463 <span class="s">}</span>
7464 
7465 <span class="c"># Generate 322 keyset key 302 value as 1/0 indicating its presence/absence or</span>
7466 <span class="c"># count of its presence in a molecule.</span>
7467 <span class="c">#</span>
7468 <span class="c"># Key 302 description: P$P</span>
7469 <span class="c">#</span>
<a name="_Generate322KeySetKey302-"></a>7470 <span class="k">sub </span><span class="m">_Generate322KeySetKey302</span> <span class="s">{</span>
7471   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7472   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7473 
7474   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7475 <span class="s">}</span>
7476 
7477 <span class="c"># Generate 322 keyset key 303 value as 1/0 indicating its presence/absence or</span>
7478 <span class="c"># count of its presence in a molecule.</span>
7479 <span class="c">#</span>
7480 <span class="c"># Key 303 description: P$F</span>
7481 <span class="c">#</span>
<a name="_Generate322KeySetKey303-"></a>7482 <span class="k">sub </span><span class="m">_Generate322KeySetKey303</span> <span class="s">{</span>
7483   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7484   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7485 
7486   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7487 <span class="s">}</span>
7488 
7489 <span class="c"># Generate 322 keyset key 304 value as 1/0 indicating its presence/absence or</span>
7490 <span class="c"># count of its presence in a molecule.</span>
7491 <span class="c">#</span>
7492 <span class="c"># Key 304 description: P$Br</span>
7493 <span class="c">#</span>
<a name="_Generate322KeySetKey304-"></a>7494 <span class="k">sub </span><span class="m">_Generate322KeySetKey304</span> <span class="s">{</span>
7495   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7496   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7497 
7498   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7499 <span class="s">}</span>
7500 
7501 <span class="c"># Generate 322 keyset key 305 value as 1/0 indicating its presence/absence or</span>
7502 <span class="c"># count of its presence in a molecule.</span>
7503 <span class="c">#</span>
7504 <span class="c"># Key 305 description: P$Si</span>
7505 <span class="c">#</span>
<a name="_Generate322KeySetKey305-"></a>7506 <span class="k">sub </span><span class="m">_Generate322KeySetKey305</span> <span class="s">{</span>
7507   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7508   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7509 
7510   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7511 <span class="s">}</span>
7512 
7513 <span class="c"># Generate 322 keyset key 306 value as 1/0 indicating its presence/absence or</span>
7514 <span class="c"># count of its presence in a molecule.</span>
7515 <span class="c">#</span>
7516 <span class="c"># Key 306 description: P$I</span>
7517 <span class="c">#</span>
<a name="_Generate322KeySetKey306-"></a>7518 <span class="k">sub </span><span class="m">_Generate322KeySetKey306</span> <span class="s">{</span>
7519   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7520   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7521 
7522   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7523 <span class="s">}</span>
7524 
7525 <span class="c"># Generate 322 keyset key 307 value as 1/0 indicating its presence/absence or</span>
7526 <span class="c"># count of its presence in a molecule.</span>
7527 <span class="c">#</span>
7528 <span class="c"># Key 307 description: P$X</span>
7529 <span class="c">#</span>
<a name="_Generate322KeySetKey307-"></a>7530 <span class="k">sub </span><span class="m">_Generate322KeySetKey307</span> <span class="s">{</span>
7531   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7532   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7533 
7534   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;P&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7535 <span class="s">}</span>
7536 
7537 <span class="c"># Generate 322 keyset key 308 value as 1/0 indicating its presence/absence or</span>
7538 <span class="c"># count of its presence in a molecule.</span>
7539 <span class="c">#</span>
7540 <span class="c"># Key 308 description: F$F</span>
7541 <span class="c">#</span>
<a name="_Generate322KeySetKey308-"></a>7542 <span class="k">sub </span><span class="m">_Generate322KeySetKey308</span> <span class="s">{</span>
7543   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7544   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7545 
7546   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7547 <span class="s">}</span>
7548 
7549 <span class="c"># Generate 322 keyset key 309 value as 1/0 indicating its presence/absence or</span>
7550 <span class="c"># count of its presence in a molecule.</span>
7551 <span class="c">#</span>
7552 <span class="c"># Key 309 description: F$Br</span>
7553 <span class="c">#</span>
<a name="_Generate322KeySetKey309-"></a>7554 <span class="k">sub </span><span class="m">_Generate322KeySetKey309</span> <span class="s">{</span>
7555   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7556   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7557 
7558   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7559 <span class="s">}</span>
7560 
7561 <span class="c"># Generate 322 keyset key 310 value as 1/0 indicating its presence/absence or</span>
7562 <span class="c"># count of its presence in a molecule.</span>
7563 <span class="c">#</span>
7564 <span class="c"># Key 310 description: F$Si</span>
7565 <span class="c">#</span>
<a name="_Generate322KeySetKey310-"></a>7566 <span class="k">sub </span><span class="m">_Generate322KeySetKey310</span> <span class="s">{</span>
7567   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7568   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7569 
7570   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7571 <span class="s">}</span>
7572 
7573 <span class="c"># Generate 322 keyset key 311 value as 1/0 indicating its presence/absence or</span>
7574 <span class="c"># count of its presence in a molecule.</span>
7575 <span class="c">#</span>
7576 <span class="c"># Key 311 description: F$I</span>
7577 <span class="c">#</span>
<a name="_Generate322KeySetKey311-"></a>7578 <span class="k">sub </span><span class="m">_Generate322KeySetKey311</span> <span class="s">{</span>
7579   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7580   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7581 
7582   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7583 <span class="s">}</span>
7584 
7585 <span class="c"># Generate 322 keyset key 312 value as 1/0 indicating its presence/absence or</span>
7586 <span class="c"># count of its presence in a molecule.</span>
7587 <span class="c">#</span>
7588 <span class="c"># Key 312 description: F$X</span>
7589 <span class="c">#</span>
<a name="_Generate322KeySetKey312-"></a>7590 <span class="k">sub </span><span class="m">_Generate322KeySetKey312</span> <span class="s">{</span>
7591   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7592   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7593 
7594   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;F&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7595 <span class="s">}</span>
7596 
7597 <span class="c"># Generate 322 keyset key 313 value as 1/0 indicating its presence/absence or</span>
7598 <span class="c"># count of its presence in a molecule.</span>
7599 <span class="c">#</span>
7600 <span class="c"># Key 313 description: Br$Br</span>
7601 <span class="c">#</span>
<a name="_Generate322KeySetKey313-"></a>7602 <span class="k">sub </span><span class="m">_Generate322KeySetKey313</span> <span class="s">{</span>
7603   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7604   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7605 
7606   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7607 <span class="s">}</span>
7608 
7609 <span class="c"># Generate 322 keyset key 314 value as 1/0 indicating its presence/absence or</span>
7610 <span class="c"># count of its presence in a molecule.</span>
7611 <span class="c">#</span>
7612 <span class="c"># Key 314 description: Br$Si</span>
7613 <span class="c">#</span>
<a name="_Generate322KeySetKey314-"></a>7614 <span class="k">sub </span><span class="m">_Generate322KeySetKey314</span> <span class="s">{</span>
7615   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7616   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7617 
7618   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7619 <span class="s">}</span>
7620 
7621 <span class="c"># Generate 322 keyset key 315 value as 1/0 indicating its presence/absence or</span>
7622 <span class="c"># count of its presence in a molecule.</span>
7623 <span class="c">#</span>
7624 <span class="c"># Key 315 description: Br$I</span>
7625 <span class="c">#</span>
<a name="_Generate322KeySetKey315-"></a>7626 <span class="k">sub </span><span class="m">_Generate322KeySetKey315</span> <span class="s">{</span>
7627   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7628   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7629 
7630   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7631 <span class="s">}</span>
7632 
7633 <span class="c"># Generate 322 keyset key 316 value as 1/0 indicating its presence/absence or</span>
7634 <span class="c"># count of its presence in a molecule.</span>
7635 <span class="c">#</span>
7636 <span class="c"># Key 316 description: Br$X</span>
7637 <span class="c">#</span>
<a name="_Generate322KeySetKey316-"></a>7638 <span class="k">sub </span><span class="m">_Generate322KeySetKey316</span> <span class="s">{</span>
7639   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7640   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7641 
7642   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Br&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7643 <span class="s">}</span>
7644 
7645 <span class="c"># Generate 322 keyset key 317 value as 1/0 indicating its presence/absence or</span>
7646 <span class="c"># count of its presence in a molecule.</span>
7647 <span class="c">#</span>
7648 <span class="c"># Key 317 description: Si$Si</span>
7649 <span class="c">#</span>
<a name="_Generate322KeySetKey317-"></a>7650 <span class="k">sub </span><span class="m">_Generate322KeySetKey317</span> <span class="s">{</span>
7651   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7652   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7653 
7654   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7655 <span class="s">}</span>
7656 
7657 <span class="c"># Generate 322 keyset key 318 value as 1/0 indicating its presence/absence or</span>
7658 <span class="c"># count of its presence in a molecule.</span>
7659 <span class="c">#</span>
7660 <span class="c"># Key 318 description: Si$I</span>
7661 <span class="c">#</span>
<a name="_Generate322KeySetKey318-"></a>7662 <span class="k">sub </span><span class="m">_Generate322KeySetKey318</span> <span class="s">{</span>
7663   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7664   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7665 
7666   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7667 <span class="s">}</span>
7668 
7669 <span class="c"># Generate 322 keyset key 319 value as 1/0 indicating its presence/absence or</span>
7670 <span class="c"># count of its presence in a molecule.</span>
7671 <span class="c">#</span>
7672 <span class="c"># Key 319 description: Si$X</span>
7673 <span class="c">#</span>
<a name="_Generate322KeySetKey319-"></a>7674 <span class="k">sub </span><span class="m">_Generate322KeySetKey319</span> <span class="s">{</span>
7675   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7676   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7677 
7678   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Si&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7679 <span class="s">}</span>
7680 
7681 <span class="c"># Generate 322 keyset key 320 value as 1/0 indicating its presence/absence or</span>
7682 <span class="c"># count of its presence in a molecule.</span>
7683 <span class="c">#</span>
7684 <span class="c"># Key 320 description: I$I</span>
7685 <span class="c">#</span>
<a name="_Generate322KeySetKey320-"></a>7686 <span class="k">sub </span><span class="m">_Generate322KeySetKey320</span> <span class="s">{</span>
7687   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7688   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7689 
7690   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7691 <span class="s">}</span>
7692 
7693 <span class="c"># Generate 322 keyset key 321 value as 1/0 indicating its presence/absence or</span>
7694 <span class="c"># count of its presence in a molecule.</span>
7695 <span class="c">#</span>
7696 <span class="c"># Key 321 description: I$X</span>
7697 <span class="c">#</span>
<a name="_Generate322KeySetKey321-"></a>7698 <span class="k">sub </span><span class="m">_Generate322KeySetKey321</span> <span class="s">{</span>
7699   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7700   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7701 
7702   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;I&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7703 <span class="s">}</span>
7704 
7705 <span class="c"># Generate 322 keyset key 322 value as 1/0 indicating its presence/absence or</span>
7706 <span class="c"># count of its presence in a molecule.</span>
7707 <span class="c">#</span>
7708 <span class="c"># Key 322 description: X$X</span>
7709 <span class="c">#</span>
<a name="_Generate322KeySetKey322-"></a>7710 <span class="k">sub </span><span class="m">_Generate322KeySetKey322</span> <span class="s">{</span>
7711   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7712   <span class="k">my</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> = <span class="q">&#39;$&#39;</span><span class="sc">;</span>
7713 
7714   <span class="k">return</span> <span class="i">$This</span><span class="i">-&gt;_DetectBondKeys</span><span class="s">(</span><span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="q">&#39;Z&#39;</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="sc">;</span>
7715 <span class="s">}</span>
7716 
7717 <span class="c"># A : Any valid perodic table elemnet symbol</span>
<a name="_IsAtom-"></a>7718 <span class="k">sub </span><span class="m">_IsAtom</span> <span class="s">{</span>
7719   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7720 
7721   <span class="k">return</span> <span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
7722 <span class="s">}</span>
7723 
7724 <span class="c"># Q  : Hetro atoms; any non-C or non-H atom</span>
<a name="_IsHeteroAtom-"></a>7725 <span class="k">sub </span><span class="m">_IsHeteroAtom</span> <span class="s">{</span>
7726   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7727 
7728   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
7729 <span class="s">}</span>
7730 
7731 <span class="c"># X  : Halogens; F, Cl, Br, I</span>
<a name="_IsHalogenAtom-"></a>7732 <span class="k">sub </span><span class="m">_IsHalogenAtom</span> <span class="s">{</span>
7733   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7734 
7735   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(9|17|35|53)$/</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
7736 <span class="s">}</span>
7737 
7738 <span class="c"># Z  : Others; other than H, C, N, O, Si, P, S, F, Cl, Br, I</span>
<a name="_IsOtherAtom-"></a>7739 <span class="k">sub </span><span class="m">_IsOtherAtom</span> <span class="s">{</span>
7740   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7741 
7742   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomicNumber</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^(1|6|7|8|9|14|15|16|17|35|53)$/</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
7743 <span class="s">}</span>
7744 
7745 <span class="c"># Detect atom keys like Cl, Br and so on...</span>
7746 <span class="c">#</span>
<a name="_DetectAtomKeys-"></a>7747 <span class="k">sub </span><span class="m">_DetectAtomKeys</span> <span class="s">{</span>
7748   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$IsInRing</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7749   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="s">)</span><span class="sc">;</span>
7750 
7751   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
7752   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
7753     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7754       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7755     <span class="s">}</span>
7756     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$IsInRing</span><span class="s">)</span> &amp;&amp; <span class="i">$IsInRing</span> &amp;&amp; !<span class="i">$Atom</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7757       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7758     <span class="s">}</span>
7759     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> <span class="s">{</span>
7760       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7761         <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7762       <span class="s">}</span>
7763     <span class="s">}</span>
7764     <span class="i">$KeyValue</span>++<span class="sc">;</span>
7765     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
7766       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7767     <span class="s">}</span>
7768     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7769       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
7770       <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
7771     <span class="s">}</span>
7772   <span class="s">}</span>
7773   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
7774 <span class="s">}</span>
7775 
7776 <span class="c"># Detect bond keys like S-S, N-O and so on...</span>
7777 <span class="c">#</span>
<a name="_DetectBondKeys-"></a>7778 <span class="k">sub </span><span class="m">_DetectBondKeys</span> <span class="s">{</span>
7779   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7780   <span class="k">my</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="sc">;</span>
7781 
7782   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">0</span><span class="sc">;</span>
7783 
7784   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
7785   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span>
7786     <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7787     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7788       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
7789     <span class="s">}</span>
7790     <span class="i">$KeyValue</span>++<span class="sc">;</span>
7791     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
7792       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
7793     <span class="s">}</span>
7794     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7795       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
7796       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span>
7797     <span class="s">}</span>
7798   <span class="s">}</span>
7799   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
7800 <span class="s">}</span>
7801 
7802 <span class="c"># Detect atom neighborhood keys like ON(C)C, OC(O)O and so on.</span>
7803 <span class="c">#</span>
<a name="_DetectAtomNeighborhoodKeys-"></a>7804 <span class="k">sub </span><span class="m">_DetectAtomNeighborhoodKeys</span> <span class="s">{</span>
7805   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7806   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="s">)</span><span class="sc">;</span>
7807 
7808   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
7809 
7810   <span class="j">CENTRALATOM:</span> <span class="k">for</span> <span class="i">$CentralAtom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
7811     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7812       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
7813     <span class="s">}</span>
7814     <span class="i">$KeyValue</span>++<span class="sc">;</span>
7815     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
7816       <span class="k">next</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
7817     <span class="s">}</span>
7818     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7819       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
7820       <span class="k">last</span> <span class="j">CENTRALATOM</span><span class="sc">;</span>
7821     <span class="s">}</span>
7822   <span class="s">}</span>
7823   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
7824 <span class="s">}</span>
7825 
7826 <span class="c"># Detect bond neighborhood keys like A%Anot%A%A and so on.</span>
7827 <span class="c">#</span>
<a name="_DetectBondNeighborhoodKeys-"></a>7828 <span class="k">sub </span><span class="m">_DetectBondNeighborhoodKeys</span> <span class="s">{</span>
7829   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$BondAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7830   <span class="k">my</span><span class="s">(</span><span class="i">$BondAtomIndex</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="s">)</span><span class="sc">;</span>
7831 
7832   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
7833   <span class="s">(</span><span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$BondAtomMinHydrogenCountRef</span><span class="s">)</span> ? <span class="s">(</span> <span class="i">@</span>{<span class="i">$BondAtomMinHydrogenCountRef</span>} <span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="sc">;</span>
7834 
7835   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
7836   <span class="j">BOND:</span> <span class="k">for</span> <span class="i">$Bond</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}}<span class="s">)</span> <span class="s">{</span>
7837     <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span> = <span class="i">$Bond</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7838 
7839     <span class="c"># Match bond first...</span>
7840     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7841       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtom2</span><span class="s">)</span><span class="sc">;</span>
7842     <span class="s">}</span>
7843     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol1</span><span class="cm">,</span> <span class="i">$BondAtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$BondAtom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$BondAtom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7844       <span class="s">(</span><span class="i">$MatchedBondAtom1</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="s">)</span> = <span class="s">(</span><span class="i">$BondAtom2</span><span class="cm">,</span> <span class="i">$BondAtom1</span><span class="s">)</span><span class="sc">;</span>
7845     <span class="s">}</span>
7846     <span class="k">else</span> <span class="s">{</span>
7847       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
7848     <span class="s">}</span>
7849     <span class="c"># Match neighbors of bonded atoms...</span>
7850     <span class="k">for</span> <span class="i">$BondAtomIndex</span> <span class="s">(</span><span class="n">0</span> .. <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
7851       <span class="i">$MinHydrogenCount</span> = <span class="k">undef</span><span class="sc">;</span>
7852       <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7853 
7854       <span class="k">if</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">0</span><span class="s">)</span> <span class="s">{</span>
7855         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom1</span><span class="sc">;</span>
7856         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol1</span><span class="sc">;</span>
7857         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom2</span><span class="sc">;</span>
7858       <span class="s">}</span>
7859       <span class="k">elsif</span> <span class="s">(</span><span class="i">$BondAtomIndex</span> == <span class="n">1</span><span class="s">)</span> <span class="s">{</span>
7860         <span class="i">$BondAtom</span> = <span class="i">$MatchedBondAtom2</span><span class="sc">;</span>
7861         <span class="i">$BondAtomSymbol</span> = <span class="i">$BondAtomSymbol2</span><span class="sc">;</span>
7862         <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$MatchedBondAtom1</span><span class="sc">;</span>
7863       <span class="s">}</span>
7864 
7865       <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7866       <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7867       <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$BondAtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7868       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$BondAtom</span><span class="cm">,</span> <span class="i">$BondAtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7869         <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
7870       <span class="s">}</span>
7871     <span class="s">}</span>
7872     <span class="i">$KeyValue</span>++<span class="sc">;</span>
7873     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
7874       <span class="k">next</span> <span class="j">BOND</span><span class="sc">;</span>
7875     <span class="s">}</span>
7876     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7877       <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
7878       <span class="k">last</span> <span class="j">BOND</span><span class="sc">;</span>
7879     <span class="s">}</span>
7880   <span class="s">}</span>
7881   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
7882 <span class="s">}</span>
7883 
7884 <span class="c"># Detect extended atom neighborhood keys like QHAQH, QHAAQH, and so on...</span>
7885 <span class="c">#</span>
<a name="_DetectExtendedAtomNeighborhoodKeys-"></a>7886 <span class="k">sub </span><span class="m">_DetectExtendedAtomNeighborhoodKeys</span> <span class="s">{</span>
7887   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtomsSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$MinKeyCount</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7888   <span class="k">my</span><span class="s">(</span><span class="i">$KeyValue</span><span class="cm">,</span> <span class="i">$Molecule</span><span class="cm">,</span> <span class="i">$FirstCentralAtomIndex</span><span class="cm">,</span> <span class="i">$LastCentralAtomIndex</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span>
7889 
7890   <span class="i">$KeyValue</span> = <span class="n">0</span><span class="sc">;</span>
7891 
7892   <span class="i">$Molecule</span> = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7893   <span class="i">$NumOfCentralAtoms</span> = <span class="i">@</span>{<span class="i">$CentralAtomsSymbolsRef</span>}<span class="sc">;</span>
7894   <span class="i">$FirstCentralAtomIndex</span> = <span class="n">0</span><span class="sc">;</span>
7895   <span class="i">$LastCentralAtomIndex</span> = <span class="i">$NumOfCentralAtoms</span> - <span class="n">1</span><span class="sc">;</span>
7896 
7897   <span class="c"># Retrieve first central atom information...</span>
7898   <span class="k">my</span><span class="s">(</span><span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
7899   <span class="i">$FirstCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$FirstCentralAtomIndex</span>]<span class="sc">;</span>
7900   <span class="i">$FirstCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$FirstCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
7901 
7902   <span class="c"># Retrieve last central atom information...</span>
7903   <span class="k">my</span><span class="s">(</span><span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="s">)</span><span class="sc">;</span>
7904   <span class="i">$LastCentralAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$LastCentralAtomIndex</span>]<span class="sc">;</span>
7905   <span class="i">$LastCentralAtomMinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$LastCentralAtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
7906 
7907   <span class="k">my</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$AtomPathRef</span><span class="cm">,</span> <span class="i">$AtomPathsRef</span><span class="cm">,</span> <span class="i">$FirstAtomIndex</span><span class="cm">,</span> <span class="i">$LastAtomIndex</span><span class="cm">,</span> <span class="i">$AtomIndex</span><span class="cm">,</span> <span class="i">$FirstPathAtom</span><span class="cm">,</span> <span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$FirstPathAtomID</span><span class="cm">,</span> <span class="i">$LastPathAtomID</span><span class="cm">,</span> <span class="i">$DetectedPathID</span><span class="cm">,</span> <span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">@NbrAtomSymbols</span><span class="cm">,</span> <span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> <span class="i">%AlreadyDetectedPaths</span><span class="s">)</span><span class="sc">;</span>
7908 
7909   <span class="c"># Go over all the atoms...</span>
7910   <span class="c">#</span>
7911   <span class="j">ATOM:</span> <span class="k">for</span> <span class="i">$Atom</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}}<span class="s">)</span> <span class="s">{</span>
7912     <span class="c"># Match first central atom...</span>
7913     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$FirstCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$FirstCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7914       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7915     <span class="s">}</span>
7916     <span class="c"># Get atom paths starting from matched central atom with length equal to NumOfCentralAtoms...</span>
7917     <span class="c">#</span>
7918     <span class="i">$AtomPathsRef</span> = <span class="i">$Molecule</span><span class="i">-&gt;GetAllAtomPathsStartingAtWithLength</span><span class="s">(</span><span class="i">$Atom</span><span class="cm">,</span> <span class="i">$NumOfCentralAtoms</span><span class="s">)</span><span class="sc">;</span>
7919     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$AtomPathsRef</span><span class="s">)</span> &amp;&amp; <span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7920       <span class="k">next</span> <span class="j">ATOM</span><span class="sc">;</span>
7921     <span class="s">}</span>
7922     <span class="j">ATOMPATH:</span> <span class="k">for</span> <span class="i">$AtomPathRef</span> <span class="s">(</span><span class="i">@</span>{<span class="i">$AtomPathsRef</span>}<span class="s">)</span> <span class="s">{</span>
7923       <span class="i">$FirstAtomIndex</span> = <span class="n">0</span><span class="sc">;</span>
7924       <span class="i">$FirstPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$FirstAtomIndex</span>]<span class="sc">;</span>
7925       <span class="i">$LastAtomIndex</span> = <span class="i">@</span>{<span class="i">$AtomPathRef</span>} - <span class="n">1</span><span class="sc">;</span>
7926       <span class="i">$LastPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$LastAtomIndex</span>]<span class="sc">;</span>
7927 
7928       <span class="c"># Match last central atom to the last atom in path...</span>
7929       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$LastPathAtom</span><span class="cm">,</span> <span class="i">$LastCentralAtomSymbol</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="k">undef</span><span class="cm">,</span> <span class="i">$LastCentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="k">undef</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7930         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
7931       <span class="s">}</span>
7932 
7933       <span class="c"># Match other path atoms with central atoms..</span>
7934       <span class="k">for</span> <span class="i">$AtomIndex</span> <span class="s">(</span><span class="i">$FirstAtomIndex</span> .. <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span>
7935         <span class="i">$PathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
7936         <span class="i">$AtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
7937         <span class="i">$MinHydrogenCount</span> = <span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsMinHydrogenCountRef</span><span class="s">)</span> ? <span class="i">$CentralAtomsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>] <span class="co">:</span> <span class="k">undef</span><span class="sc">;</span>
7938 
7939         <span class="i">@NbrsToExcludeFromMatch</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7940         <span class="k">if</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$FirstAtomIndex</span><span class="s">)</span> <span class="s">{</span>
7941           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="k">undef</span><span class="sc">;</span>
7942           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="sc">;</span>
7943         <span class="s">}</span>
7944         <span class="k">elsif</span> <span class="s">(</span><span class="i">$AtomIndex</span> == <span class="i">$LastAtomIndex</span><span class="s">)</span> <span class="s">{</span>
7945           <span class="i">$NextPathAtom</span> = <span class="k">undef</span><span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span>
7946           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="i">$PreviousPathAtom</span><span class="sc">;</span>
7947         <span class="s">}</span>
7948         <span class="k">else</span> <span class="s">{</span>
7949           <span class="i">$NextPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span> <span class="i">$PreviousPathAtom</span> = <span class="i">$AtomPathRef</span>-&gt;[<span class="i">$AtomIndex</span> - <span class="n">1</span>]<span class="sc">;</span>
7950           <span class="k">push</span> <span class="i">@NbrsToExcludeFromMatch</span><span class="cm">,</span> <span class="s">(</span><span class="i">$PreviousPathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="s">)</span><span class="sc">;</span>
7951         <span class="s">}</span>
7952 
7953         <span class="i">@NbrAtomSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span><span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7954         <span class="i">@NbrBondSymbols</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7955         <span class="i">@NbrMinHydrogenCount</span> = <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="k">defined</span><span class="s">(</span><span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="s">)</span> <span class="s">)</span> ? <span class="i">@</span>{<span class="i">$NbrsMinHydrogenCountRef</span>-&gt;[<span class="i">$AtomIndex</span>]} <span class="co">:</span> <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7956 
7957         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomNeighborhoodMatch</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> \<span class="i">@NbrAtomSymbols</span><span class="cm">,</span> \<span class="i">@NbrBondSymbols</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrMinHydrogenCount</span><span class="cm">,</span> \<span class="i">@NbrsToExcludeFromMatch</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7958           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
7959         <span class="s">}</span>
7960         <span class="c"># Match path bond symbols...</span>
7961         <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$CentralAtomsBondSymbolsRef</span><span class="s">)</span> &amp;&amp; <span class="s">(</span><span class="i">$AtomIndex</span> &lt; <span class="i">$LastAtomIndex</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7962           <span class="i">$NextAtomSymbol</span> = <span class="i">$CentralAtomsSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span> + <span class="n">1</span>]<span class="sc">;</span>
7963           <span class="i">$BondSymbol</span> = <span class="i">$CentralAtomsBondSymbolsRef</span>-&gt;[<span class="i">$AtomIndex</span>]<span class="sc">;</span>
7964           <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
7965           <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$PathAtom</span><span class="cm">,</span> <span class="i">$NextPathAtom</span><span class="cm">,</span> <span class="i">$AtomSymbol</span><span class="cm">,</span> <span class="i">$NextAtomSymbol</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
7966             <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
7967           <span class="s">}</span>
7968         <span class="s">}</span>
7969       <span class="s">}</span>
7970       <span class="c"># Keep track of the first and last atom ID in the matched path to avoid double counting of paths...</span>
7971       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> || !<span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7972         <span class="i">$FirstPathAtomID</span> = <span class="i">$FirstPathAtom</span><span class="i">-&gt;GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span> <span class="i">$LastPathAtomID</span> = <span class="i">$LastPathAtom</span><span class="i">-&gt;GetID</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
7973         <span class="i">$DetectedPathID</span> = <span class="s">(</span><span class="i">$FirstPathAtomID</span> &lt; <span class="i">$LastPathAtomID</span><span class="s">)</span> ? <span class="q">&quot;${FirstPathAtomID}-${LastPathAtomID}&quot;</span> <span class="co">:</span> <span class="q">&quot;${LastPathAtomID}-${FirstPathAtomID}&quot;</span><span class="sc">;</span>
7974         <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>}<span class="s">)</span> <span class="s">{</span>
7975           <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} += <span class="n">1</span><span class="sc">;</span>
7976           <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
7977         <span class="s">}</span>
7978         <span class="i">$AlreadyDetectedPaths</span>{<span class="i">$DetectedPathID</span>} = <span class="n">1</span><span class="sc">;</span>
7979       <span class="s">}</span>
7980 
7981       <span class="i">$KeyValue</span>++<span class="sc">;</span>
7982       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinKeyCount</span><span class="s">)</span> &amp;&amp; <span class="i">$KeyValue</span> &lt; <span class="i">$MinKeyCount</span><span class="s">)</span> <span class="s">{</span>
7983         <span class="k">next</span> <span class="j">ATOMPATH</span><span class="sc">;</span>
7984       <span class="s">}</span>
7985       <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">KeyBits</span>}<span class="s">)</span> <span class="s">{</span>
7986         <span class="i">$KeyValue</span> = <span class="n">1</span><span class="sc">;</span>
7987         <span class="k">last</span> <span class="j">ATOM</span><span class="sc">;</span>
7988       <span class="s">}</span>
7989     <span class="s">}</span>
7990   <span class="s">}</span>
7991   <span class="k">return</span> <span class="i">$KeyValue</span><span class="sc">;</span>
7992 <span class="s">}</span>
7993 
7994 <span class="c"># Go over the atoms attached to central atom and match &#39;em against specified</span>
7995 <span class="c"># neighborhood atom symbol and bond symbols...</span>
7996 <span class="c">#</span>
<a name="_DoesAtomNeighborhoodMatch-"></a>7997 <span class="k">sub </span><span class="m">_DoesAtomNeighborhoodMatch</span> <span class="s">{</span>
7998   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbolsRef</span><span class="cm">,</span> <span class="i">$NbrBondSymbolsRef</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCountRef</span><span class="cm">,</span> <span class="i">$NbrsToExcludeRef</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
7999 
8000   <span class="c"># Match central atom first...</span>
8001   <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8002     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8003   <span class="s">}</span>
8004   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span> <span class="s">{</span>
8005     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$CentralAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8006       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8007     <span class="s">}</span>
8008   <span class="s">}</span>
8009   <span class="k">if</span> <span class="s">(</span>!<span class="k">defined</span> <span class="i">$NbrAtomSymbolsRef</span><span class="s">)</span> <span class="s">{</span>
8010     <span class="c"># No neighbors to match...</span>
8011     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
8012   <span class="s">}</span>
8013 
8014   <span class="c"># Match neighbors...</span>
8015   <span class="k">my</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$Index</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="cm">,</span> <span class="i">$NbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MinNbrAtomMatchCount</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">%NbrAtomAlreadyMatchedMap</span><span class="s">)</span><span class="sc">;</span>
8016 
8017   <span class="i">$MinNbrAtomMatchCount</span> = <span class="i">@$NbrAtomSymbolsRef</span><span class="sc">;</span>
8018   <span class="k">if</span> <span class="s">(</span>!<span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span>
8019     <span class="c"># No neighbors to match...</span>
8020     <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
8021   <span class="s">}</span>
8022 
8023   <span class="i">$NbrAtomMatchCount</span> = <span class="n">0</span><span class="sc">;</span>
8024 
8025   <span class="i">%NbrAtomAlreadyMatchedMap</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8026   <span class="i">$MatchSpecifiedAtomOrder</span> = <span class="n">1</span><span class="sc">;</span>
8027 
8028   <span class="i">@CentralAtomNeighbors</span> = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8029   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrsToExcludeRef</span><span class="s">)</span> &amp;&amp; <span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span> <span class="s">{</span>
8030     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">-&gt;GetNeighbors</span><span class="s">(</span><span class="i">@</span>{<span class="i">$NbrsToExcludeRef</span>}<span class="s">)</span><span class="sc">;</span>
8031   <span class="s">}</span>
8032   <span class="k">else</span> <span class="s">{</span>
8033     <span class="k">push</span> <span class="i">@CentralAtomNeighbors</span><span class="cm">,</span> <span class="i">$CentralAtom</span><span class="i">-&gt;GetNeighbors</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8034   <span class="s">}</span>
8035 
8036   <span class="j">NBRATOM:</span> <span class="k">for</span> <span class="i">$NbrAtom</span> <span class="s">(</span><span class="i">@CentralAtomNeighbors</span><span class="s">)</span> <span class="s">{</span>
8037     <span class="j">NBRATOMSYMBOL:</span> <span class="k">for</span> <span class="i">$Index</span> <span class="s">(</span><span class="n">0</span> .. <span class="s">(</span><span class="i">$MinNbrAtomMatchCount</span> - <span class="n">1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8038       <span class="k">if</span> <span class="s">(</span><span class="k">exists</span> <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>}<span class="s">)</span> <span class="s">{</span>
8039         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
8040       <span class="s">}</span>
8041       <span class="i">$NbrAtomSymbol</span> = <span class="i">$NbrAtomSymbolsRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
8042       <span class="i">$NbrBondSymbol</span> = <span class="i">$NbrBondSymbolsRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
8043       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoBondAtomsMatchBondSymbols</span><span class="s">(</span><span class="i">$CentralAtom</span><span class="cm">,</span> <span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$CentralAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrAtomSymbol</span><span class="cm">,</span> <span class="i">$NbrBondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8044         <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
8045       <span class="s">}</span>
8046 
8047       <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$NbrAtomMinHydrogenCountRef</span><span class="s">)</span> &amp;&amp; <span class="i">$NbrAtomMinHydrogenCountRef</span>-&gt;[<span class="i">$Index</span>]<span class="s">)</span> <span class="s">{</span>
8048         <span class="i">$NbrAtomMinHydrogenCount</span> = <span class="i">$NbrAtomMinHydrogenCountRef</span>-&gt;[<span class="i">$Index</span>]<span class="sc">;</span>
8049         <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$NbrAtom</span><span class="cm">,</span> <span class="i">$NbrAtomMinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8050           <span class="k">next</span> <span class="j">NBRATOMSYMBOL</span><span class="sc">;</span>
8051         <span class="s">}</span>
8052       <span class="s">}</span>
8053       <span class="i">$NbrAtomAlreadyMatchedMap</span>{<span class="i">$Index</span>} = <span class="i">$Index</span><span class="sc">;</span>
8054       <span class="i">$NbrAtomMatchCount</span>++<span class="sc">;</span>
8055 
8056       <span class="k">if</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> <span class="s">{</span>
8057         <span class="k">last</span> <span class="j">NBRATOM</span><span class="sc">;</span>
8058       <span class="s">}</span>
8059       <span class="k">next</span> <span class="j">NBRATOM</span><span class="sc">;</span>
8060     <span class="s">}</span>
8061   <span class="s">}</span>
8062 
8063   <span class="k">return</span> <span class="s">(</span><span class="i">$NbrAtomMatchCount</span> == <span class="i">$MinNbrAtomMatchCount</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
8064 <span class="s">}</span>
8065 
8066 <span class="c"># Checks whether bond atoms match bond symbols...</span>
8067 <span class="c">#</span>
<a name="_DoBondAtomsMatchBondSymbols-"></a>8068 <span class="k">sub </span><span class="m">_DoBondAtomsMatchBondSymbols</span> <span class="s">{</span>
8069   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="cm">,</span> <span class="i">$MatchSpecifiedAtomOrder</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8070   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$ReverseMinHydrogenCountMatch</span><span class="s">)</span><span class="sc">;</span>
8071 
8072   <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span>
8073 
8074   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> &amp;&amp; <span class="i">$MatchSpecifiedAtomOrder</span><span class="s">)</span> <span class="s">{</span>
8075     <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8076       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8077     <span class="s">}</span>
8078   <span class="s">}</span>
8079   <span class="k">else</span> <span class="s">{</span>
8080     <span class="k">if</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8081       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">0</span><span class="sc">;</span>
8082     <span class="s">}</span>
8083     <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$AtomSymbol2</span><span class="s">)</span> &amp;&amp; <span class="i">$This</span><span class="i">-&gt;_DoesAtomMatchesSymbol</span><span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$AtomSymbol1</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8084       <span class="i">$ReverseMinHydrogenCountMatch</span> = <span class="n">1</span><span class="sc">;</span>
8085     <span class="s">}</span>
8086     <span class="k">else</span> <span class="s">{</span>
8087       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8088     <span class="s">}</span>
8089   <span class="s">}</span>
8090 
8091   <span class="c"># Match any hydrogen count...</span>
8092   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span> || <span class="k">defined</span><span class="s">(</span><span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8093     <span class="k">my</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span><span class="sc">;</span>
8094 
8095     <span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$MinHydrogenCountMatchAtom2</span><span class="s">)</span> = <span class="i">$ReverseMinHydrogenCountMatch</span> ? <span class="s">(</span><span class="i">$Atom2</span><span class="cm">,</span> <span class="i">$Atom1</span><span class="s">)</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Atom1</span><span class="cm">,</span> <span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span>
8096     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom1MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span>
8097       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom1</span><span class="cm">,</span> <span class="i">$Atom1MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8098         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8099       <span class="s">}</span>
8100     <span class="s">}</span>
8101     <span class="k">if</span> <span class="s">(</span><span class="k">defined</span> <span class="i">$Atom2MinHydrogenCount</span> <span class="s">)</span> <span class="s">{</span>
8102       <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesAtomMinHydrogenCountMatch</span><span class="s">(</span><span class="i">$MinHydrogenCountMatchAtom2</span><span class="cm">,</span> <span class="i">$Atom2MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8103         <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8104       <span class="s">}</span>
8105     <span class="s">}</span>
8106   <span class="s">}</span>
8107 
8108   <span class="k">if</span> <span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$BondSymbol</span><span class="s">)</span> &amp;&amp; <span class="i">$BondSymbol</span><span class="s">)</span> <span class="s">{</span>
8109     <span class="k">my</span><span class="s">(</span><span class="i">$Bond</span><span class="s">)</span><span class="sc">;</span>
8110     <span class="i">$Bond</span> = <span class="i">$Atom1</span><span class="i">-&gt;GetBondToAtom</span><span class="s">(</span><span class="i">$Atom2</span><span class="s">)</span><span class="sc">;</span>
8111     <span class="k">if</span> <span class="s">(</span>!<span class="i">$This</span><span class="i">-&gt;_DoesBondMatchesSymbol</span><span class="s">(</span><span class="i">$Bond</span><span class="cm">,</span> <span class="i">$BondSymbol</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8112       <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8113     <span class="s">}</span>
8114   <span class="s">}</span>
8115   <span class="k">return</span> <span class="n">1</span><span class="sc">;</span>
8116 <span class="s">}</span>
8117 
8118 <span class="c"># Match both implicit and explicit hydrogens on central atom...</span>
<a name="_DoesAtomMinHydrogenCountMatch-"></a>8119 <span class="k">sub </span><span class="m">_DoesAtomMinHydrogenCountMatch</span> <span class="s">{</span>
8120   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$MinHydrogenCount</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8121 
8122   <span class="k">if</span> <span class="s">(</span>!<span class="s">(</span><span class="k">defined</span><span class="s">(</span><span class="i">$MinHydrogenCount</span><span class="s">)</span> &amp;&amp; <span class="i">$MinHydrogenCount</span><span class="s">)</span><span class="s">)</span> <span class="s">{</span>
8123     <span class="k">return</span> <span class="n">0</span><span class="sc">;</span>
8124   <span class="s">}</span>
8125   <span class="k">return</span> <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetNumOfHydrogens</span><span class="s">(</span><span class="s">)</span> &lt;  <span class="i">$MinHydrogenCount</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span>
8126 <span class="s">}</span>
8127 
8128 <span class="c"># Checks whether atom matches supported symbol...</span>
8129 <span class="c">#</span>
<a name="_DoesAtomMatchesSymbol-"></a>8130 <span class="k">sub </span><span class="m">_DoesAtomMatchesSymbol</span> <span class="s">{</span>
8131   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Atom</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8132   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="s">)</span><span class="sc">;</span>
8133 
8134   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
8135   <span class="j">SYMBOL:</span> <span class="s">{</span>
8136     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Q$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsHeteroAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8137     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^X$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsHalogenAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8138     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^Z$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsOtherAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8139     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^A$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$This</span><span class="i">-&gt;_IsAtom</span><span class="s">(</span><span class="i">$Atom</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8140     <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Atom</span><span class="i">-&gt;GetAtomSymbol</span><span class="s">(</span><span class="s">)</span> =~ <span class="q">/^$Symbol$/i</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span>
8141   <span class="s">}</span>
8142   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span>
8143 <span class="s">}</span>
8144 
8145 <span class="c"># Checks whether bond matches supported symbol...</span>
8146 <span class="c">#</span>
<a name="_DoesBondMatchesSymbol-"></a>8147 <span class="k">sub </span><span class="m">_DoesBondMatchesSymbol</span> <span class="s">{</span>
8148   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="cm">,</span> <span class="i">$Bond</span><span class="cm">,</span> <span class="i">$Symbol</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8149   <span class="k">my</span><span class="s">(</span><span class="i">$Status</span><span class="cm">,</span> <span class="i">$BondOrder</span><span class="s">)</span><span class="sc">;</span>
8150 
8151   <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
8152   <span class="j">SYMBOL:</span> <span class="s">{</span>
8153     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1|-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8154     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(2|=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8155     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(3|#|T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8156     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(1.5|%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8157 
8158     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\~$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> || <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8159 
8160     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\$$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8161     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^\!$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8162 
8163     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8164     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8165     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(\$#|\$T)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsInRing</span><span class="s">(</span><span class="s">)</span> &amp;&amp; <span class="i">$Bond</span><span class="i">-&gt;IsTriple</span><span class="s">(</span><span class="s">)</span><span class="s">)</span> ? <span class="n">1</span> <span class="co">:</span> <span class="n">0</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8166 
8167     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8168     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not-)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsSingle</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8169     <span class="k">if</span> <span class="s">(</span><span class="i">$Symbol</span> =~ <span class="q">/^(not%not=)$/i</span><span class="s">)</span> <span class="s">{</span> <span class="i">$Status</span> = <span class="i">$Bond</span><span class="i">-&gt;IsAromatic</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="s">(</span><span class="i">$Bond</span><span class="i">-&gt;IsDouble</span><span class="s">(</span><span class="s">)</span> ? <span class="n">0</span> <span class="co">:</span> <span class="n">1</span><span class="s">)</span><span class="sc">;</span> <span class="k">last</span> <span class="j">SYMBOL</span><span class="sc">;</span> <span class="s">}</span>
8170 
8171     <span class="i">$Status</span> = <span class="n">0</span><span class="sc">;</span>
8172   <span class="s">}</span>
8173   <span class="k">return</span> <span class="i">$Status</span><span class="sc">;</span>
8174 <span class="s">}</span>
8175 
8176 <span class="c"># Cache  appropriate molecule data...</span>
8177 <span class="c">#</span>
<a name="_SetupMoleculeDataCache-"></a>8178 <span class="k">sub </span><span class="m">_SetupMoleculeDataCache</span> <span class="s">{</span>
8179   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8180 
8181   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}} = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">-&gt;GetAtoms</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8182   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}} = <span class="i">$This</span><span class="i">-&gt;GetMolecule</span><span class="s">(</span><span class="s">)</span><span class="i">-&gt;GetBonds</span><span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8183 
8184   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
8185 <span class="s">}</span>
8186 
8187 <span class="c"># Clear cached molecule data...</span>
8188 <span class="c">#</span>
<a name="_ClearMoleculeDataCache-"></a>8189 <span class="k">sub </span><span class="m">_ClearMoleculeDataCache</span> <span class="s">{</span>
8190   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8191 
8192   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Atoms</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8193   <span class="i">@</span>{<span class="i">$This</span>-&gt;{<span class="w">Bonds</span>}} = <span class="s">(</span><span class="s">)</span><span class="sc">;</span>
8194 
8195   <span class="k">return</span> <span class="i">$This</span><span class="sc">;</span>
8196 <span class="s">}</span>
8197 
8198 <span class="c"># Return a string containg data for MACCSKeys object...</span>
<a name="StringifyMACCSKeys-"></a>8199 <span class="k">sub </span><span class="m">StringifyMACCSKeys</span> <span class="s">{</span>
8200   <span class="k">my</span><span class="s">(</span><span class="i">$This</span><span class="s">)</span> = <span class="i">@_</span><span class="sc">;</span>
8201   <span class="k">my</span><span class="s">(</span><span class="i">$MACCSKeysString</span><span class="s">)</span><span class="sc">;</span>
8202 
8203   <span class="c"># Type of Keys...</span>
8204   <span class="i">$MACCSKeysString</span> = <span class="q">&quot;Type: $This-&gt;{Type}; Size: $This-&gt;{Size}&quot;</span><span class="sc">;</span>
8205 
8206   <span class="k">if</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyBits$/i</span><span class="s">)</span> <span class="s">{</span>
8207     <span class="i">$MACCSKeysString</span> .= <span class="q">&quot;; FingerprintsBitVector: &lt; $This-&gt;{FingerprintsBitVector} &gt;&quot;</span><span class="sc">;</span>
8208   <span class="s">}</span>
8209   <span class="k">elsif</span> <span class="s">(</span><span class="i">$This</span>-&gt;{<span class="w">Type</span>} =~ <span class="q">/^MACCSKeyCount$/i</span><span class="s">)</span> <span class="s">{</span>
8210     <span class="i">$MACCSKeysString</span> .= <span class="q">&quot;; FingerprintsVector: &lt; $This-&gt;{FingerprintsVector} &gt;&quot;</span><span class="sc">;</span>
8211   <span class="s">}</span>
8212 
8213   <span class="k">return</span> <span class="i">$MACCSKeysString</span><span class="sc">;</span>
8214 <span class="s">}</span>
8215 
<a name="EOF-"></a></pre>
<p>&nbsp;</p>
<br />
<center>
<img src="../../../images/h2o2.png">
</center>
</body>
</html>