comparison mayachemtools/docs/modules/html/Atom.html @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:73ae111cf86f
1 <html>
2 <head>
3 <title>MayaChemTools:Documentation:Atom.pm</title>
4 <meta http-equiv="content-type" content="text/html;charset=utf-8">
5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css">
6 </head>
7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10">
8 <br/>
9 <center>
10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a>
11 </center>
12 <br/>
13 <div class="DocNav">
14 <table width="100%" border=0 cellpadding=0 cellspacing=2>
15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./AminoAcids.html" title="AminoAcids.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./AtomicDescriptors.html" title="AtomicDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>Atom.pm</strong></td><td width="33%" align="right"><a href="././code/Atom.html" title="View source code">Code</a>&nbsp;|&nbsp;<a href="./../pdf/Atom.pdf" title="PDF US Letter Size">PDF</a>&nbsp;|&nbsp;<a href="./../pdfgreen/Atom.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a>&nbsp;|&nbsp;<a href="./../pdfa4/Atom.pdf" title="PDF A4 Size">PDFA4</a>&nbsp;|&nbsp;<a href="./../pdfa4green/Atom.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr>
16 </table>
17 </div>
18 <p>
19 </p>
20 <h2>NAME</h2>
21 <p>Atom</p>
22 <p>
23 </p>
24 <h2>SYNOPSIS</h2>
25 <p>use Atom;</p>
26 <p>
27 </p>
28 <h2>DESCRIPTION</h2>
29 <p><strong>Atom</strong> class provides the following methods:</p>
30 <p> <a href="#new">new</a>, <a href="#addhydrogens">AddHydrogens</a>, <a href="#copy">Copy</a>, <a href="#deleteatom">DeleteAtom</a>, <a href="#deletehydrogens">DeleteHydrogens</a>, <a href="#doesatomneighborhoodmatch">DoesAtomNeighborhoodMatch</a>
31 , <a href="#getatomicinvariantvalue">GetAtomicInvariantValue</a>, <a href="#getatomicweight">GetAtomicWeight</a>, <a href="#getbondtoatom">GetBondToAtom</a>, <a href="#getbonds">GetBonds</a>
32 , <a href="#getbondstoheavyatoms">GetBondsToHeavyAtoms</a>, <a href="#getbondstohydrogenatoms">GetBondsToHydrogenAtoms</a>, <a href="#getbondstononhydrogenatoms">GetBondsToNonHydrogenAtoms</a>
33 , <a href="#getexactmass">GetExactMass</a>, <a href="#getexplicithydrogens">GetExplicitHydrogens</a>, <a href="#getformalcharge">GetFormalCharge</a>, <a href="#getfreeradicalelectrons">GetFreeRadicalElectrons</a>
34 , <a href="#getgroupnumber">GetGroupNumber</a>, <a href="#getheavyatomneighbors">GetHeavyAtomNeighbors</a>, <a href="#getheavyatomneighborsatominformation">GetHeavyAtomNeighborsAtomInformation</a>
35 , <a href="#getheavyatomneighborsbondformation">GetHeavyAtomNeighborsBondformation</a>, <a href="#gethighestcommonvalence">GetHighestCommonValence</a>
36 , <a href="#gethydrogenatomneighbors">GetHydrogenAtomNeighbors</a>, <a href="#gethydrogens">GetHydrogens</a>, <a href="#getimplicithydrogens">GetImplicitHydrogens</a>, <a href="#getlargestbondorder">GetLargestBondOrder</a>
37 , <a href="#getlargestbondordertoheavyatoms">GetLargestBondOrderToHeavyAtoms</a>, <a href="#getlargestbondordertononhydrogenatoms">GetLargestBondOrderToNonHydrogenAtoms</a>
38 , <a href="#getlargestring">GetLargestRing</a>, <a href="#getlowestcommonvalence">GetLowestCommonValence</a>, <a href="#getmassnumber">GetMassNumber</a>, <a href="#getmissinghydrogens">GetMissingHydrogens</a>
39 , <a href="#getneighbors">GetNeighbors</a>, <a href="#getneighborsusingatomspecification">GetNeighborsUsingAtomSpecification</a>, <a href="#getnonhydrogenatomneighbors">GetNonHydrogenAtomNeighbors</a>
40 , <a href="#getnonhydrogenatomneighborsatominformation">GetNonHydrogenAtomNeighborsAtomInformation</a>
41 , <a href="#getnonhydrogenatomneighborsbondinformation">GetNonHydrogenAtomNeighborsBondInformation</a>, <a href="#getnonhydrogenneighborofhydrogenatom">GetNonHydrogenNeighborOfHydrogenAtom</a>
42 , <a href="#getnumofaromaticbondstoheavyatoms">GetNumOfAromaticBondsToHeavyAtoms</a>, <a href="#getnumofaromaticbondstononhydrogenatoms">GetNumOfAromaticBondsToNonHydrogenAtoms</a>
43 , <a href="#getnumofbondtypestoheavyatoms">GetNumOfBondTypesToHeavyAtoms</a>, <a href="#getnumofbondtypestononhydrogenatoms">GetNumOfBondTypesToNonHydrogenAtoms</a>, <a href="#getnumofbonds">GetNumOfBonds</a>
44 , <a href="#getnumofbondstoheavyatoms">GetNumOfBondsToHeavyAtoms</a>, <a href="#getnumofbondstohydrogenatoms">GetNumOfBondsToHydrogenAtoms</a>
45 , <a href="#getnumofbondstononhydrogenatoms">GetNumOfBondsToNonHydrogenAtoms</a>, <a href="#getnumofdoublebondstoheavyatoms">GetNumOfDoubleBondsToHeavyAtoms</a>
46 , <a href="#getnumofbondsavailableforheavyatoms">GetNumOfBondsAvailableForHeavyAtoms</a>, <a href="#getnumofbondsavailablefornonhydrogenatoms">GetNumOfBondsAvailableForNonHydrogenAtoms</a>
47 , <a href="#getnumofdoublebondstononhydrogenatoms">GetNumOfDoubleBondsToNonHydrogenAtoms</a>, <a href="#getnumofexplicithydrogens">GetNumOfExplicitHydrogens</a>
48 , <a href="#getnumofheavyatomneighbors">GetNumOfHeavyAtomNeighbors</a>, <a href="#getnumofhydrogenatomneighbors">GetNumOfHydrogenAtomNeighbors</a>, <a href="#getnumofhydrogens">GetNumOfHydrogens</a>
49 , <a href="#getnumofimplicithydrogens">GetNumOfImplicitHydrogens</a>, <a href="#getnumofmissinghydrogens">GetNumOfMissingHydrogens</a>, <a href="#getnumofneighbors">GetNumOfNeighbors</a>
50 , <a href="#getnumofnonhydrogenatomneighbors">GetNumOfNonHydrogenAtomNeighbors</a>, <a href="#getnumofrings">GetNumOfRings</a>, <a href="#getnumofringswithevensize">GetNumOfRingsWithEvenSize</a>
51 , <a href="#getnumofringswithoddsize">GetNumOfRingsWithOddSize</a>, <a href="#getnumofringswithsize">GetNumOfRingsWithSize</a>, <a href="#getnumofringswithsizegreaterthan">GetNumOfRingsWithSizeGreaterThan</a>
52 , <a href="#getnumofringswithsizelessthan">GetNumOfRingsWithSizeLessThan</a>, <a href="#getnumofsigmaandpibondstoheavyatoms">GetNumOfSigmaAndPiBondsToHeavyAtoms</a>
53 , <a href="#getnumofsigmaandpibondstononhydrogenatoms">GetNumOfSigmaAndPiBondsToNonHydrogenAtoms</a>, <a href="#getnumofsinglebondstoheavyatoms">GetNumOfSingleBondsToHeavyAtoms</a>
54 , <a href="#getnumofsinglebondstononhydrogenatoms">GetNumOfSingleBondsToNonHydrogenAtoms</a>, <a href="#getnumoftriplebondstoheavyatoms">GetNumOfTripleBondsToHeavyAtoms</a>
55 , <a href="#getnumoftriplebondstononhydrogenatoms">GetNumOfTripleBondsToNonHydrogenAtoms</a>, <a href="#getperiodnumber">GetPeriodNumber</a>
56 , <a href="#getpotentialtotalcommonvalence">GetPotentialTotalCommonValence</a>, <a href="#getrings">GetRings</a>, <a href="#getringswithevensize">GetRingsWithEvenSize</a>
57 , <a href="#getringswithoddsize">GetRingsWithOddSize</a>, <a href="#getringswithsize">GetRingsWithSize</a>, <a href="#getringswithsizegreaterthan">GetRingsWithSizeGreaterThan</a>
58 , <a href="#getringswithsizelessthan">GetRingsWithSizeLessThan</a>, <a href="#getsizeoflargestring">GetSizeOfLargestRing</a>, <a href="#getsizeofsmallestring">GetSizeOfSmallestRing</a>
59 , <a href="#getsmallestring">GetSmallestRing</a>, <a href="#getspinmultiplicity">GetSpinMultiplicity</a>, <a href="#getsumofbondorders">GetSumOfBondOrders</a>
60 , <a href="#getsumofbondorderstoheavyatoms">GetSumOfBondOrdersToHeavyAtoms</a>, <a href="#getsumofbondorderstohydrogenatoms">GetSumOfBondOrdersToHydrogenAtoms</a>
61 , <a href="#getsumofbondorderstononhydrogenatoms">GetSumOfBondOrdersToNonHydrogenAtoms</a>, <a href="#getvalence">GetValence</a>, <a href="#getvalenceelectrons">GetValenceElectrons</a>
62 , <a href="#getvalencefreeelectrons">GetValenceFreeElectrons</a>, <a href="#getx">GetX</a>, <a href="#getxyz">GetXYZ</a>, <a href="#getxyzvector">GetXYZVector</a>, <a href="#gety">GetY</a>, <a href="#getz">GetZ</a>, <a href="#isamidecarbon">IsAmideCarbon</a>
63 , <a href="#isamidenitrogen">IsAmideNitrogen</a>, <a href="#isaromatic">IsAromatic</a>, <a href="#isarsenic">IsArsenic</a>, <a href="#isbondedtoatom">IsBondedToAtom</a>, <a href="#isbromine">IsBromine</a>, <a href="#iscarbon">IsCarbon</a>, <a href="#iscarboxylcarbon">IsCarboxylCarbon</a>
64 , <a href="#iscarboxyloxygen">IsCarboxylOxygen</a>, <a href="#iscarboxylatecarbon">IsCarboxylateCarbon</a>, <a href="#iscarboxylateoxygen">IsCarboxylateOxygen</a>, <a href="#ischlorine">IsChlorine</a>
65 , <a href="#isfluorine">IsFluorine</a>, <a href="#isfunctionalclasstype">IsFunctionalClassType</a>, <a href="#isguadiniumcarbon">IsGuadiniumCarbon</a>, <a href="#isguadiniumnitrogen">IsGuadiniumNitrogen</a>
66 , <a href="#ishbondacceptor">IsHBondAcceptor</a>, <a href="#ishbonddonor">IsHBondDonor</a>, <a href="#ishalogen">IsHalogen</a>, <a href="#isheteroatom">IsHeteroAtom</a>, <a href="#ishydrogen">IsHydrogen</a>
67 , <a href="#ishydrogenbondacceptor">IsHydrogenBondAcceptor</a>, <a href="#ishydrogenbonddonor">IsHydrogenBondDonor</a>, <a href="#ishydrophobic">IsHydrophobic</a>, <a href="#isinring">IsInRing</a>
68 , <a href="#isinringofsize">IsInRingOfSize</a>, <a href="#isiodine">IsIodine</a>, <a href="#isisotope">IsIsotope</a>, <a href="#islipophilic">IsLipophilic</a>, <a href="#ismetallic">IsMetallic</a>
69 , <a href="#isnegativelyionizable">IsNegativelyIonizable</a>, <a href="#isnitrogen">IsNitrogen</a>, <a href="#isnoncarbonorhydrogen">IsNonCarbonOrHydrogen</a>, <a href="#isnotinring">IsNotInRing</a>
70 , <a href="#isonlyinonering">IsOnlyInOneRing</a>, <a href="#isoxygen">IsOxygen</a>, <a href="#isphosphateoxygen">IsPhosphateOxygen</a>, <a href="#isphosphatephosphorus">IsPhosphatePhosphorus</a>, <a href="#isphosphorus">IsPhosphorus</a>
71 , <a href="#ispolaratom">IsPolarAtom</a>, <a href="#ispolarhydrogen">IsPolarHydrogen</a>, <a href="#ispositivelyionizable">IsPositivelyIonizable</a>, <a href="#issaturated">IsSaturated</a>, <a href="#isselenium">IsSelenium</a>
72 , <a href="#issilicon">IsSilicon</a>, <a href="#isstereocenter">IsStereoCenter</a>, <a href="#issulfur">IsSulfur</a>, <a href="#issulphur">IsSulphur</a>, <a href="#istellurium">IsTellurium</a>, <a href="#isterminal">IsTerminal</a>
73 , <a href="#istopologicalpharmacophoretype">IsTopologicalPharmacophoreType</a>, <a href="#isunsaturated">IsUnsaturated</a>, <a href="#setatomsymbol">SetAtomSymbol</a>, <a href="#setatomicnumber">SetAtomicNumber</a>
74 , <a href="#setexplicithydrogens">SetExplicitHydrogens</a>, <a href="#setmassnumber">SetMassNumber</a>, <a href="#setstereocenter">SetStereoCenter</a>, <a href="#setstereochemistry">SetStereochemistry</a>
75 , <a href="#setx">SetX</a>, <a href="#setxyz">SetXYZ</a>, <a href="#sety">SetY</a>, <a href="#setz">SetZ</a>, <a href="#stringifyatom">StringifyAtom</a>
76 </p><p><strong>Atom</strong> class is derived from <strong>ObjectProperty</strong> base class which provides methods not explicitly
77 defined in <strong>Atom</strong> or <strong>ObjectProperty</strong> class using Perl's AUTOLOAD functionality. These methods
78 are generated on-the-fly for a specified object property:</p>
79 <div class="OptionsBox">
80 Set&lt;PropertyName&gt;(&lt;PropertyValue&gt;);
81 <br/> $PropertyValue = Get&lt;PropertyName&gt;();
82 <br/> Delete&lt;PropertyName&gt;();</div>
83 <p>
84 </p>
85 <h2>METHODS</h2>
86 <dl>
87 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt>
88 <dd>
89 <div class="OptionsBox">
90 $NewAtom = new Atom([%PropertyNameAndValues]);</div>
91 <p>Using specified <em>Atom</em> property names and values hash, <strong>new</strong> method creates a new object
92 and returns a reference to newly created <strong>Atom</strong> object. By default, following properties are
93 initialized:</p>
94 <div class="OptionsBox">
95 ID = SequentialObjectID
96 <br/> Name = &quot;Atom &lt;SequentialObjectID&gt;&quot;
97 <br/> AtomSymbol = &quot;&quot;
98 <br/> AtomicNumber = 0
99 <br/> XYZ = ZeroVector</div>
100 <p>Except for <em>ID</em> property, all other default properties and other additional properties can
101 be set during invocation of this method.</p>
102 <p>Examples:</p>
103 <div class="OptionsBox">
104 $Atom = new Atom();
105 <br/> $CarbonAtom = new Atom('AtomSymbol' =&gt; 'C', 'XYZ' =&gt; (0.0, 1.0,
106 0.0));
107 <br/> $OxygenAtom = new Atom('AtomName' =&gt; 'Oxygen', AtomSymbol' =&gt; 'O',
108 'XYZ' =&gt; (1.0, 1.0, 1.0));</div>
109 </dd>
110 <dt><strong><a name="addhydrogens" class="item"><strong>AddHydrogens</strong></a></strong></dt>
111 <dd>
112 <div class="OptionsBox">
113 $NumOfHydrogensAdded = $Atom-&gt;AddHydrogens();</div>
114 <p>Adds hydrogens to an <strong>Atom</strong> present in a <strong>Molecule</strong> object and returns
115 the number of added hydrogens. The current release of MayaChemTools doesn't
116 assign hydrogen positions.</p>
117 </dd>
118 <dt><strong><a name="copy" class="item"><strong>Copy</strong></a></strong></dt>
119 <dd>
120 <div class="OptionsBox">
121 $AtomCopy = $Atom-&gt;Copy();</div>
122 <p>Copy <em>Atom</em> and its associated data using <strong>Storable::dclone</strong> and return a new
123 <strong>Atom</strong> object.</p>
124 </dd>
125 <dt><strong><a name="deleteatom" class="item"><strong>DeleteAtom</strong></a></strong></dt>
126 <dd>
127 <div class="OptionsBox">
128 $Atom-&gt;DeleteAtom();</div>
129 <p>Delete <em>Atom</em> from a molecule.</p>
130 </dd>
131 <dt><strong><a name="doesatomneighborhoodmatch" class="item"><strong>DoesAtomNeighborhoodMatch</strong></a></strong></dt>
132 <dd>
133 <div class="OptionsBox">
134 $Status = $Atom-&gt;DoesAtomNeighborhoodMatch($CentralAtomSpec);
135 <br/> $Status = $Atom-&gt;DoesAtomNeighborhoodMatch($CentralAtomSpec,
136 $NbrAtomSpecsRef);
137 <br/> $Status = $Atom-&gt;DoesAtomNeighborhoodMatch($CentralAtomSpec,
138 $NbrAtomSpecsRef, $AllowedNbrBondSpecsRef);
139 <br/> $Status = $Atom-&gt;DoesAtomNeighborhoodMatch($CentralAtomSpec,
140 $NbrAtomSpecsRef, $NbrBondSpecsRef,
141 $AllowedNbrOfNbrAtomSpecsRef);</div>
142 <p>Returns 1 or 0 based on whether atom matches central atom and its neighborhood
143 using specified atom and bonds specifications. Neighborhood atom and bond specifications
144 are specified as array references containing neighbor atom and bond specifications.</p>
145 <p>Let:</p>
146 <div class="OptionsBox">
147 AS = Atom symbol corresponding to element symbol, atomic number (#n)
148 or any atom (A)</div>
149 <div class="OptionsBox">
150 X&lt;n&gt; = Number of non-hydrogen atom neighbors or heavy atoms
151 attached to atom
152 <br/> T&lt;n&gt; = Total number of atom neighbors including implicit and explicit
153 hydrogens
154 <br/> BO&lt;n&gt; = Sum of bond orders to non-hydrogen atom neighbors or heavy
155 atoms attached to atom
156 <br/> LBO&lt;n&gt; = Largest bond order of non-hydrogen atom neighbors or heavy
157 atoms attached to atom
158 <br/> SB&lt;n&gt; = Number of single bonds to non-hydrogen atom neighbors or
159 heavy atoms attached to atom
160 <br/> TSB&lt;n&gt; = Total number of single bonds to atom neighbors including implicit
161 and explicit hydrogens
162 <br/> DB&lt;n&gt; = Number of double bonds to non-hydrogen atom neighbors or
163 heavy atoms attached to atom
164 <br/> TB&lt;n&gt; = Number of triple bonds to non-hydrogen atom neighbors or
165 heavy atoms attached to atom
166 <br/> AB&lt;n&gt; = Number of aromatic bonds to non-hydrogen atom neighbors or
167 heavy atoms attached to atom
168 <br/> H&lt;n&gt; = Number of implicit and explicit hydrogens for atom
169 <br/> Ar = Aromatic annotation indicating whether atom is aromatic
170 <br/> RA or RA&lt;n&gt; = Ring atom annotation indicating whether atom
171 is a ring
172 <br/> TR&lt;n&gt; = Total number of rings containing atom
173 <br/> FC&lt;+n/-n&gt; = Formal charge assigned to atom
174 <br/> MN&lt;n&gt; = Mass number indicating isotope other than most abundant isotope
175 <br/> SM&lt;n&gt; = Spin multiplicity of atom. Possible values: 1 (singlet),
176 2 (doublet) or 3 (triplet)</div>
177 <p>Then, atom specification corresponds to:</p>
178 <div class="OptionsBox">
179 AS.X&lt;n&gt;.T&lt;n&gt;.BO&lt;n&gt;.LBO&lt;n&gt;.&lt;SB&gt;&lt;n&gt;.TSB&lt;n&gt;.&lt;DB&gt;&lt;n&gt;.&lt;TB&gt;&lt;n&gt;.AB&lt;n&gt;.H&lt;n&gt;.Ar.
180 <br/> RA&lt;n&gt;.TR&lt;n&gt;FC&lt;+n/-n&gt;.MN&lt;n&gt;.SM&lt;n&gt;</div>
181 <p>Except for AS which is a required atomic invariant in atom specification, all other atomic invariants are
182 optional. For an atom specification to match an atom, the values of all specified atomic invariants must
183 match. Exclamation in from of atomic invariant can be used to negate its effect during the match.</p>
184 <p>For <em>FC</em> value matching, the following value operators are also supported:</p>
185 <div class="OptionsBox">
186 o +* : Any positive value
187 <br/> o -* : Any negative value
188 <br/> o &gt; ValidNumber or &gt;= ValidNumber
189 <br/> o &lt; ValidNumber or &lt;= ValidNumber</div>
190 <p>A comma delimited atom specification string is used to match any one of the specified atom specification.</p>
191 <p>Notes:</p>
192 <div class="OptionsBox">
193 o During atom specification match to an atom, the first atomic invariant is always assumed to
194 atom symbol.</div>
195 <p>Examples:</p>
196 <div class="OptionsBox">
197 o ('N', 'N', 'N')
198 <br/> o ('N.FC0', 'N.FC0', 'N,N.FC+1.H1')
199 <br/> o ('N.H2', 'N.H2', 'N.H1')
200 <br/> o ('C,N', '!N', '!H')
201 <br/> o ('C,N', 'N.Ar', 'N.R5')</div>
202 <p>Let:</p>
203 <div class="OptionsBox">
204 -|1|s|Single = Single bond
205 <br/> =|2|d|Double = Double bond
206 <br/> #|3|t|Triple = Triple bond
207 <br/> :|1.5|a|Ar|Aromatic = Aromatic bond</div>
208 <div class="OptionsBox">
209 @|RB|Ring = Ring bond
210 <br/> ~|*|Any = Any bond</div>
211 <p>Then, bond specification corresponds to:</p>
212 <div class="OptionsBox">
213 -.:
214 <br/> =.@
215 <br/> Double.Aromatic</div>
216 <p>For a bond specification to match bond between two atoms, the values of all specified bond symbols must
217 match. Exclamation in from of bond symbol can be used to negate its effect during the match.</p>
218 <p>A comma delimited bond specification string is used to match any one of the specified atom specification.</p>
219 <p>Notes:</p>
220 <div class="OptionsBox">
221 o During atom neighborhood match for central atom neighborhood atom and bond specifications,
222 implicit or missing hydrogens are automatically checked for any matches to unmatched
223 specifications.</div>
224 <p>Examples:</p>
225 <div class="OptionsBox">
226 Aromatic carbon in a 5 membered ring:
227 $Atom-&gt;DoesAtomNeighborhoodMatch('C.Ar.RA5');</div>
228 <div class="OptionsBox">
229 AcetylenicCarbon: $Atom-&gt;DoesAtomNeighborhoodMatch('C.T2.TB1'); or
230 $Atom-&gt;DoesAtomNeighborhoodMatch('C.T2.TB1',
231 ['*', '*'], ['#', '-']);</div>
232 <div class="OptionsBox">
233 GuadiniumCarbon: $Atom-&gt;DoesAtomNeighborhoodMatch('C.X3.BO4',
234 ['N.FC0', 'N.FC0', 'N.FC0,N.FC+1'],
235 ['-', '-', '='],
236 ['C,H', 'C,H', 'C,H']);</div>
237 <div class="OptionsBox">
238 AmideCarbon: $Atom-&gt;DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3',
239 ['C,H', 'O', 'N'],
240 ['-', '=', '-'],
241 ['C,H', 'C', 'C,H,N,O,S,P,F,Cl,Br,I']);</div>
242 <div class="OptionsBox">
243 CarboxylCarbon: $Atom-&gt;DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3',
244 ['C,H', 'O', 'O.X1.FC0'],
245 ['-', '=', '-'],
246 ['C,H', 'C', 'C']);</div>
247 <div class="OptionsBox">
248 CarboxylateCarbon: $Atom-&gt;DoesAtomNeighborhoodMatch('C.X3.BO4,C.X2.BO3',
249 ['C,H', 'O', 'O.X1.FC-1'],
250 ['-', '=', '-'],
251 ['C,H', 'C', 'C']);</div>
252 </dd>
253 <dt><strong><a name="deletehydrogens" class="item"><strong>DeleteHydrogens</strong></a></strong></dt>
254 <dd>
255 <div class="OptionsBox">
256 $NumOfHydrogensDeleted = $Atom-&gt;AddHydrogens();</div>
257 <p>Delete hydrogens from an <strong>Atom</strong> present in a <strong>Molecule</strong> object and returns
258 the number of deleted hydrogens.</p>
259 </dd>
260 <dt><strong><a name="getatomicinvariantvalue" class="item"><strong>GetAtomicInvariantValue</strong></a></strong></dt>
261 <dd>
262 <div class="OptionsBox">
263 $Value = $Atom-&gt;GetAtomicInvariantValue($AtomicInvariant);</div>
264 <p>Returns atomic invariant value for a specified <em>AtomicInvariant</em>. The current release
265 of MayaChemTools supports following abbreviations and descriptive names for
266 <em>AtomicInvarints</em>:</p>
267 <div class="OptionsBox">
268 AS : Atom or element symbol
269 <br/> X : NumOfNonHydrogenAtomNeighbors or NumOfHeavyAtomNeighbors
270 <br/> T : TotalNumOfAtomNeighbors
271 <br/> BO : SumOfBondOrdersToNonHydrogenAtoms or SumOfBondOrdersToHeavyAtoms
272 <br/> LBO : LargestBondOrderToNonHydrogenAtoms or LargestBondOrderToHeavyAtoms
273 <br/> SB : NumOfSingleBondsToNonHydrogenAtoms or NumOfSingleBondsToHeavyAtoms
274 <br/> TSB : TotalNumOfSingleBonds
275 <br/> DB : NumOfDoubleBondsToNonHydrogenAtoms or NumOfDoubleBondsToHeavyAtoms
276 <br/> TB : NumOfTripleBondsToNonHydrogenAtoms or NumOfTripleBondsToHeavyAtoms
277 <br/> AB : NumOfAromaticBondsToNonHydrogenAtoms or NumOfAromaticBondsToHeavyAtoms
278 <br/> H : NumOfImplicitAndExplicitHydrogens
279 <br/> Ar : Aromatic
280 <br/> Str : Stereochemistry
281 <br/> RA : RingAtom
282 <br/> FC : FormalCharge
283 <br/> AN : AtomicNumber
284 <br/> AM : AtomicMass
285 <br/> MN : MassNumber
286 <br/> SM : SpinMultiplicity</div>
287 </dd>
288 <dt><strong><a name="getatomicweight" class="item"><strong>GetAtomicWeight</strong></a></strong></dt>
289 <dd>
290 <div class="OptionsBox">
291 $Value = $Aom-&gt;GetAtomicWeight();</div>
292 <p>Returns atomic weight of an <strong>Atom</strong> which corresponds to either explicity set <em>AtomicWeight</em>
293 atom property or atomic weight of the corresponding element in the periodic table available by
294 <strong>PeriodicTable</strong> module.</p>
295 </dd>
296 <dt><strong><a name="getbondtoatom" class="item"><strong>GetBondToAtom</strong></a></strong></dt>
297 <dd>
298 <div class="OptionsBox">
299 $Bond = $Atom-&gt;GetBondToAtom($OtherAtom);</div>
300 <p>Returns a <strong>Bond</strong> object corresponding to bond between <em>Atom</em> and <em>OtherAtom</em> in
301 a molecule.</p>
302 </dd>
303 <dt><strong><a name="getbonds" class="item"><strong>GetBonds</strong></a></strong></dt>
304 <dd>
305 <div class="OptionsBox">
306 @Bonds = $Aoto-&gt;GetBonds();</div>
307 <p>Returns an array of <strong>Bond</strong> objects corresponding to all bonds from <em>Atom</em> to other
308 bonded atoms in a molecule.</p>
309 </dd>
310 <dt><strong><a name="getbondstoheavyatoms" class="item"><strong>GetBondsToHeavyAtoms</strong></a></strong></dt>
311 <dd>
312 <div class="OptionsBox">
313 @Bonds = $Atom-&gt;GetBondsToHeavyAtoms();</div>
314 <p>Returns an array of <strong>Bond</strong> objects corresponding to bonds from <em>Atom</em> to other bonded
315 non-hydrogen atoms in a molecule.</p>
316 </dd>
317 <dt><strong><a name="getbondstohydrogenatoms" class="item"><strong>GetBondsToHydrogenAtoms</strong></a></strong></dt>
318 <dd>
319 <div class="OptionsBox">
320 @Bonds = $Atom-&gt;GetBondsToHydrogenAtoms();</div>
321 <p>Returns an array of <strong>Bond</strong> objects corresponding to bonds from <em>Atom</em> to any other
322 hydrogen atom in a molecule.</p>
323 </dd>
324 <dt><strong><a name="getbondstononhydrogenatoms" class="item"><strong>GetBondsToNonHydrogenAtoms</strong></a></strong></dt>
325 <dd>
326 <div class="OptionsBox">
327 @Bonds = $Atom-&gt;GetBondsToNonHydrogenAtoms();</div>
328 <p>Returns an array of <strong>Bond</strong> objects corresponding to bonds from <em>Atom</em> to other bonded
329 non-hydrogen atoms in a molecule.</p>
330 </dd>
331 <dt><strong><a name="getexactmass" class="item"><strong>GetExactMass</strong></a></strong></dt>
332 <dd>
333 <div class="OptionsBox">
334 $ExactMass = $Atom-&gt;GetExactMass();</div>
335 <p>Returns exact mass of an <em>Atom</em> which correspond to one of these three values: explicity set
336 <em>ExactMass</em> property; mass of natural isotope for an explicty set value of <em>MassNumber</em>; most
337 abundant natural isotope mass for <em>Atom</em> with valid atomic number value available by
338 <strong>PerodicTable</strong> module.</p>
339 </dd>
340 <dt><strong><a name="getexplicithydrogens" class="item"><strong>GetExplicitHydrogens</strong></a></strong></dt>
341 <dd>
342 <div class="OptionsBox">
343 $NumOfExplicitHydrogens = $Atom-&gt;GetExplicitHydrogens();</div>
344 <p>Returns number of hydrogens explicity bonded to an <em>Atom</em> in a molecule.</p>
345 </dd>
346 <dt><strong><a name="getformalcharge" class="item"><strong>GetFormalCharge</strong></a></strong></dt>
347 <dd>
348 <div class="OptionsBox">
349 $FormalCharge = $Atom-&gt;GetFormalCharge();</div>
350 <p>Returns formal charge of an <em>Atom</em> in a molecule.</p>
351 </dd>
352 <dt><strong><a name="getfreeradicalelectrons" class="item"><strong>GetFreeRadicalElectrons</strong></a></strong></dt>
353 <dd>
354 <div class="OptionsBox">
355 $FreeRadicalElectrons = $Atom-&gt;GetFreeRadicalElectrons();</div>
356 <p>Returns number of free radical electrons corresponding to to one of these
357 three values: <em>FreeRadicalElectrons</em> property; <em>SpinMultiplicity</em> property; value
358 of 0.</p>
359 <p>For atoms with explicit assignment of <em>SpinMultiplicity</em> atom property values,</p>
360 <div class="OptionsBox">
361 Singlet - two unparied electrons corresponding to one spin state
362 <br/> Doublet - free radical; an unpaired electron corresponding to two
363 spin states
364 <br/> Triplet - two unparied electrons corresponding to three spin states
365 (divalent carbon atoms: carbenes)</div>
366 <p><strong>FreeRadicalElectrons</strong> are calculated as follows:</p>
367 <div class="OptionsBox">
368 Doublet: 1 (one valence electron not available for bonding)
369 <br/> Singlet: 2 (two valence electrons not available for bonding)
370 <br/> Triplet: 2 (two valence electrons not available for bonding)</div>
371 </dd>
372 <dt><strong><a name="getgroupnumber" class="item"><strong>GetGroupNumber</strong></a></strong></dt>
373 <dd>
374 <div class="OptionsBox">
375 $GroupNumber = $Atom-&gt;GetGroupNumber();</div>
376 <p>Returns group number of an <em>Atom</em> in a molecule with a valid atomic number.</p>
377 </dd>
378 <dt><strong><a name="getheavyatomneighbors" class="item"><strong>GetHeavyAtomNeighbors</strong></a></strong></dt>
379 <dd>
380 <div class="OptionsBox">
381 $NumOfHeavyAtoms = $Atom-&gt;GetHeavyAtomNeighbors();
382 <br/> @HeavyAtoms = $Atom-&gt;GetHeavyAtomNeighbors();</div>
383 <p>Return number of heavy atoms or an array of <strong>Atom</strong> objects corresponding to heavy atoms
384 bonded to an <em>Atom</em> in a molecule.</p>
385 </dd>
386 <dt><strong><a name="getheavyatomneighborsatominformation" class="item"><strong>GetHeavyAtomNeighborsAtomInformation</strong></a></strong></dt>
387 <dd>
388 <div class="OptionsBox">
389 ($NumOfAtomNeighbors, $AtomNeighborsRef,
390 $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom-&gt;
391 GetHeavyAtomNeighborsAtomInformation();</div>
392 <p>Returns atoms information for all non-hydrogen atoms attached to an <em>Atom</em>
393 in a molecule.</p>
394 <p>The following values are returned:</p>
395 <div class="OptionsBox">
396 o Number of non-hydrogen atom neighbors
397 <br/> o A reference to an array containing atom objects corresponding to
398 non-hydrogen atom neighbors
399 <br/> o Number of different types of non-hydrogen atom neighbors
400 <br/> o A reference to a hash containing atom symbol as key with value
401 corresponding to its count for non-hydrogen atom neighbors</div>
402 </dd>
403 <dt><strong><a name="getheavyatomneighborsbondformation" class="item"><strong>GetHeavyAtomNeighborsBondformation</strong></a></strong></dt>
404 <dd>
405 <div class="OptionsBox">
406 ($NumOfBonds, $BondTypeCountMapRef,
407 <br/> $AtomsBondTypesCountMapRef,
408 <br/> $AtomsBondTypeAtomsMap) = $Atom-&gt;
409 GetHeavyAtomNeighborsBondformation();</div>
410 <p>Returns bonds information for all non-hydrogen atoms attached to an <em>Atom</em>
411 in a molecule.</p>
412 <p>The following values are returned:</p>
413 <div class="OptionsBox">
414 o Number of bonds to non-hydrogen atom neighbors
415 <br/> o A reference to an array containing bond objects corresponding to
416 non-hydrogen atom neighbors
417 <br/> o A reference to a hash containing bond type as key with value
418 corresponding to its count for non-hydrogen atom neighbors. Bond
419 types are: Single, Double or Triple
420 <br/> o A reference to a hash containing atom symbol as key pointing to bond
421 type as second key with values corresponding to count of bond types for atom
422 symbol for non-hydrogen atom neighbors
423 <br/> o A reference to a hash containing atom symbol as key pointing to bond
424 type as second key with values corresponding to atom objects array involved
425 in corresponding bond type for atom symbol for non-hydrogen atom neighbors</div>
426 </dd>
427 <dt><strong><a name="gethighestcommonvalence" class="item"><strong>GetHighestCommonValence</strong></a></strong></dt>
428 <dd>
429 <div class="OptionsBox">
430 $HighestCommonValence = $Atom-&gt;GetHighestCommonValence();</div>
431 <p>Returns highest common valence of an <em>Atom</em> which corresponds to either explicity set
432 <em>HighestCommonValence</em> atom property or highest common valence of the corresponding
433 element in the periodic table available by <strong>PerodicTable</strong> module.</p>
434 </dd>
435 <dt><strong><a name="gethydrogens" class="item"><strong>GetHydrogens</strong></a></strong></dt>
436 <dd>
437 <div class="OptionsBox">
438 $NumOfHydrogens = $Atom-&gt;GetHydrogens();</div>
439 <p>Returns total number of hydrogens for an <em>Atom</em> in a molecule including both hydrogen atom
440 neighbors and implicit hydrogens.</p>
441 </dd>
442 <dt><strong><a name="gethydrogenatomneighbors" class="item"><strong>GetHydrogenAtomNeighbors</strong></a></strong></dt>
443 <dd>
444 <div class="OptionsBox">
445 $NumOfHydrogenAtomNeighbors = $Atom-&gt;GetHydrogenAtomNeighbors();
446 <br/> @HydrogenAtomNeighbors = $Atom-&gt;GetHydrogenAtomNeighbors();</div>
447 <p>Return number of hydrogen atoms or an array of <em>Atom</em> objects corresponding to hydrogen
448 atoms bonded to an <em>Atom</em> in a molecule.</p>
449 </dd>
450 <dt><strong><a name="getimplicithydrogens" class="item"><strong>GetImplicitHydrogens</strong></a></strong></dt>
451 <dd>
452 <div class="OptionsBox">
453 $NumOfImplicitHydrogens = $Atom-&gt;GetImplicitHydrogens();</div>
454 <p>Returns number of implicit hydrogens for an <em>Atom</em> in a molecule. This value either
455 corresponds to explicitly set <em>ImplicitHydrogens</em> atom property or calculated as the
456 difference between the value of potential total valence and sum of bond orders to
457 both hydrogen and non-hydrogen atom neighbors.</p>
458 </dd>
459 <dt><strong><a name="getpotentialtotalcommonvalence" class="item"><strong>GetPotentialTotalCommonValence</strong></a></strong></dt>
460 <dd>
461 <div class="OptionsBox">
462 $PotentialTotalValence = $Atom-&gt;GetPotentialTotalCommonValence();</div>
463 <p>Returns potential total common valence of an <em>Atom</em> in a molecule corresponding
464 to a specific valence model set for the molecule using its <strong>SetValenceModel</strong> method
465 or default internal valence model. It is used during the calculation of missing or
466 implicit hydrogens.</p>
467 <p>The current release of MayaChemTools supports three valence models: <em>MDLValenceModel,
468 DaylightValenceModel, InternalValenceModel or MayaChemToolsValenceModel</em>.</p>
469 <p>For <em>MDLValenceModel</em> and <em>DaylightValenceModel</em>, the following data files, distributed
470 with the package, are used to calculate potential total valence:</p>
471 <div class="OptionsBox">
472 lib/data/MDLValenceModelData.csv
473 <br/> lib/data/DaylightValenceModelData.csv</div>
474 <p>The calculation of potential total common valence for these two models is performed as
475 follows: Calculate current effective total valence of the <em>Atom</em> by adding up the bond
476 order of its neighbors and number of free radical electrons; Find available common valence
477 for the <em>Atom</em>, corresponding to any specified formal charge, higher than the effective
478 total valence, and return it as <em>PotentialTotalValence</em>.</p>
479 <p>The calculation of potential total common valence For <em>InternalValenceModel</em> or
480 <em>MayaChenToolsValenceModel</em> doesn't uses <strong>PeriodicTable</strong> module to retrieve values
481 for common valence, which in turn reads in PeriodicTableElements.csv file distributed with
482 the package.</p>
483 <p>For elements with one one common valence, potential total common valence corresponds
484 to:</p>
485 <div class="OptionsBox">
486 CommonValence + FormalCharge - FreeRadicalElectrons</div>
487 <p>For elements with multiple common valences, each common valence is used to
488 calculate total potential common valence as shown above, and the first total potential
489 common valence greater than the sum of bond orders to all neighbors is selected as
490 the final total common valence.</p>
491 <p>FormalCharge sign is reversed for electropositive elements with positive formal charge
492 during common valence calculations. Electropositive elements, metals and transition elements,
493 have usually plus formal charge and it leads to decrease in common valence; the negative
494 formal charge should result in the decrease of common valence.</p>
495 <p>The sign of formal charge is adjusted as follows.</p>
496 <p>Group numbers &gt; 14 - Group numbers 15 (N), 16 (O), 17 (F), 18 (He):</p>
497 <p>Formal charge sign is not adjusted. Positive and negative values result in the
498 increase and decrease of valence.</p>
499 <p>Group 14 containing C, Si, Ge, Sn, Pb...:</p>
500 <p>Formal charge sign is reversed for positive values. Both positive and negative
501 values result in the decrease of valence.</p>
502 <p>Group 13 containing B, Al, Ga, In, Tl...:</p>
503 <p>Formal charge sign is always reversed. Positive and negative values result in the
504 decrease and increase of valence.</p>
505 <p>Groups 1 (H) through 12 (Zn)...:</p>
506 <p>Formal charge sign is reversed for positive values. Both positive and negative
507 values result in the decrease of valence.</p>
508 <p>Lanthanides and actinides:</p>
509 <p>Formal charge sign is reversed for positive values. Both positive and negative
510 values result in the decrease of valence.</p>
511 </dd>
512 <dt><strong><a name="getlargestbondorder" class="item"><strong>GetLargestBondOrder</strong></a></strong></dt>
513 <dd>
514 <div class="OptionsBox">
515 $LargestBO =$Atom-&gt;GetLargestBondOrder();</div>
516 <p>Returns largest bond order for an <em>Atom</em> among the bonds to other atoms in a molecule.</p>
517 </dd>
518 <dt><strong><a name="getlargestbondordertoheavyatoms" class="item"><strong>GetLargestBondOrderToHeavyAtoms</strong></a></strong></dt>
519 <dd>
520 <div class="OptionsBox">
521 $LargestBO =$Atom-&gt;GetLargestBondOrderToHeavyAtoms();</div>
522 <p>Returns largest bond order for an <em>Atom</em> among the bonds to other heavy atoms in a molecule.</p>
523 </dd>
524 <dt><strong><a name="getlargestbondordertononhydrogenatoms" class="item"><strong>GetLargestBondOrderToNonHydrogenAtoms</strong></a></strong></dt>
525 <dd>
526 <div class="OptionsBox">
527 $LargestBO =$Atom-&gt;GetLargestBondOrderToNonHydrogenAtoms();</div>
528 <p>Returns largest bond order for an <em>Atom</em> among the bonds to other non-hydrogen atoms
529 in a molecule.</p>
530 </dd>
531 <dt><strong><a name="getlargestring" class="item"><strong>GetLargestRing</strong></a></strong></dt>
532 <dd>
533 <div class="OptionsBox">
534 @RingAtoms = $Atom-&gt;GetLargestRing();</div>
535 <p>Returns an array of ring <em>Atom</em> objects corresponding to the largest ring containing <em>Atom</em>
536 in a molecule.</p>
537 </dd>
538 <dt><strong><a name="getlowestcommonvalence" class="item"><strong>GetLowestCommonValence</strong></a></strong></dt>
539 <dd>
540 <div class="OptionsBox">
541 $LowestCommonValence = $Atom-&gt;GetLowestCommonValence();</div>
542 <p>Returns lowest common valence of an <em>Atom</em> which corresponds to either explicity set
543 <em>LowestCommonValence</em> atom property or highest common valence of the corresponding
544 element in the periodic table available by <strong>PerodicTable</strong> module.</p>
545 </dd>
546 <dt><strong><a name="getmassnumber" class="item"><strong>GetMassNumber</strong></a></strong></dt>
547 <dd>
548 <div class="OptionsBox">
549 $MassNumber = $Aom-&gt;GetMassNumber();</div>
550 <p>Returns atomic weight of an <strong>Atom</strong> which corresponds to either explicity set <em>MassNumber</em>
551 atom property or mass number of the most abundant natural isotope of the corresponding element
552 in the periodic table available by <strong>PeriodicTable</strong> module.</p>
553 </dd>
554 <dt><strong><a name="getmissinghydrogens" class="item"><strong>GetMissingHydrogens</strong></a></strong></dt>
555 <dd>
556 <div class="OptionsBox">
557 $NumOfMissingHydrogens = $Atom-&gt;GetMissingHydrogens();</div>
558 <p>Returns number of missing hydrogens for an <em>Atom</em> in a molecule. This value either
559 corresponds to explicitly set <em>ImplicitHydrogens</em> atom property or calculated as the
560 difference between the value of potential total valence and sum of bond orders to
561 both hydrogen and non-hydrogen atom neighbors.</p>
562 </dd>
563 <dt><strong><a name="getneighbors" class="item"><strong>GetNeighbors</strong></a></strong></dt>
564 <dd>
565 <div class="OptionsBox">
566 $NumOfNeighbors = $Atom-&gt;GetNeighbors();
567 <br/> @Neighbors = $Atom-&gt;GetNeighbors();</div>
568 <p>Returns number of neighbor atoms or an array of <em>Atom</em> objects corresponding to all
569 atoms bonded to an <em>Atom</em> in a molecule.</p>
570 </dd>
571 <dt><strong><a name="getneighborsusingatomspecification" class="item"><strong>GetNeighborsUsingAtomSpecification</strong></a></strong></dt>
572 <dd>
573 <div class="OptionsBox">
574 @AtomNeighbors = $Atom-&gt;GetNeighborsUsingAtomSpecification($AtomSpec);
575 <br/> $NumOfNeighbors = $Atom-&gt;GetNeighborsUsingAtomSpecification($AtomSpec);</div>
576 <div class="OptionsBox">
577 @AtomNeighbors = $Atom-&gt;GetNeighborsUsingAtomSpecification($AtomSpec,
578 @ExcludeNeighbors);</div>
579 <p>Returns number of neighbor atoms or an array of <em>Atom</em> objects matching atom
580 specification corresponding to atom neighbors of an <em>Atom</em> in a molecule. Optionally,
581 <em>Atom</em> neighbors can be excluded from the neighbors list using <em>ExcludeNeighbors</em>.</p>
582 <p>Notes:</p>
583 <div class="OptionsBox">
584 o AtomSpecification correspond to any valid AtomicInvariant based atomic specifications
585 as supported by DoesAtomNeighborhoodMatch method
586 <br/> o Multiple atom specifications can be used in a string delimited by comma</div>
587 </dd>
588 <dt><strong><a name="getnonhydrogenatomneighbors" class="item"><strong>GetNonHydrogenAtomNeighbors</strong></a></strong></dt>
589 <dd>
590 <div class="OptionsBox">
591 $NumOfNeighbors = $Atom-&gt;GetNonHydrogenAtomNeighbors();
592 <br/> @Neighbors = $Atom-&gt;GetNonHydrogenAtomNeighbors();</div>
593 <p>Returns number of non-hydrogen atoms or an array of <strong>Atom</strong> objects corresponding to non-hydrogen
594 atoms bonded to an <em>Atom</em> in a molecule.</p>
595 </dd>
596 <dt><strong><a name="getnonhydrogenatomneighborsatominformation" class="item"><strong>GetNonHydrogenAtomNeighborsAtomInformation</strong></a></strong></dt>
597 <dd>
598 <div class="OptionsBox">
599 ($NumOfAtomNeighbors, $AtomNeighborsRef,
600 $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom-&gt;
601 GetNonHydrogenAtomNeighborsAtomInformation();</div>
602 <p>Returns atoms information for all non-hydrogen atoms attached to an <em>Atom</em>
603 in a molecule.</p>
604 <p>The following values are returned:</p>
605 <div class="OptionsBox">
606 o Number of non-hydrogen atom neighbors
607 <br/> o A reference to an array containing atom objects corresponding to
608 non-hydrogen atom neighbors
609 <br/> o Number of different types of non-hydrogen atom neighbors
610 <br/> o A reference to a hash containing atom symbol as key with value
611 corresponding to its count for non-hydrogen atom neighbors</div>
612 </dd>
613 <dt><strong><a name="getnonhydrogenatomneighborsbondinformation" class="item"><strong>GetNonHydrogenAtomNeighborsBondInformation</strong></a></strong></dt>
614 <dd>
615 <div class="OptionsBox">
616 ($NumOfBonds, $BondTypeCountMapRef,
617 <br/> $AtomsBondTypesCountMapRef,
618 <br/> $AtomsBondTypeAtomsMap) = $Atom-&gt;
619 GetNonHydrogenAtomNeighborsBondInformation();</div>
620 <p>Returns bonds information for all non-hydrogen atoms attached to an <em>Atom</em>
621 in a molecule.</p>
622 <p>The following values are returned:</p>
623 <div class="OptionsBox">
624 o Number of bonds to non-hydrogen atom neighbors
625 <br/> o A reference to an array containing bond objects corresponding to
626 non-hydrogen atom neighbors
627 <br/> o A reference to a hash containing bond type as key with value
628 corresponding to its count for non-hydrogen atom neighbors. Bond
629 types are: Single, Double or Triple
630 <br/> o A reference to a hash containing atom symbol as key pointing to bond
631 type as second key with values corresponding to count of bond types for atom
632 symbol for non-hydrogen atom neighbors
633 <br/> o A reference to a hash containing atom symbol as key pointing to bond
634 type as second key with values corresponding to atom objects array involved
635 in corresponding bond type for atom symbol for non-hydrogen atom neighbors</div>
636 </dd>
637 <dt><strong><a name="getnonhydrogenneighborofhydrogenatom" class="item"><strong>GetNonHydrogenNeighborOfHydrogenAtom</strong></a></strong></dt>
638 <dd>
639 <div class="OptionsBox">
640 $Atom = $Atom-&gt;GetNonHydrogenNeighborOfHydrogenAtom();</div>
641 <p>Returns non-hydrogen or heavy atom neighbor of a hydrogen atom in a molecule..</p>
642 </dd>
643 <dt><strong><a name="getnumofaromaticbondstoheavyatoms" class="item"><strong>GetNumOfAromaticBondsToHeavyAtoms</strong></a></strong></dt>
644 <dd>
645 <div class="OptionsBox">
646 $NumOfBonds = $Atom-&gt;GetNumOfAromaticBondsToHeavyAtoms();</div>
647 <p>Returns number of aromatic bonds from an <em>Atom</em> to other non-hydrogen or heavy atoms in
648 a molecule.</p>
649 </dd>
650 <dt><strong><a name="getnumofaromaticbondstononhydrogenatoms" class="item"><strong>GetNumOfAromaticBondsToNonHydrogenAtoms</strong></a></strong></dt>
651 <dd>
652 <div class="OptionsBox">
653 $NumOfBonds = $Atom-&gt;GetNumOfAromaticBondsToNonHydrogenAtoms();</div>
654 <p>Returns number of aromatic bonds from an <em>Atom</em> to other non-hydrogen or heavy atoms in
655 a molecule.</p>
656 </dd>
657 <dt><strong><a name="getnumofbonds" class="item"><strong>GetNumOfBonds</strong></a></strong></dt>
658 <dd>
659 <div class="OptionsBox">
660 $NumOfBonds = $Atom-&gt;GetNumOfBonds();</div>
661 <p>Returns number of bonds from an <em>Atom</em> to other atoms in a molecule.</p>
662 </dd>
663 <dt><strong><a name="getnumofbondsavailableforheavyatoms" class="item"><strong>GetNumOfBondsAvailableForHeavyAtoms</strong></a></strong></dt>
664 <dd>
665 <div class="OptionsBox">
666 $NumOfBonds = $Atom-&gt;GetNumOfBondsAvailableForHeavyAtoms();</div>
667 <p>Get number of bonds available to form additional bonds with heavy atoms, excluding
668 any implicit bonds to hydrogens set using <em>ImplicitHydrogens</em> property.</p>
669 <p>It's different from number of implicit or missing hydrogens, both of which are equivalent.</p>
670 <p>For example, in a SMILES string, [nH] ring atom corresponds to an aromatic nitrogen.
671 Although the hydrogen specified for n is treated internally as implicit hydrogen and shows
672 up in missing hydrogen count, it's not available to participate in double bonds to additional
673 heavy atoms.</p>
674 </dd>
675 <dt><strong><a name="getnumofbondsavailablefornonhydrogenatoms" class="item"><strong>GetNumOfBondsAvailableForNonHydrogenAtoms</strong></a></strong></dt>
676 <dd>
677 <div class="OptionsBox">
678 $NumOfBonds = $Atom-&gt;GetNumOfBondsAvailableForNonHydrogenAtoms();</div>
679 <p>Get number of bonds available to form additional bonds with heavy atoms, excluding
680 any implicit bonds to hydrogens set using ImplicitHydrogens property.</p>
681 </dd>
682 <dt><strong><a name="getnumofbondstoheavyatoms" class="item"><strong>GetNumOfBondsToHeavyAtoms</strong></a></strong></dt>
683 <dd>
684 <div class="OptionsBox">
685 $NumOfBondsToHeavyAtoms = $Atom-&gt;GetNumOfBondsToHeavyAtoms();</div>
686 <p>Returns number of bonds from an <em>Atom</em> to other heavy atoms in a molecule.</p>
687 </dd>
688 <dt><strong><a name="getnumofbondstohydrogenatoms" class="item"><strong>GetNumOfBondsToHydrogenAtoms</strong></a></strong></dt>
689 <dd>
690 <div class="OptionsBox">
691 $NumOfBonds = $Atom-&gt;GetNumOfBondsToHydrogenAtoms();</div>
692 <p>Returns number of bonds from an <em>Atom</em> to other hydrogen atoms in a molecule.</p>
693 </dd>
694 <dt><strong><a name="getnumofbondstononhydrogenatoms" class="item"><strong>GetNumOfBondsToNonHydrogenAtoms</strong></a></strong></dt>
695 <dd>
696 <div class="OptionsBox">
697 $NumOfBonds = $Atom-&gt;GetNumOfBondsToNonHydrogenAtoms();</div>
698 <p>Returns number of bonds from an <em>Atom</em> to other non-hydrogen atoms in a molecule.</p>
699 </dd>
700 <dt><strong><a name="getnumofbondtypestoheavyatoms" class="item"><strong>GetNumOfBondTypesToHeavyAtoms</strong></a></strong></dt>
701 <dd>
702 <div class="OptionsBox">
703 ($NumOfSingleBonds, $NumOfDoubleBonds,
704 $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom-&gt;
705 GetNumOfBondTypesToHeavyAtoms($CountAromaticBonds);</div>
706 <p>Get number of single, double, triple, and aromatic bonds from an <em>Atom</em> to all other
707 non-hydrogen atoms in a molecule.</p>
708 <p>Value of <em>CountAtomaticBonds</em> parameter controls whether number of aromatic
709 bonds is returned; default is not to count aromatic bonds. During counting of
710 aromatic bonds, the bond marked aromatic is not included in the count
711 of other bond types.</p>
712 </dd>
713 <dt><strong><a name="getnumofbondtypestononhydrogenatoms" class="item"><strong>GetNumOfBondTypesToNonHydrogenAtoms</strong></a></strong></dt>
714 <dd>
715 <div class="OptionsBox">
716 ($NumOfSingleBonds, $NumOfDoubleBonds,
717 $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom-&gt;
718 GetNumOfBondTypesToNonHydrogenAtoms($CountAromaticBonds);</div>
719 <p>Get number of single, double, triple, and aromatic bonds from an <em>Atom</em> to all other
720 non-hydrogen atoms in a molecule.</p>
721 <p>Value of <em>CountAtomaticBonds</em> parameter controls whether number of aromatic
722 bonds is returned; default is not to count aromatic bonds. During counting of
723 aromatic bonds, the bond marked aromatic is not included in the count
724 of other bond types.</p>
725 </dd>
726 <dt><strong><a name="getnumofdoublebondstoheavyatoms" class="item"><strong>GetNumOfDoubleBondsToHeavyAtoms</strong></a></strong></dt>
727 <dd>
728 <div class="OptionsBox">
729 $NumOfDoubleBonds = $Atom-&gt;GetNumOfDoubleBondsToHeavyAtoms();</div>
730 <p>Returns number of double bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
731 atoms in a molecule.</p>
732 </dd>
733 <dt><strong><a name="getnumofdoublebondstononhydrogenatoms" class="item"><strong>GetNumOfDoubleBondsToNonHydrogenAtoms</strong></a></strong></dt>
734 <dd>
735 <div class="OptionsBox">
736 $NumOfDoubleBonds =$Atom-&gt;GetNumOfDoubleBondsToNonHydrogenAtoms();</div>
737 <p>Returns number of double bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
738 atoms in a molecule.</p>
739 </dd>
740 <dt><strong><a name="getnumofheavyatomneighbors" class="item"><strong>GetNumOfHeavyAtomNeighbors</strong></a></strong></dt>
741 <dd>
742 <div class="OptionsBox">
743 $NumOfNeighbors = $Atom-&gt;GetNumOfHeavyAtomNeighbors();</div>
744 <p>Returns number heavy atom neighbors for an <em>Atom</em> in a molecule.</p>
745 </dd>
746 <dt><strong><a name="getnumofhydrogenatomneighbors" class="item"><strong>GetNumOfHydrogenAtomNeighbors</strong></a></strong></dt>
747 <dd>
748 <div class="OptionsBox">
749 $NumOfNeighbors = $Atom-&gt;GetNumOfHydrogenAtomNeighbors();</div>
750 <p>Returns number hydrogens atom neighbors for an <em>Atom</em> in a molecule.</p>
751 </dd>
752 <dt><strong><a name="getnumofmissinghydrogens" class="item"><strong>GetNumOfMissingHydrogens</strong></a></strong></dt>
753 <dd>
754 <div class="OptionsBox">
755 $NumOfMissingHydrogens = $Atom-&gt;GetNumOfMissingHydrogens();</div>
756 <p>Returns number of implicit hydrogens for an <em>Atom</em> in a molecule. This value either
757 corresponds to explicitly set <em>ImplicitHydrogens</em> atom property or calculated as the
758 difference between the value of potential total valence and sum of bond orders to
759 both hydrogen and non-hydrogen atom neighbors.</p>
760 </dd>
761 <dt><strong><a name="getnumofexplicithydrogens" class="item"><strong>GetNumOfExplicitHydrogens</strong></a></strong></dt>
762 <dd>
763 <div class="OptionsBox">
764 $NumOfExplicitHydrogens = $Atom-&gt;GetNumOfExplicitHydrogens();</div>
765 <p>Returns number hydrogens atom neighbors for an <em>Atom</em> in a molecule.</p>
766 </dd>
767 <dt><strong><a name="getnumofhydrogens" class="item"><strong>GetNumOfHydrogens</strong></a></strong></dt>
768 <dd>
769 <div class="OptionsBox">
770 $NumOfHydrogens = $Atom-&gt;GetNumOfHydrogens();</div>
771 <p>Returns total number of hydrogens for an <em>Atom</em> in a molecule including both hydrogen atom
772 neighbors and implicit hydrogens.</p>
773 </dd>
774 <dt><strong><a name="getnumofimplicithydrogens" class="item"><strong>GetNumOfImplicitHydrogens</strong></a></strong></dt>
775 <dd>
776 <div class="OptionsBox">
777 $NumOfImplicitHydrogens = $Atom-&gt;GetNumOfImplicitHydrogens();</div>
778 <p>Returns number of implicit hydrogens for an <em>Atom</em> in a molecule. This value either
779 corresponds to explicitly set <em>ImplicitHydrogens</em> atom property or calculated as the
780 difference between the value of potential total valence and sum of bond orders to
781 both hydrogen and non-hydrogen atom neighbors.</p>
782 </dd>
783 <dt><strong><a name="getnumofneighbors" class="item"><strong>GetNumOfNeighbors</strong></a></strong></dt>
784 <dd>
785 <div class="OptionsBox">
786 $NumOfNeighbors = $Atom-&gt;GetNumOfNeighbors();</div>
787 <p>Returns number atom neighbors for an <em>Atom</em> in a molecule.</p>
788 </dd>
789 <dt><strong><a name="getnumofnonhydrogenatomneighbors" class="item"><strong>GetNumOfNonHydrogenAtomNeighbors</strong></a></strong></dt>
790 <dd>
791 <div class="OptionsBox">
792 $NumNeighbors = $This-&gt;GetNumOfNonHydrogenAtomNeighbors();</div>
793 <p>Returns number non-hydrogens atom neighbors for an <em>Atom</em> in a molecule.</p>
794 </dd>
795 <dt><strong><a name="getnumofrings" class="item"><strong>GetNumOfRings</strong></a></strong></dt>
796 <dd>
797 <div class="OptionsBox">
798 $NumOfRings = $Atom-&gt;GetNumOfRings();</div>
799 <p>Returns number of rings containing <em>Atom</em> in a molecule.</p>
800 </dd>
801 <dt><strong><a name="getnumofringswithevensize" class="item"><strong>GetNumOfRingsWithEvenSize</strong></a></strong></dt>
802 <dd>
803 <div class="OptionsBox">
804 $NumOfRings = $Atom-&gt;GetNumOfRingsWithEvenSize();</div>
805 <p>Returns number of rings with even size containing <em>Atom</em> in a molecule.</p>
806 </dd>
807 <dt><strong><a name="getnumofringswithoddsize" class="item"><strong>GetNumOfRingsWithOddSize</strong></a></strong></dt>
808 <dd>
809 <div class="OptionsBox">
810 $NumOfRings = $Atom-&gt;GetNumOfRingsWithOddSize();</div>
811 <p>Returns number of rings with odd size containing <em>Atom</em> in a molecule.</p>
812 </dd>
813 <dt><strong><a name="getnumofringswithsize" class="item"><strong>GetNumOfRingsWithSize</strong></a></strong></dt>
814 <dd>
815 <div class="OptionsBox">
816 $NumOfRings = $Atom-&gt;GetNumOfRingsWithSize($RingSize);</div>
817 <p>Returns number of rings with specific <em>RingSize</em> containing <em>Atom</em> in a molecule.</p>
818 </dd>
819 <dt><strong><a name="getnumofringswithsizegreaterthan" class="item"><strong>GetNumOfRingsWithSizeGreaterThan</strong></a></strong></dt>
820 <dd>
821 <div class="OptionsBox">
822 $NumOfRings = $Atom-&gt;GetNumOfRingsWithSizeGreaterThan($RingSize);</div>
823 <p>Returns number of rings with size greater than specific <em>RingSize</em> containing <em>Atom</em>
824 in a molecule.</p>
825 </dd>
826 <dt><strong><a name="getnumofringswithsizelessthan" class="item"><strong>GetNumOfRingsWithSizeLessThan</strong></a></strong></dt>
827 <dd>
828 <div class="OptionsBox">
829 $NumOfRings = $Atom-&gt;GetNumOfRingsWithSizeLessThan($RingSize);</div>
830 <p>Returns number of rings with size less than specific <em>RingSize</em> containing <em>Atom</em> in a molecule.</p>
831 </dd>
832 <dt><strong><a name="getnumofsigmaandpibondstoheavyatoms" class="item"><strong>GetNumOfSigmaAndPiBondsToHeavyAtoms</strong></a></strong></dt>
833 <dd>
834 <div class="OptionsBox">
835 ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom-&gt;
836 GetNumOfSigmaAndPiBondsToHeavyAtoms();</div>
837 <p>Get number of sigma and pi bonds from an <em>Atom</em> to all other non-hydrogen
838 atoms in a molecule.</p>
839 <p>Sigma and pi bonds are counted using the following methodology: a single bond
840 correspond to one sigma bond; a double bond contributes one to sigma bond count
841 and one to pi bond count; a triple bond contributes one to sigma bond count and
842 two to pi bond count.</p>
843 </dd>
844 <dt><strong><a name="getnumofsigmaandpibondstononhydrogenatoms" class="item"><strong>GetNumOfSigmaAndPiBondsToNonHydrogenAtoms</strong></a></strong></dt>
845 <dd>
846 <div class="OptionsBox">
847 ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom-&gt;
848 GetNumOfSigmaAndPiBondsToNonHydrogenAtoms();</div>
849 <p>Get number of sigma and pi bonds from an <em>Atom</em> to all other non-hydrogen
850 atoms in a molecule.</p>
851 <p>Sigma and pi bonds are counted using the following methodology: a single bond
852 correspond to one sigma bond; a double bond contributes one to sigma bond count
853 and one to pi bond count; a triple bond contributes one to sigma bond count and
854 two to pi bond count.</p>
855 </dd>
856 <dt><strong><a name="getnumofsinglebondstononhydrogenatoms" class="item"><strong>GetNumOfSingleBondsToNonHydrogenAtoms</strong></a></strong></dt>
857 <dd>
858 <div class="OptionsBox">
859 $NumOfSingleBonds =$Atom-&gt;GetNumOfSingleBondsToNonHydrogenAtoms();</div>
860 <p>Returns number of single bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
861 atoms in a molecule.</p>
862 </dd>
863 <dt><strong><a name="getnumofsinglebondstoheavyatoms" class="item"><strong>GetNumOfSingleBondsToHeavyAtoms</strong></a></strong></dt>
864 <dd>
865 <div class="OptionsBox">
866 $NumOfSingleBonds = $Atom-&gt;GetNumOfSingleBondsToHeavyAtoms();</div>
867 <p>Returns number of single bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
868 atoms in a molecule.</p>
869 </dd>
870 <dt><strong><a name="getnumoftriplebondstononhydrogenatoms" class="item"><strong>GetNumOfTripleBondsToNonHydrogenAtoms</strong></a></strong></dt>
871 <dd>
872 <div class="OptionsBox">
873 $NumOfTripleBonds =$Atom-&gt;GetNumOfTripleBondsToNonHydrogenAtoms();</div>
874 <p>Returns number of triple bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
875 atoms in a molecule.</p>
876 </dd>
877 <dt><strong><a name="getnumoftriplebondstoheavyatoms" class="item"><strong>GetNumOfTripleBondsToHeavyAtoms</strong></a></strong></dt>
878 <dd>
879 <div class="OptionsBox">
880 $NumOfTripleBonds = $Atom-&gt;GetNumOfTripleBondsToHeavyAtoms();</div>
881 <p>Returns number of triple bonds from an <em>Atom</em> to other heavy atoms or non-hydrogen
882 atoms in a molecule.</p>
883 </dd>
884 <dt><strong><a name="getperiodnumber" class="item"><strong>GetPeriodNumber</strong></a></strong></dt>
885 <dd>
886 <div class="OptionsBox">
887 $PeriodNumber = $Atom-&gt;GetPeriodNumber();</div>
888 <p>Returns periodic table period number for an <em>Atom</em> in a molecule with a valid atomic number .</p>
889 </dd>
890 <dt><strong><a name="getrings" class="item"><strong>GetRings</strong></a></strong></dt>
891 <dd>
892 <div class="OptionsBox">
893 @Rings = $Aotm-&gt;GetRings();</div>
894 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings containing
895 <em>Atom</em> in a molecule.</p>
896 </dd>
897 <dt><strong><a name="getringswithevensize" class="item"><strong>GetRingsWithEvenSize</strong></a></strong></dt>
898 <dd>
899 <div class="OptionsBox">
900 @Rings = $Aotm-&gt;GetRingsWithEvenSize();</div>
901 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings with even size
902 containing <em>Atom</em> in a molecule.</p>
903 </dd>
904 <dt><strong><a name="getringswithoddsize" class="item"><strong>GetRingsWithOddSize</strong></a></strong></dt>
905 <dd>
906 <div class="OptionsBox">
907 @Rings = $Aotm-&gt;GetRingsWithOddSize();</div>
908 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings with odd size
909 containing <em>Atom</em> in a molecule.</p>
910 </dd>
911 <dt><strong><a name="getringswithsize" class="item"><strong>GetRingsWithSize</strong></a></strong></dt>
912 <dd>
913 <div class="OptionsBox">
914 @Rings = $Aotm-&gt;GetRingsWithSize($RingSize);</div>
915 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings with specific
916 <em>RingSize </em>containing <em>Atom</em> in a molecule.</p>
917 </dd>
918 <dt><strong><a name="getringswithsizegreaterthan" class="item"><strong>GetRingsWithSizeGreaterThan</strong></a></strong></dt>
919 <dd>
920 <div class="OptionsBox">
921 @Rings = $Aotm-&gt;GetRingsWithSizeGreaterThan($RingSize);</div>
922 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings with size
923 greater than specific <em>RingSize </em>containing <em>Atom</em> in a molecule.</p>
924 </dd>
925 <dt><strong><a name="getringswithsizelessthan" class="item"><strong>GetRingsWithSizeLessThan</strong></a></strong></dt>
926 <dd>
927 <div class="OptionsBox">
928 @Rings = $Aotm-&gt;GetRingsWithSizeLessThan($RingSize);</div>
929 <p>Returns an array of references to arrays containing ring atoms corressponding to all rings with size
930 less than specific <em>RingSize </em>containing <em>Atom</em> in a molecule.</p>
931 </dd>
932 <dt><strong><a name="getsizeoflargestring" class="item"><strong>GetSizeOfLargestRing</strong></a></strong></dt>
933 <dd>
934 <div class="OptionsBox">
935 $Size = $Atom-&gt;GetSizeOfLargestRing();</div>
936 <p>Returns size of the largest ring containing <em>Atom</em> in a molecule.</p>
937 </dd>
938 <dt><strong><a name="getsizeofsmallestring" class="item"><strong>GetSizeOfSmallestRing</strong></a></strong></dt>
939 <dd>
940 <div class="OptionsBox">
941 $Size = $Atom-&gt;GetSizeOfSmallestRing();</div>
942 <p>Returns size of the smallest ring containing <em>Atom</em> in a molecule.</p>
943 </dd>
944 <dt><strong><a name="getsmallestring" class="item"><strong>GetSmallestRing</strong></a></strong></dt>
945 <dd>
946 <div class="OptionsBox">
947 @RingAtoms = $Atom-&gt;GetSmallestRing();</div>
948 <p>Returns an array of ring <em>Atom</em> objects corresponding to the largest ring containing <em>Atom</em>
949 in a molecule.</p>
950 </dd>
951 <dt><strong><a name="getspinmultiplicity" class="item"><strong>GetSpinMultiplicity</strong></a></strong></dt>
952 <dd>
953 <div class="OptionsBox">
954 $SpinMultiplicity = $Atom-&gt;GetSpinMultiplicity();</div>
955 <p>Returns spin multiplicity of an <em>Atom</em> corresponding to one of these three
956 values: explicitly set <strong>SpinMultiplicity</strong> property value; calculated from
957 <strong>FreeRadicalElectrons</strong> property; value of 0.</p>
958 <p>The <strong>SpinMultiplicity</strong> is calculate from <em>FreeRadicalElectrons</em> property as
959 follows:</p>
960 <div class="OptionsBox">
961 FreeRadicalElectrons: 1; SpinMultiplicity: 2
962 <br/> FreeRadicalElectrons: 2; SpinMultiplicity: 1
963 <br/> FreeRadicalElectrons: other; SpinMultiplicity: 0</div>
964 </dd>
965 <dt><strong><a name="getsumofbondorders" class="item"><strong>GetSumOfBondOrders</strong></a></strong></dt>
966 <dd>
967 <div class="OptionsBox">
968 $SumBondOrders = $Atom-&gt;GetSumOfBondOrders();</div>
969 <p>Returns sum of bond orders corresponding to all atoms bonded to an <em>Atom</em> in a molecule.</p>
970 </dd>
971 <dt><strong><a name="getsumofbondorderstoheavyatoms" class="item"><strong>GetSumOfBondOrdersToHeavyAtoms</strong></a></strong></dt>
972 <dd>
973 <div class="OptionsBox">
974 $SumBondOrders = $Atom-&gt;GetSumOfBondOrdersToHeavyAtoms();</div>
975 <p>Returns sum of bond orders corresponding to all heavy atoms bonded to an <em>Atom</em> in a molecule.</p>
976 </dd>
977 <dt><strong><a name="getsumofbondorderstohydrogenatoms" class="item"><strong>GetSumOfBondOrdersToHydrogenAtoms</strong></a></strong></dt>
978 <dd>
979 <div class="OptionsBox">
980 $SumBondOrders = $Atom-&gt;GetSumOfBondOrdersToHydrogenAtoms();</div>
981 <p>Returns sum of bond orders corresponding to all hydrogen atoms bonded to an <em>Atom</em> in a molecule.</p>
982 </dd>
983 <dt><strong><a name="getsumofbondorderstononhydrogenatoms" class="item"><strong>GetSumOfBondOrdersToNonHydrogenAtoms</strong></a></strong></dt>
984 <dd>
985 <div class="OptionsBox">
986 $SumBondOrders = $Atom-&gt;GetSumOfBondOrdersToNonHydrogenAtoms();</div>
987 <p>Returns sum of bond orders corresponding to all non-hydrogen atoms bonded to an <em>Atom</em>
988 in a molecule.</p>
989 </dd>
990 <dt><strong><a name="getvalence" class="item"><strong>GetValence</strong></a></strong></dt>
991 <dd>
992 <div class="OptionsBox">
993 $Valence = $Atom-&gt;GetValence();</div>
994 <p>Returns valence of an <em>Atom</em> in a molecule. Valence corresponds to number of electrons used
995 by an atom in bonding:</p>
996 <div class="OptionsBox">
997 Valence = ValenceElectrons - ValenceFreeElectrons = BondingElectrons</div>
998 <p>Single, double and triple bonds with bond orders of 1, 2, and 3 correspond to
999 contribution of 1, 2, and 3 bonding electrons. So:</p>
1000 <div class="OptionsBox">
1001 Valence = SumOfBondOrders + NumOfMissingHydrogens + FormalCharge</div>
1002 <p>where positive and negative values of FormalCharge increase and decrease the number of bonding
1003 electrons, respectively.</p>
1004 <p>The current release of MayaChemTools supports the following three valence models, which
1005 are used during calculation of implicit hydrogens: MDLValenceModel, DaylightValenceModel,
1006 InternalValenceModel or MayaChemToolsValenceModel.</p>
1007 <p>Notes:</p>
1008 <div class="OptionsBox">
1009 . Missing hydrogens are included in the valence.
1010 <br/> . For neutral molecules, valence and sum of bond orders are equal.
1011 <br/> . For molecules containing only single bonds, SumOfBondOrders and
1012 NumOfBonds are equal.
1013 <br/> . Free radical electrons lead to the decrease in valence. For atoms with
1014 explicit assignment of SpinMultiplicity property values corresponding to
1015 Singlet (two unparied electrons corresponding to one spin state), Doublet
1016 (free radical; an unpaired electron corresponding to two spin states),
1017 and Triplet (two unparied electrons corresponding to three spin states;
1018 divalent carbon atoms (carbenes)), FreeRadicalElectrons are calculated as follows:</div>
1019 <div class="OptionsBox">
1020 &nbsp;&nbsp;&nbsp; SpinMultiplicity: Doublet(2); FreeRadicalElectrons: 1 (one valence
1021 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; electron not available for bonding)
1022 <br/>&nbsp;&nbsp;&nbsp; SpinMultiplicity: Singlet(1)/Triplet(3); FreeRadicalElectrons: 2 (two
1023 <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; valence electrons not available for bonding)</div>
1024 </dd>
1025 <dt><strong><a name="getvalenceelectrons" class="item"><strong>GetValenceElectrons</strong></a></strong></dt>
1026 <dd>
1027 <div class="OptionsBox">
1028 $ValenceElectrons = $Atom-&gt;GetValenceElectrons();</div>
1029 <p>Returns valence electrons for an <strong>Atom</strong> which corresponds to either explicity set <em>ValenceElectrons</em>
1030 atom property or valence electrons for the corresponding element in the periodic table available by
1031 <strong>PeriodicTable</strong> module.</p>
1032 </dd>
1033 <dt><strong><a name="getvalencefreeelectrons" class="item"><strong>GetValenceFreeElectrons</strong></a></strong></dt>
1034 <dd>
1035 <div class="OptionsBox">
1036 $ValenceFreeElectrons = $Atom-&gt;GetValenceFreeElectrons();
1037 <br/> $ValenceFreeElectrons = $Atom-&gt;GetValenceFreeElectrons(
1038 $ExcludeFreeRadicalElectrons);</div>
1039 <p>Returns valence frees electrons for an <strong>Atom</strong> in a molecule. It corresponds to:</p>
1040 <div class="OptionsBox">
1041 ValenceElectrons - Valence
1042 <br/> or
1043 <br/> ValenceElectrons - NumOfMissingHydrogens - SumOfBondOrders - FormalCharge</div>
1044 <p>Free radical electrons are included in the valence free electrons count by default.</p>
1045 <p>Examples:</p>
1046 <div class="OptionsBox">
1047 NH3: ValenceFreeElectrons = 5 - 3 = 5 - 3 - 0 - 0 = 2
1048 <br/> NH2: ValenceFreeElectrons = 5 - 3 = 5 - 2 - 1 - 0 = 2
1049 <br/> NH4+; ValenceFreeElectrons = 5 - 5 = 5 - 4 - 0 - 1 = 0
1050 <br/> NH3+; ValenceFreeElectrons = 5 - 5 = 5 - 3 - 1 - 1 = 0
1051 <br/> C(=O)O- : ValenceFreeElectrons on O- = 6 - 0 = 6 - 1 - 0 - (-1) = 6
1052 <br/> C(=O)O- : ValenceFreeElectrons on =O = 6 - 2 = 6 - 2 - 0 - 0 = 4</div>
1053 </dd>
1054 <dt><strong><a name="getx" class="item"><strong>GetX</strong></a></strong></dt>
1055 <dd>
1056 <div class="OptionsBox">
1057 $X = $Atom-&gt;GetX();</div>
1058 <p>Returns value of X-coordinate for an <em>Atom</em>.</p>
1059 </dd>
1060 <dt><strong><a name="getxyz" class="item"><strong>GetXYZ</strong></a></strong></dt>
1061 <dd>
1062 <div class="OptionsBox">
1063 @XYZ = $Atom-&gt;GetXYZ();
1064 <br/> $XYZRef = $Atom-&gt;GetXYZ();</div>
1065 <p>Returns an array or a reference to an array containing values for <em>Atom</em> coordinates.</p>
1066 </dd>
1067 <dt><strong><a name="getxyzvector" class="item"><strong>GetXYZVector</strong></a></strong></dt>
1068 <dd>
1069 <div class="OptionsBox">
1070 $XYZVector = $Atom-&gt;GetXYZVector();</div>
1071 <p>Returns a <em>Vector</em> object containing values for <em>Atom</em> coordinates</p>
1072 </dd>
1073 <dt><strong><a name="gety" class="item"><strong>GetY</strong></a></strong></dt>
1074 <dd>
1075 <div class="OptionsBox">
1076 $Y = $Atom-&gt;GetY();</div>
1077 <p>Returns value of Y-coordinate for an <em>Atom</em>.</p>
1078 </dd>
1079 <dt><strong><a name="getz" class="item"><strong>GetZ</strong></a></strong></dt>
1080 <dd>
1081 <div class="OptionsBox">
1082 $Z = $Atom-&gt;GetZ();</div>
1083 <p>Returns value of Z-coordinate for an <em>Atom</em>.</p>
1084 </dd>
1085 <dt><strong><a name="isamidecarbon" class="item"><strong>IsAmideCarbon</strong></a></strong></dt>
1086 <dd>
1087 <div class="OptionsBox">
1088 $Status = $Atom-&gt;IsAmideCarbon();</div>
1089 <p>Returns 1 or 0 based on whether it's amide carbon <em>Atom</em>.</p>
1090 <p>An amide group is defineds as:</p>
1091 <div class="OptionsBox">
1092 R-C(=O)-N(-R')-R''</div>
1093 <p>where:</p>
1094 <div class="OptionsBox">
1095 o R = Hydrogen or groups of atoms attached through carbon
1096 <br/> o R' = Hydrogens or groups of atoms attached through carbon or
1097 hetro atoms
1098 <br/> o R'' = Hydrogens or groups of atoms attached through carbon or
1099 hetro atoms</div>
1100 </dd>
1101 <dt><strong><a name="isamidenitrogen" class="item"><strong>IsAmideNitrogen</strong></a></strong></dt>
1102 <dd>
1103 <div class="OptionsBox">
1104 $Status = $Atom-&gt;IsAmideNitrogen();</div>
1105 <p>Returns 1 or 0 based on whether it's amide nitrogen <em>Atom</em>.</p>
1106 </dd>
1107 <dt><strong><a name="isaromatic" class="item"><strong>IsAromatic</strong></a></strong></dt>
1108 <dd>
1109 <div class="OptionsBox">
1110 $Status = $Atom-&gt;IsAromatic();</div>
1111 <p>Returns 1 or 0 based on whether it's an aromatic <em>Atom</em>.</p>
1112 </dd>
1113 <dt><strong><a name="isarsenic" class="item"><strong>IsArsenic</strong></a></strong></dt>
1114 <dd>
1115 <div class="OptionsBox">
1116 $Status = $Atom-&gt;IsArsenic();</div>
1117 <p>Returns 1 or 0 based on whether it's an arsenic <em>Atom</em>.</p>
1118 </dd>
1119 <dt><strong><a name="isbondedtoatom" class="item"><strong>IsBondedToAtom</strong></a></strong></dt>
1120 <dd>
1121 <div class="OptionsBox">
1122 $Status = $Atom-&gt;IsBondedToAtom($OtherAtom);</div>
1123 <p>Returns 1 or 0 based on whether <em>Atom</em> is bonded to <em>OtherAtom</em>.</p>
1124 </dd>
1125 <dt><strong><a name="isbromine" class="item"><strong>IsBromine</strong></a></strong></dt>
1126 <dd>
1127 <div class="OptionsBox">
1128 $Status = $Atom-&gt;IsBromine();</div>
1129 <p>Returns 1 or 0 based on whether it's a bromine <em>Atom</em>.</p>
1130 </dd>
1131 <dt><strong><a name="iscarbon" class="item"><strong>IsCarbon</strong></a></strong></dt>
1132 <dd>
1133 <div class="OptionsBox">
1134 $Status = $Atom-&gt;IsCarbon();</div>
1135 <p>Returns 1 or 0 based on whether it's a carbon <em>Atom</em>.</p>
1136 </dd>
1137 <dt><strong><a name="iscarboxylcarbon" class="item"><strong>IsCarboxylCarbon</strong></a></strong></dt>
1138 <dd>
1139 <div class="OptionsBox">
1140 $Status = $Atom-&gt;IsCarboxylCarbon();</div>
1141 <p>Returns 1 or 0 based on whether it's a carboxyl carbon atom in carboxyl group:
1142 R-C(=O)-OH.</p>
1143 </dd>
1144 <dt><strong><a name="iscarboxyloxygen" class="item"><strong>IsCarboxylOxygen</strong></a></strong></dt>
1145 <dd>
1146 <div class="OptionsBox">
1147 $Status = $Atom-&gt;IsCarboxylOxygen();</div>
1148 <p>Returns 1 or 0 based on whether it's a carboxyl oxygen atom in carboxyl group:
1149 R-C(=O)-OH.</p>
1150 </dd>
1151 <dt><strong><a name="iscarboxylatecarbon" class="item"><strong>IsCarboxylateCarbon</strong></a></strong></dt>
1152 <dd>
1153 <div class="OptionsBox">
1154 $Status = $Atom-&gt;IsCarboxylateCarbon();</div>
1155 <p>Returns 1 or 0 based on whether it's a carboxylate carbon atom in carboxyl group:
1156 R-C(=O)-O-.</p>
1157 </dd>
1158 <dt><strong><a name="iscarboxylateoxygen" class="item"><strong>IsCarboxylateOxygen</strong></a></strong></dt>
1159 <dd>
1160 <div class="OptionsBox">
1161 $Status = $Atom-&gt;IsCarboxylateOxygen();</div>
1162 <p>Returns 1 or 0 based on whether it's a carboxylate oxygen atom in carboxyl group:
1163 R-C(=O)-O-.</p>
1164 </dd>
1165 <dt><strong><a name="ischlorine" class="item"><strong>IsChlorine</strong></a></strong></dt>
1166 <dd>
1167 <div class="OptionsBox">
1168 $Status = $Atom-&gt;IsChlorine();</div>
1169 <p>Returns 1 or 0 based on whether it's a chlorine <em>Atom</em>.</p>
1170 </dd>
1171 <dt><strong><a name="isfluorine" class="item"><strong>IsFluorine</strong></a></strong></dt>
1172 <dd>
1173 <div class="OptionsBox">
1174 $Status = $Atom-&gt;IsFluorine();</div>
1175 <p>Returns 1 or 0 based on whether it's a fluorine <em>Atom</em>.</p>
1176 </dd>
1177 <dt><strong><a name="isfunctionalclasstype" class="item"><strong>IsFunctionalClassType</strong></a></strong></dt>
1178 <dd>
1179 <div class="OptionsBox">
1180 $Status =$Atom-&gt;IsFunctionalClassType($Type);</div>
1181 <p>Returns 1 or 0 based on whether it's a specified functional class <em>Type</em>.</p>
1182 <p>The current release of MayaChemTools supports following abbreviations and descriptive
1183 names for <em>FunctionalClassType</em>:</p>
1184 <div class="OptionsBox">
1185 HBD: HydrogenBondDonor
1186 <br/> HBA: HydrogenBondAcceptor
1187 <br/> PI : PositivelyIonizable
1188 <br/> NI : NegativelyIonizable
1189 <br/> Ar : Aromatic
1190 <br/> Hal : Halogen
1191 <br/> H : Hydrophobic
1192 <br/> RA : RingAtom
1193 <br/> CA : ChainAtom</div>
1194 <p>The following definitions are used to determine functional class types: [ Ref 60-61, Ref 65-66 ]:</p>
1195 <div class="OptionsBox">
1196 HydrogenBondDonor: NH, NH2, OH
1197 <br/> HydrogenBondAcceptor: N[!H], O
1198 <br/> PositivelyIonizable: +, NH2
1199 <br/> NegativelyIonizable: -, C(=O)OH, S(=O)OH, P(=O)OH</div>
1200 </dd>
1201 <dt><strong><a name="isguadiniumcarbon" class="item"><strong>IsGuadiniumCarbon</strong></a></strong></dt>
1202 <dd>
1203 <div class="OptionsBox">
1204 $Status = $Atom-&gt;IsGuadiniumCarbon();</div>
1205 <p>Returns 1 or 0 based on whether it's a guadinium carbon in guadinium group by
1206 checking its neighbors for a nitrogen in guadinium group.</p>
1207 </dd>
1208 <dt><strong><a name="isguadiniumnitrogen" class="item"><strong>IsGuadiniumNitrogen</strong></a></strong></dt>
1209 <dd>
1210 <div class="OptionsBox">
1211 $Status = $Atom-&gt;IsGuadiniumNitrogen();</div>
1212 <p>Returns 1 or 0 based on whether it's a guadinium nitrogen in guadinium group.</p>
1213 <p>A guadinium group is defined as:</p>
1214 <div class="OptionsBox">
1215 R2N-C(=NR)-(NR2) or R2N-C(=NR2+)-(NR2)</div>
1216 <p>where:</p>
1217 <div class="OptionsBox">
1218 o R = Hydrogens or group of atoms attached through carbon
1219 <br/> o Only one of the three nitrogens has a double bond to carbon
1220 and has optional formal charge allowing it to be neutral or charged state</div>
1221 </dd>
1222 <dt><strong><a name="ishbondacceptor" class="item"><strong>IsHBondAcceptor</strong></a></strong></dt>
1223 <dd>
1224 <div class="OptionsBox">
1225 $Status =$Atom-&gt;IsHBondAcceptor();
1226 <br/> $Status =$Atom-&gt;IsHBondAcceptor($HydrogenBondsType);</div>
1227 <p>Returns 1 or 0 based on whether it's a hydrogen bond acceptor <em>Atom</em>.</p>
1228 </dd>
1229 <dt><strong><a name="ishbonddonor" class="item"><strong>IsHBondDonor</strong></a></strong></dt>
1230 <dd>
1231 <div class="OptionsBox">
1232 $Status =$Atom-&gt;IsHBondDonor();
1233 <br/> $Status =$Atom-&gt;IsHBondDonor($HydrogenBondsType);</div>
1234 <p>Returns 1 or 0 based on whether it's a hydrogen bond donor <em>Atom</em>.</p>
1235 </dd>
1236 <dt><strong><a name="ishydrogenbondacceptor" class="item"><strong>IsHydrogenBondAcceptor</strong></a></strong></dt>
1237 <dd>
1238 <div class="OptionsBox">
1239 $Status =$Atom-&gt;IsHydrogenBondAcceptor();
1240 <br/> $Status =$Atom-&gt;IsHydrogenBondAcceptor($HydrogenBondsType);</div>
1241 <p>Returns 1 or 0 based on whether it's a hydrogen bond acceptor <em>Atom</em>.</p>
1242 </dd>
1243 <dt><strong><a name="ishydrogenbonddonor" class="item"><strong>IsHydrogenBondDonor</strong></a></strong></dt>
1244 <dd>
1245 <div class="OptionsBox">
1246 $Status =$Atom-&gt;IsHydrogenBondDonor();
1247 <br/> $Status =$Atom-&gt;IsHydrogenBondDonor($HydrogenBondsType);</div>
1248 <p>Returns 1 or 0 based on whether it's a hydrogen bond donor <em>Atom</em>.</p>
1249 <p>The current release of MayaChemTools supports identification of two types of hydrogen bond
1250 donor and acceptor atoms with these names:</p>
1251 <div class="OptionsBox">
1252 HBondsType1 or HydrogenBondsType1
1253 <br/> HBondsType2 or HydrogenBondsType2</div>
1254 <p>The names of these hydrogen bond types are rather arbitrary. However, their definitions have
1255 specific meaning and are as follows:</p>
1256 <div class="OptionsBox">
1257 HydrogenBondsType1 [ Ref 60-61, Ref 65-66 ]:</div>
1258 <div class="OptionsBox">
1259 &nbsp;&nbsp;&nbsp;&nbsp; Donor: NH, NH2, OH - Any N and O with available H
1260 Acceptor: N[!H], O - Any N without available H and any O</div>
1261 <div class="OptionsBox">
1262 HydrogenBondsType2 [ Ref 91 ]:</div>
1263 <div class="OptionsBox">
1264 &nbsp;&nbsp;&nbsp;&nbsp; Donor: NH, NH2, OH - N and O with available H
1265 Acceptor: N, O - And N and O</div>
1266 <p>By default, <em>HydrogenBondsType1</em> is used to calculate number hydrogen bond donor
1267 and acceptor atoms. <em>HydrogenBondsType2</em> corresponds to <strong>RuleOf5</strong> definition
1268 of hydrogen bond donors and acceptors.</p>
1269 </dd>
1270 <dt><strong><a name="ishalogen" class="item"><strong>IsHalogen</strong></a></strong></dt>
1271 <dd>
1272 <div class="OptionsBox">
1273 $Status =$Atom-&gt;IsHalogen();</div>
1274 <p>Returns 1 or 0 based on whether it's a halogen <em>Atom</em>.</p>
1275 </dd>
1276 <dt><strong><a name="isheteroatom" class="item"><strong>IsHeteroAtom</strong></a></strong></dt>
1277 <dd>
1278 <div class="OptionsBox">
1279 $Status = $Atom-&gt;IsHeteroAtom();</div>
1280 <p>Returns 0 or 1 based on whether it's a hetro <em>Atom</em>. Following atoms are considered hetro atoms:
1281 <strong>N, O, F, P, S, Cl, Br, I</strong>.</p>
1282 </dd>
1283 <dt><strong><a name="ishydrogen" class="item"><strong>IsHydrogen</strong></a></strong></dt>
1284 <dd>
1285 <div class="OptionsBox">
1286 $Status = $Atom-&gt;IsHydrogen();</div>
1287 <p>Returns 1 or 0 based on whether it's a hydrogen <em>Atom</em>.</p>
1288 </dd>
1289 <dt><strong><a name="ishydrophobic" class="item"><strong>IsHydrophobic</strong></a></strong></dt>
1290 <dd>
1291 <div class="OptionsBox">
1292 $Status =$Atom-&gt;IsHydrophobic();</div>
1293 <p>Returns 1 or 0 based on whether it's a hydrophobic <em>Atom</em>.</p>
1294 </dd>
1295 <dt><strong><a name="isinring" class="item"><strong>IsInRing</strong></a></strong></dt>
1296 <dd>
1297 <div class="OptionsBox">
1298 $Status = $Atom-&gt;IsInRing();</div>
1299 <p>Returns 1 or 0 based on whether <em>Atom</em> is present in a ring.</p>
1300 </dd>
1301 <dt><strong><a name="isinringofsize" class="item"><strong>IsInRingOfSize</strong></a></strong></dt>
1302 <dd>
1303 <div class="OptionsBox">
1304 $Status = $Atom-&gt;IsInRingOfSize($Size);</div>
1305 <p>Returns 1 or 0 based on whether <em>Atom</em> is present in a ring of specific <em>Size</em>.</p>
1306 </dd>
1307 <dt><strong><a name="isiodine" class="item"><strong>IsIodine</strong></a></strong></dt>
1308 <dd>
1309 <div class="OptionsBox">
1310 $Status = $Atom-&gt;IsIodine();</div>
1311 <p>Returns 1 or 0 based on whether it's an iodine <em>Atom</em>.</p>
1312 </dd>
1313 <dt><strong><a name="isisotope" class="item"><strong>IsIsotope</strong></a></strong></dt>
1314 <dd>
1315 <div class="OptionsBox">
1316 $Status =$Atom-&gt;IsIsotope();</div>
1317 <p>Returns 1 or 0 based on whether it's an isotope <em>Atom</em>.</p>
1318 </dd>
1319 <dt><strong><a name="islipophilic" class="item"><strong>IsLipophilic</strong></a></strong></dt>
1320 <dd>
1321 <div class="OptionsBox">
1322 $Status =$Atom-&gt;IsLipophilic();</div>
1323 <p>Returns 1 or 0 based on whether it's a lipophilic <em>Atom</em>.</p>
1324 </dd>
1325 <dt><strong><a name="ismetallic" class="item"><strong>IsMetallic</strong></a></strong></dt>
1326 <dd>
1327 <div class="OptionsBox">
1328 $Status = $Atom-&gt;IsMetallic();</div>
1329 <p>Returns 1 or 0 based on whether it's a metallic <em>Atom</em>.</p>
1330 </dd>
1331 <dt><strong><a name="isnegativelyionizable" class="item"><strong>IsNegativelyIonizable</strong></a></strong></dt>
1332 <dd>
1333 <div class="OptionsBox">
1334 $Status =$Atom-&gt;IsNegativelyIonizable();</div>
1335 <p>Returns 1 or 0 based on whether it's a negatively ionizable atom <em>Atom</em>.</p>
1336 </dd>
1337 <dt><strong><a name="isnitrogen" class="item"><strong>IsNitrogen</strong></a></strong></dt>
1338 <dd>
1339 <div class="OptionsBox">
1340 $Status = $Atom-&gt;IsNitrogen();</div>
1341 <p>Returns 1 or 0 based on whether it's a nitrogen <em>Atom</em>.</p>
1342 </dd>
1343 <dt><strong><a name="isnoncarbonorhydrogen" class="item"><strong>IsNonCarbonOrHydrogen</strong></a></strong></dt>
1344 <dd>
1345 <div class="OptionsBox">
1346 $Status =$Atom-&gt;IsNonCarbonOrHydrogen();</div>
1347 <p>Returns 1 or 0 based on whether it's not a carbon or hydrogen <em>Atom</em>.</p>
1348 </dd>
1349 <dt><strong><a name="isnotinring" class="item"><strong>IsNotInRing</strong></a></strong></dt>
1350 <dd>
1351 <div class="OptionsBox">
1352 $Status = $Atom-&gt;IsNotInRing();</div>
1353 <p>Returns 1 or 0 based on whether <em>Atom</em> is not present in a ring.</p>
1354 </dd>
1355 <dt><strong><a name="isonlyinonering" class="item"><strong>IsOnlyInOneRing</strong></a></strong></dt>
1356 <dd>
1357 <div class="OptionsBox">
1358 $Status = $Atom-&gt;IsOnlyInOneRing();</div>
1359 <p>Returns 1 or 0 based on whether <em>Atom</em> is only present in one ring.</p>
1360 </dd>
1361 <dt><strong><a name="isoxygen" class="item"><strong>IsOxygen</strong></a></strong></dt>
1362 <dd>
1363 <div class="OptionsBox">
1364 $Status = $Atom-&gt;IsOxygen();</div>
1365 <p>Returns 0 or 1 based on whether it's an oxygen <em>Atom</em>.</p>
1366 </dd>
1367 <dt><strong><a name="isphosphorus" class="item"><strong>IsPhosphorus</strong></a></strong></dt>
1368 <dd>
1369 <div class="OptionsBox">
1370 $Status = $Atom-&gt;IsPhosphorus();</div>
1371 <p>Returns 0 or 1 based on whether it's a phosphorus <em>Atom</em>.</p>
1372 </dd>
1373 <dt><strong><a name="isphosphateoxygen" class="item"><strong>IsPhosphateOxygen</strong></a></strong></dt>
1374 <dd>
1375 <div class="OptionsBox">
1376 $Status = $Atom-&gt;IsPhosphateOxygen();</div>
1377 <p>Returns 1 or 0 based on whether it's a phosphate oxygen in phosphate group.</p>
1378 <p>A phosphate group is defined as:</p>
1379 <div class="OptionsBox">
1380 AO-(O=)P(-OA)-OA</div>
1381 <p>Where:</p>
1382 <div class="OptionsBox">
1383 A - Any group of atoms including hydrogens</div>
1384 </dd>
1385 <dt><strong><a name="isphosphatephosphorus" class="item"><strong>IsPhosphatePhosphorus</strong></a></strong></dt>
1386 <dd>
1387 <div class="OptionsBox">
1388 $Status = $Atom-&gt;IsPhosphatePhosphorus();</div>
1389 <p>Returns 1 or 0 based on whether it's a phosphate phosphorus in phosphate group.</p>
1390 </dd>
1391 <dt><strong><a name="ispolaratom" class="item"><strong>IsPolarAtom</strong></a></strong></dt>
1392 <dd>
1393 <div class="OptionsBox">
1394 $Status = $Atom-&gt;IsPolarAtom();</div>
1395 <p>Returns 0 or 1 based on whether it's a polar <em>Atom</em>. Following atoms are considered polar atoms:
1396 <strong>N, O, P, S</strong>.</p>
1397 </dd>
1398 <dt><strong><a name="ispolarhydrogen" class="item"><strong>IsPolarHydrogen</strong></a></strong></dt>
1399 <dd>
1400 <div class="OptionsBox">
1401 $Status = $Atom-&gt;IsPolarHydrogen();</div>
1402 <p>Returns 0 or 1 based on whether it's a hydrogen <em>Atom</em> bonded to a polar atom.</p>
1403 </dd>
1404 <dt><strong><a name="ispositivelyionizable" class="item"><strong>IsPositivelyIonizable</strong></a></strong></dt>
1405 <dd>
1406 <div class="OptionsBox">
1407 $Status =$Atom-&gt;IsPositivelyIonizable();</div>
1408 <p>Returns 1 or 0 based on whether it's a positively ionizable <em>Atom</em>.</p>
1409 </dd>
1410 <dt><strong><a name="issaturated" class="item"><strong>IsSaturated</strong></a></strong></dt>
1411 <dd>
1412 <div class="OptionsBox">
1413 $Status = $Atom-&gt;IsSaturated();</div>
1414 <p>Returns 1 or 0 based on whether it's a saturated <em>Atom</em>. An atom attached
1415 to other atoms with only single bonds is considered a saturated atom.</p>
1416 </dd>
1417 <dt><strong><a name="isselenium" class="item"><strong>IsSelenium</strong></a></strong></dt>
1418 <dd>
1419 <div class="OptionsBox">
1420 $Status = $Atom-&gt;IsSelenium();</div>
1421 <p>Returns 0 or 1 based on whether it's a selenium <em>Atom</em>.</p>
1422 </dd>
1423 <dt><strong><a name="isstereocenter" class="item"><strong>IsStereoCenter</strong></a></strong></dt>
1424 <dd>
1425 <div class="OptionsBox">
1426 $Status = $Atom-&gt;IsStereoCenter();</div>
1427 <p>Returns 0 or 1 based on whether it's marked as a stero center <em>Atom</em> by explicit setting
1428 of <em>StereoCenter</em> atom propert to value of <em>1</em>.</p>
1429 </dd>
1430 <dt><strong><a name="issilicon" class="item"><strong>IsSilicon</strong></a></strong></dt>
1431 <dd>
1432 <div class="OptionsBox">
1433 $Status = $Atom-&gt;IsSilicon();</div>
1434 <p>Returns 0 or 1 based on whether it's a silicon <em>Atom</em>.</p>
1435 </dd>
1436 <dt><strong><a name="issulfur" class="item"><strong>IsSulfur</strong></a></strong></dt>
1437 <dd>
1438 <div class="OptionsBox">
1439 $Status = $Atom-&gt;IsSulfur();</div>
1440 <p>Returns 0 or 1 based on whether it's a sulfur <em>Atom</em>.</p>
1441 </dd>
1442 <dt><strong><a name="issulphur" class="item"><strong>IsSulphur</strong></a></strong></dt>
1443 <dd>
1444 <div class="OptionsBox">
1445 $Status = $Atom-&gt;IsSulphur();</div>
1446 <p>Returns 0 or 1 based on whether it's a sulfur <em>Atom</em>.</p>
1447 </dd>
1448 <dt><strong><a name="istellurium" class="item"><strong>IsTellurium</strong></a></strong></dt>
1449 <dd>
1450 <div class="OptionsBox">
1451 $Status = $Atom-&gt;IsTellurium();</div>
1452 <p>Returns 0 or 1 based on whether it's a tellurium <em>Atom</em>.</p>
1453 </dd>
1454 <dt><strong><a name="isterminal" class="item"><strong>IsTerminal</strong></a></strong></dt>
1455 <dd>
1456 <div class="OptionsBox">
1457 $Status = $Atom-&gt;IsTerminal();</div>
1458 <p>Returns 0 or 1 based on whether it's a terminal <em>Atom</em> attached to no
1459 more than one non-hydrogen atom.</p>
1460 </dd>
1461 <dt><strong><a name="isunsaturated" class="item"><strong>IsUnsaturated</strong></a></strong></dt>
1462 <dd>
1463 <div class="OptionsBox">
1464 $Status = $Atom-&gt;IsUnsaturated();</div>
1465 <p>Returns 1 or 0 based on whether it's as unsaturated <em>Atom</em>. An atom attached
1466 to other atoms with at least one non-single bond is considered an unsaturated atom.</p>
1467 </dd>
1468 <dt><strong><a name="istopologicalpharmacophoretype" class="item"><strong>IsTopologicalPharmacophoreType</strong></a></strong></dt>
1469 <dd>
1470 <div class="OptionsBox">
1471 $Status =$Atom-&gt;IsTopologicalPharmacophoreType();</div>
1472 <p>Returns 1 or 0 based on whether it's any of the supportyed topological pharmacophore
1473 <em>Atom</em> type. See <em>IsFunctionalClassType</em> for a list of supported types.</p>
1474 </dd>
1475 <dt><strong><a name="setatomsymbol" class="item"><strong>SetAtomSymbol</strong></a></strong></dt>
1476 <dd>
1477 <div class="OptionsBox">
1478 $Atom-&gt;SetAtomSymbol($AtomicSymbol);</div>
1479 <p>Sets atom symbol for <em>Atom</em> and returns <em>Atom</em> object. The appropriate atomic number is also
1480 set automatically.</p>
1481 </dd>
1482 <dt><strong><a name="setatomicnumber" class="item"><strong>SetAtomicNumber</strong></a></strong></dt>
1483 <dd>
1484 <div class="OptionsBox">
1485 $Atom-&gt;SetAtomicNumber($AtomicNumber);</div>
1486 <p>Sets atomic number for <em>Atom</em> and returns <em>Atom</em> object. The appropriate atom symbol is also
1487 set automatically.</p>
1488 </dd>
1489 <dt><strong><a name="setmassnumber" class="item"><strong>SetMassNumber</strong></a></strong></dt>
1490 <dd>
1491 <div class="OptionsBox">
1492 $Atom-&gt;SetMassNumber($MassNumber);</div>
1493 <p>Sets mass number for <em>Atom</em> and returns <em>Atom</em> object.</p>
1494 </dd>
1495 <dt><strong><a name="setstereocenter" class="item"><strong>SetStereoCenter</strong></a></strong></dt>
1496 <dd>
1497 <div class="OptionsBox">
1498 $Atom-&gt;SetStereoCenter($StereoCenter);</div>
1499 <p>Sets stereo center for <em>Atom</em> and returns <em>Atom</em> object.</p>
1500 </dd>
1501 <dt><strong><a name="setstereochemistry" class="item"><strong>SetStereochemistry</strong></a></strong></dt>
1502 <dd>
1503 <div class="OptionsBox">
1504 $Atom-&gt;SetStereochemistry($Stereochemistry);</div>
1505 <p>Sets stereo chemistry for <em>Atom</em> and returns <em>Atom</em> object.</p>
1506 </dd>
1507 <dt><strong><a name="setx" class="item"><strong>SetX</strong></a></strong></dt>
1508 <dd>
1509 <div class="OptionsBox">
1510 $Atom-&gt;SetX($Value);</div>
1511 <p>Sets X-coordinate value for <em>Atom</em> and returns <em>Atom</em> object.</p>
1512 </dd>
1513 <dt><strong><a name="setxyz" class="item"><strong>SetXYZ</strong></a></strong></dt>
1514 <dd>
1515 <div class="OptionsBox">
1516 $Atom-&gt;SetXYZ(@XYZValues);
1517 <br/> $Atom-&gt;SetXYZ($XYZValuesRef);
1518 <br/> $Atom-&gt;SetXYZ($XYZVector);</div>
1519 <p>Sets <em>Atom</em> coordinates using an array, reference to an array or a <em>Vector</em> object and
1520 returns <em>Atom</em> object.</p>
1521 </dd>
1522 <dt><strong><a name="sety" class="item"><strong>SetY</strong></a></strong></dt>
1523 <dd>
1524 <div class="OptionsBox">
1525 $Atom-&gt;SetY($Value);</div>
1526 <p>Sets Y-coordinate value for <em>Atom</em> and returns <em>Atom</em> object.</p>
1527 </dd>
1528 <dt><strong><a name="setz" class="item"><strong>SetZ</strong></a></strong></dt>
1529 <dd>
1530 <div class="OptionsBox">
1531 $Atom-&gt;SetZ($Value);</div>
1532 <p>Sets Z-coordinate value for <em>Atom</em> and returns <em>Atom</em> object.</p>
1533 </dd>
1534 <dt><strong><a name="stringifyatom" class="item"><strong>StringifyAtom</strong></a></strong></dt>
1535 <dd>
1536 <div class="OptionsBox">
1537 $AtomString = $Atom-&gt;StringifyAtom();</div>
1538 <p>Returns a string containing information about <em>Atom</em> object.</p>
1539 </dd>
1540 </dl>
1541 <p>
1542 </p>
1543 <h2>AUTHOR</h2>
1544 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p>
1545 <p>
1546 </p>
1547 <h2>SEE ALSO</h2>
1548 <p><a href="./Bond.html">Bond.pm</a>,&nbsp<a href="./Molecule.html">Molecule.pm</a>,&nbsp<a href="./MoleculeFileIO.html">MoleculeFileIO.pm</a>
1549 </p>
1550 <p>
1551 </p>
1552 <h2>COPYRIGHT</h2>
1553 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p>
1554 <p>This file is part of MayaChemTools.</p>
1555 <p>MayaChemTools is free software; you can redistribute it and/or modify it under
1556 the terms of the GNU Lesser General Public License as published by the Free
1557 Software Foundation; either version 3 of the License, or (at your option)
1558 any later version.</p>
1559 <p>&nbsp</p><p>&nbsp</p><div class="DocNav">
1560 <table width="100%" border=0 cellpadding=0 cellspacing=2>
1561 <tr align="left" valign="top"><td width="33%" align="left"><a href="./AminoAcids.html" title="AminoAcids.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./AtomicDescriptors.html" title="AtomicDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>Atom.pm</strong></td></tr>
1562 </table>
1563 </div>
1564 <br />
1565 <center>
1566 <img src="../../images/h2o2.png">
1567 </center>
1568 </body>
1569 </html>