comparison mayachemtools/docs/modules/man3/Atom.3 @ 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 .\" Automatically generated by Pod::Man 2.25 (Pod::Simple 3.22)
2 .\"
3 .\" Standard preamble:
4 .\" ========================================================================
5 .de Sp \" Vertical space (when we can't use .PP)
6 .if t .sp .5v
7 .if n .sp
8 ..
9 .de Vb \" Begin verbatim text
10 .ft CW
11 .nf
12 .ne \\$1
13 ..
14 .de Ve \" End verbatim text
15 .ft R
16 .fi
17 ..
18 .\" Set up some character translations and predefined strings. \*(-- will
19 .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
20 .\" double quote, and \*(R" will give a right double quote. \*(C+ will
21 .\" give a nicer C++. Capital omega is used to do unbreakable dashes and
22 .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff,
23 .\" nothing in troff, for use with C<>.
24 .tr \(*W-
25 .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
26 .ie n \{\
27 . ds -- \(*W-
28 . ds PI pi
29 . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
30 . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch
31 . ds L" ""
32 . ds R" ""
33 . ds C` ""
34 . ds C' ""
35 'br\}
36 .el\{\
37 . ds -- \|\(em\|
38 . ds PI \(*p
39 . ds L" ``
40 . ds R" ''
41 'br\}
42 .\"
43 .\" Escape single quotes in literal strings from groff's Unicode transform.
44 .ie \n(.g .ds Aq \(aq
45 .el .ds Aq '
46 .\"
47 .\" If the F register is turned on, we'll generate index entries on stderr for
48 .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
49 .\" entries marked with X<> in POD. Of course, you'll have to process the
50 .\" output yourself in some meaningful fashion.
51 .ie \nF \{\
52 . de IX
53 . tm Index:\\$1\t\\n%\t"\\$2"
54 ..
55 . nr % 0
56 . rr F
57 .\}
58 .el \{\
59 . de IX
60 ..
61 .\}
62 .\"
63 .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
64 .\" Fear. Run. Save yourself. No user-serviceable parts.
65 . \" fudge factors for nroff and troff
66 .if n \{\
67 . ds #H 0
68 . ds #V .8m
69 . ds #F .3m
70 . ds #[ \f1
71 . ds #] \fP
72 .\}
73 .if t \{\
74 . ds #H ((1u-(\\\\n(.fu%2u))*.13m)
75 . ds #V .6m
76 . ds #F 0
77 . ds #[ \&
78 . ds #] \&
79 .\}
80 . \" simple accents for nroff and troff
81 .if n \{\
82 . ds ' \&
83 . ds ` \&
84 . ds ^ \&
85 . ds , \&
86 . ds ~ ~
87 . ds /
88 .\}
89 .if t \{\
90 . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
91 . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
92 . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
93 . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
94 . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
95 . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
96 .\}
97 . \" troff and (daisy-wheel) nroff accents
98 .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
99 .ds 8 \h'\*(#H'\(*b\h'-\*(#H'
100 .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
101 .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
102 .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
103 .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
104 .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
105 .ds ae a\h'-(\w'a'u*4/10)'e
106 .ds Ae A\h'-(\w'A'u*4/10)'E
107 . \" corrections for vroff
108 .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
109 .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
110 . \" for low resolution devices (crt and lpr)
111 .if \n(.H>23 .if \n(.V>19 \
112 \{\
113 . ds : e
114 . ds 8 ss
115 . ds o a
116 . ds d- d\h'-1'\(ga
117 . ds D- D\h'-1'\(hy
118 . ds th \o'bp'
119 . ds Th \o'LP'
120 . ds ae ae
121 . ds Ae AE
122 .\}
123 .rm #[ #] #H #V #F C
124 .\" ========================================================================
125 .\"
126 .IX Title "ATOM 1"
127 .TH ATOM 1 "2015-03-29" "perl v5.14.2" "MayaChemTools"
128 .\" For nroff, turn off justification. Always turn off hyphenation; it makes
129 .\" way too many mistakes in technical documents.
130 .if n .ad l
131 .nh
132 .SH "NAME"
133 Atom
134 .SH "SYNOPSIS"
135 .IX Header "SYNOPSIS"
136 use Atom;
137 .SH "DESCRIPTION"
138 .IX Header "DESCRIPTION"
139 \&\fBAtom\fR class provides the following methods:
140 .PP
141 new, AddHydrogens, Copy, DeleteAtom, DeleteHydrogens, DoesAtomNeighborhoodMatch,
142 GetAtomicInvariantValue, GetAtomicWeight, GetBondToAtom, GetBonds,
143 GetBondsToHeavyAtoms, GetBondsToHydrogenAtoms, GetBondsToNonHydrogenAtoms,
144 GetExactMass, GetExplicitHydrogens, GetFormalCharge, GetFreeRadicalElectrons,
145 GetGroupNumber, GetHeavyAtomNeighbors, GetHeavyAtomNeighborsAtomInformation,
146 GetHeavyAtomNeighborsBondformation, GetHighestCommonValence,
147 GetHydrogenAtomNeighbors, GetHydrogens, GetImplicitHydrogens, GetLargestBondOrder,
148 GetLargestBondOrderToHeavyAtoms, GetLargestBondOrderToNonHydrogenAtoms,
149 GetLargestRing, GetLowestCommonValence, GetMassNumber, GetMissingHydrogens,
150 GetNeighbors, GetNeighborsUsingAtomSpecification, GetNonHydrogenAtomNeighbors,
151 GetNonHydrogenAtomNeighborsAtomInformation,
152 GetNonHydrogenAtomNeighborsBondInformation, GetNonHydrogenNeighborOfHydrogenAtom,
153 GetNumOfAromaticBondsToHeavyAtoms, GetNumOfAromaticBondsToNonHydrogenAtoms,
154 GetNumOfBondTypesToHeavyAtoms, GetNumOfBondTypesToNonHydrogenAtoms, GetNumOfBonds,
155 GetNumOfBondsToHeavyAtoms, GetNumOfBondsToHydrogenAtoms,
156 GetNumOfBondsToNonHydrogenAtoms, GetNumOfDoubleBondsToHeavyAtoms,
157 GetNumOfBondsAvailableForHeavyAtoms, GetNumOfBondsAvailableForNonHydrogenAtoms,
158 GetNumOfDoubleBondsToNonHydrogenAtoms, GetNumOfExplicitHydrogens,
159 GetNumOfHeavyAtomNeighbors, GetNumOfHydrogenAtomNeighbors, GetNumOfHydrogens,
160 GetNumOfImplicitHydrogens, GetNumOfMissingHydrogens, GetNumOfNeighbors,
161 GetNumOfNonHydrogenAtomNeighbors, GetNumOfRings, GetNumOfRingsWithEvenSize,
162 GetNumOfRingsWithOddSize, GetNumOfRingsWithSize, GetNumOfRingsWithSizeGreaterThan,
163 GetNumOfRingsWithSizeLessThan, GetNumOfSigmaAndPiBondsToHeavyAtoms,
164 GetNumOfSigmaAndPiBondsToNonHydrogenAtoms, GetNumOfSingleBondsToHeavyAtoms,
165 GetNumOfSingleBondsToNonHydrogenAtoms, GetNumOfTripleBondsToHeavyAtoms,
166 GetNumOfTripleBondsToNonHydrogenAtoms, GetPeriodNumber,
167 GetPotentialTotalCommonValence, GetRings, GetRingsWithEvenSize,
168 GetRingsWithOddSize, GetRingsWithSize, GetRingsWithSizeGreaterThan,
169 GetRingsWithSizeLessThan, GetSizeOfLargestRing, GetSizeOfSmallestRing,
170 GetSmallestRing, GetSpinMultiplicity, GetSumOfBondOrders,
171 GetSumOfBondOrdersToHeavyAtoms, GetSumOfBondOrdersToHydrogenAtoms,
172 GetSumOfBondOrdersToNonHydrogenAtoms, GetValence, GetValenceElectrons,
173 GetValenceFreeElectrons, GetX, GetXYZ, GetXYZVector, GetY, GetZ, IsAmideCarbon,
174 IsAmideNitrogen, IsAromatic, IsArsenic, IsBondedToAtom, IsBromine, IsCarbon, IsCarboxylCarbon,
175 IsCarboxylOxygen, IsCarboxylateCarbon, IsCarboxylateOxygen, IsChlorine,
176 IsFluorine, IsFunctionalClassType, IsGuadiniumCarbon, IsGuadiniumNitrogen,
177 IsHBondAcceptor, IsHBondDonor, IsHalogen, IsHeteroAtom, IsHydrogen,
178 IsHydrogenBondAcceptor, IsHydrogenBondDonor, IsHydrophobic, IsInRing,
179 IsInRingOfSize, IsIodine, IsIsotope, IsLipophilic, IsMetallic,
180 IsNegativelyIonizable, IsNitrogen, IsNonCarbonOrHydrogen, IsNotInRing,
181 IsOnlyInOneRing, IsOxygen, IsPhosphateOxygen, IsPhosphatePhosphorus, IsPhosphorus,
182 IsPolarAtom, IsPolarHydrogen, IsPositivelyIonizable, IsSaturated, IsSelenium,
183 IsSilicon, IsStereoCenter, IsSulfur, IsSulphur, IsTellurium, IsTerminal,
184 IsTopologicalPharmacophoreType, IsUnsaturated, SetAtomSymbol, SetAtomicNumber,
185 SetExplicitHydrogens, SetMassNumber, SetStereoCenter, SetStereochemistry,
186 SetX, SetXYZ, SetY, SetZ, StringifyAtom
187 .PP
188 \&\fBAtom\fR class is derived from \fBObjectProperty\fR base class which provides methods not explicitly
189 defined in \fBAtom\fR or \fBObjectProperty\fR class using Perl's \s-1AUTOLOAD\s0 functionality. These methods
190 are generated on-the-fly for a specified object property:
191 .PP
192 .Vb 3
193 \& Set<PropertyName>(<PropertyValue>);
194 \& $PropertyValue = Get<PropertyName>();
195 \& Delete<PropertyName>();
196 .Ve
197 .SS "\s-1METHODS\s0"
198 .IX Subsection "METHODS"
199 .IP "\fBnew\fR" 4
200 .IX Item "new"
201 .Vb 1
202 \& $NewAtom = new Atom([%PropertyNameAndValues]);
203 .Ve
204 .Sp
205 Using specified \fIAtom\fR property names and values hash, \fBnew\fR method creates a new object
206 and returns a reference to newly created \fBAtom\fR object. By default, following properties are
207 initialized:
208 .Sp
209 .Vb 5
210 \& ID = SequentialObjectID
211 \& Name = "Atom <SequentialObjectID>"
212 \& AtomSymbol = ""
213 \& AtomicNumber = 0
214 \& XYZ = ZeroVector
215 .Ve
216 .Sp
217 Except for \fI\s-1ID\s0\fR property, all other default properties and other additional properties can
218 be set during invocation of this method.
219 .Sp
220 Examples:
221 .Sp
222 .Vb 5
223 \& $Atom = new Atom();
224 \& $CarbonAtom = new Atom(\*(AqAtomSymbol\*(Aq => \*(AqC\*(Aq, \*(AqXYZ\*(Aq => (0.0, 1.0,
225 \& 0.0));
226 \& $OxygenAtom = new Atom(\*(AqAtomName\*(Aq => \*(AqOxygen\*(Aq, AtomSymbol\*(Aq => \*(AqO\*(Aq,
227 \& \*(AqXYZ\*(Aq => (1.0, 1.0, 1.0));
228 .Ve
229 .IP "\fBAddHydrogens\fR" 4
230 .IX Item "AddHydrogens"
231 .Vb 1
232 \& $NumOfHydrogensAdded = $Atom\->AddHydrogens();
233 .Ve
234 .Sp
235 Adds hydrogens to an \fBAtom\fR present in a \fBMolecule\fR object and returns
236 the number of added hydrogens. The current release of MayaChemTools doesn't
237 assign hydrogen positions.
238 .IP "\fBCopy\fR" 4
239 .IX Item "Copy"
240 .Vb 1
241 \& $AtomCopy = $Atom\->Copy();
242 .Ve
243 .Sp
244 Copy \fIAtom\fR and its associated data using \fBStorable::dclone\fR and return a new
245 \&\fBAtom\fR object.
246 .IP "\fBDeleteAtom\fR" 4
247 .IX Item "DeleteAtom"
248 .Vb 1
249 \& $Atom\->DeleteAtom();
250 .Ve
251 .Sp
252 Delete \fIAtom\fR from a molecule.
253 .IP "\fBDoesAtomNeighborhoodMatch\fR" 4
254 .IX Item "DoesAtomNeighborhoodMatch"
255 .Vb 8
256 \& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec);
257 \& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec,
258 \& $NbrAtomSpecsRef);
259 \& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec,
260 \& $NbrAtomSpecsRef, $AllowedNbrBondSpecsRef);
261 \& $Status = $Atom\->DoesAtomNeighborhoodMatch($CentralAtomSpec,
262 \& $NbrAtomSpecsRef, $NbrBondSpecsRef,
263 \& $AllowedNbrOfNbrAtomSpecsRef);
264 .Ve
265 .Sp
266 Returns 1 or 0 based on whether atom matches central atom and its neighborhood
267 using specified atom and bonds specifications. Neighborhood atom and bond specifications
268 are specified as array references containing neighbor atom and bond specifications.
269 .Sp
270 Let:
271 .Sp
272 .Vb 2
273 \& AS = Atom symbol corresponding to element symbol, atomic number (#n)
274 \& or any atom (A)
275 \&
276 \& X<n> = Number of non\-hydrogen atom neighbors or heavy atoms
277 \& attached to atom
278 \& T<n> = Total number of atom neighbors including implicit and explicit
279 \& hydrogens
280 \& BO<n> = Sum of bond orders to non\-hydrogen atom neighbors or heavy
281 \& atoms attached to atom
282 \& LBO<n> = Largest bond order of non\-hydrogen atom neighbors or heavy
283 \& atoms attached to atom
284 \& SB<n> = Number of single bonds to non\-hydrogen atom neighbors or
285 \& heavy atoms attached to atom
286 \& TSB<n> = Total number of single bonds to atom neighbors including implicit
287 \& and explicit hydrogens
288 \& DB<n> = Number of double bonds to non\-hydrogen atom neighbors or
289 \& heavy atoms attached to atom
290 \& TB<n> = Number of triple bonds to non\-hydrogen atom neighbors or
291 \& heavy atoms attached to atom
292 \& AB<n> = Number of aromatic bonds to non\-hydrogen atom neighbors or
293 \& heavy atoms attached to atom
294 \& H<n> = Number of implicit and explicit hydrogens for atom
295 \& Ar = Aromatic annotation indicating whether atom is aromatic
296 \& RA or RA<n> = Ring atom annotation indicating whether atom
297 \& is a ring
298 \& TR<n> = Total number of rings containing atom
299 \& FC<+n/\-n> = Formal charge assigned to atom
300 \& MN<n> = Mass number indicating isotope other than most abundant isotope
301 \& SM<n> = Spin multiplicity of atom. Possible values: 1 (singlet),
302 \& 2 (doublet) or 3 (triplet)
303 .Ve
304 .Sp
305 Then, atom specification corresponds to:
306 .Sp
307 .Vb 2
308 \& AS.X<n>.T<n>.BO<n>.LBO<n>.<SB><n>.TSB<n>.<DB><n>.<TB><n>.AB<n>.H<n>.Ar.
309 \& RA<n>.TR<n>FC<+n/\-n>.MN<n>.SM<n>
310 .Ve
311 .Sp
312 Except for \s-1AS\s0 which is a required atomic invariant in atom specification, all other atomic invariants are
313 optional. For an atom specification to match an atom, the values of all specified atomic invariants must
314 match. Exclamation in from of atomic invariant can be used to negate its effect during the match.
315 .Sp
316 For \fI\s-1FC\s0\fR value matching, the following value operators are also supported:
317 .Sp
318 .Vb 4
319 \& o +* : Any positive value
320 \& o \-* : Any negative value
321 \& o > ValidNumber or >= ValidNumber
322 \& o < ValidNumber or <= ValidNumber
323 .Ve
324 .Sp
325 A comma delimited atom specification string is used to match any one of the specified atom specification.
326 .Sp
327 Notes:
328 .Sp
329 .Vb 2
330 \& o During atom specification match to an atom, the first atomic invariant is always assumed to
331 \& atom symbol.
332 .Ve
333 .Sp
334 Examples:
335 .Sp
336 .Vb 5
337 \& o (\*(AqN\*(Aq, \*(AqN\*(Aq, \*(AqN\*(Aq)
338 \& o (\*(AqN.FC0\*(Aq, \*(AqN.FC0\*(Aq, \*(AqN,N.FC+1.H1\*(Aq)
339 \& o (\*(AqN.H2\*(Aq, \*(AqN.H2\*(Aq, \*(AqN.H1\*(Aq)
340 \& o (\*(AqC,N\*(Aq, \*(Aq!N\*(Aq, \*(Aq!H\*(Aq)
341 \& o (\*(AqC,N\*(Aq, \*(AqN.Ar\*(Aq, \*(AqN.R5\*(Aq)
342 .Ve
343 .Sp
344 Let:
345 .Sp
346 .Vb 4
347 \& \-|1|s|Single = Single bond
348 \& =|2|d|Double = Double bond
349 \& #|3|t|Triple = Triple bond
350 \& :|1.5|a|Ar|Aromatic = Aromatic bond
351 \&
352 \& @|RB|Ring = Ring bond
353 \& ~|*|Any = Any bond
354 .Ve
355 .Sp
356 Then, bond specification corresponds to:
357 .Sp
358 .Vb 3
359 \& \-.:
360 \& =.@
361 \& Double.Aromatic
362 .Ve
363 .Sp
364 For a bond specification to match bond between two atoms, the values of all specified bond symbols must
365 match. Exclamation in from of bond symbol can be used to negate its effect during the match.
366 .Sp
367 A comma delimited bond specification string is used to match any one of the specified atom specification.
368 .Sp
369 Notes:
370 .Sp
371 .Vb 3
372 \& o During atom neighborhood match for central atom neighborhood atom and bond specifications,
373 \& implicit or missing hydrogens are automatically checked for any matches to unmatched
374 \& specifications.
375 .Ve
376 .Sp
377 Examples:
378 .Sp
379 .Vb 2
380 \& Aromatic carbon in a 5 membered ring:
381 \& $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.Ar.RA5\*(Aq);
382 \&
383 \& AcetylenicCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.T2.TB1\*(Aq); or
384 \& $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.T2.TB1\*(Aq,
385 \& [\*(Aq*\*(Aq, \*(Aq*\*(Aq], [\*(Aq#\*(Aq, \*(Aq\-\*(Aq]);
386 \&
387 \& GuadiniumCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4\*(Aq,
388 \& [\*(AqN.FC0\*(Aq, \*(AqN.FC0\*(Aq, \*(AqN.FC0,N.FC+1\*(Aq],
389 \& [\*(Aq\-\*(Aq, \*(Aq\-\*(Aq, \*(Aq=\*(Aq],
390 \& [\*(AqC,H\*(Aq, \*(AqC,H\*(Aq, \*(AqC,H\*(Aq]);
391 \&
392 \& AmideCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq,
393 \& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqN\*(Aq],
394 \& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq],
395 \& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC,H,N,O,S,P,F,Cl,Br,I\*(Aq]);
396 \&
397 \& CarboxylCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq,
398 \& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqO.X1.FC0\*(Aq],
399 \& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq],
400 \& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC\*(Aq]);
401 \&
402 \& CarboxylateCarbon: $Atom\->DoesAtomNeighborhoodMatch(\*(AqC.X3.BO4,C.X2.BO3\*(Aq,
403 \& [\*(AqC,H\*(Aq, \*(AqO\*(Aq, \*(AqO.X1.FC\-1\*(Aq],
404 \& [\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aq\-\*(Aq],
405 \& [\*(AqC,H\*(Aq, \*(AqC\*(Aq, \*(AqC\*(Aq]);
406 .Ve
407 .IP "\fBDeleteHydrogens\fR" 4
408 .IX Item "DeleteHydrogens"
409 .Vb 1
410 \& $NumOfHydrogensDeleted = $Atom\->AddHydrogens();
411 .Ve
412 .Sp
413 Delete hydrogens from an \fBAtom\fR present in a \fBMolecule\fR object and returns
414 the number of deleted hydrogens.
415 .IP "\fBGetAtomicInvariantValue\fR" 4
416 .IX Item "GetAtomicInvariantValue"
417 .Vb 1
418 \& $Value = $Atom\->GetAtomicInvariantValue($AtomicInvariant);
419 .Ve
420 .Sp
421 Returns atomic invariant value for a specified \fIAtomicInvariant\fR. The current release
422 of MayaChemTools supports following abbreviations and descriptive names for
423 \&\fIAtomicInvarints\fR:
424 .Sp
425 .Vb 10
426 \& AS : Atom or element symbol
427 \& X : NumOfNonHydrogenAtomNeighbors or NumOfHeavyAtomNeighbors
428 \& T : TotalNumOfAtomNeighbors
429 \& BO : SumOfBondOrdersToNonHydrogenAtoms or SumOfBondOrdersToHeavyAtoms
430 \& LBO : LargestBondOrderToNonHydrogenAtoms or LargestBondOrderToHeavyAtoms
431 \& SB : NumOfSingleBondsToNonHydrogenAtoms or NumOfSingleBondsToHeavyAtoms
432 \& TSB : TotalNumOfSingleBonds
433 \& DB : NumOfDoubleBondsToNonHydrogenAtoms or NumOfDoubleBondsToHeavyAtoms
434 \& TB : NumOfTripleBondsToNonHydrogenAtoms or NumOfTripleBondsToHeavyAtoms
435 \& AB : NumOfAromaticBondsToNonHydrogenAtoms or NumOfAromaticBondsToHeavyAtoms
436 \& H : NumOfImplicitAndExplicitHydrogens
437 \& Ar : Aromatic
438 \& Str : Stereochemistry
439 \& RA : RingAtom
440 \& FC : FormalCharge
441 \& AN : AtomicNumber
442 \& AM : AtomicMass
443 \& MN : MassNumber
444 \& SM : SpinMultiplicity
445 .Ve
446 .IP "\fBGetAtomicWeight\fR" 4
447 .IX Item "GetAtomicWeight"
448 .Vb 1
449 \& $Value = $Aom\->GetAtomicWeight();
450 .Ve
451 .Sp
452 Returns atomic weight of an \fBAtom\fR which corresponds to either explicity set \fIAtomicWeight\fR
453 atom property or atomic weight of the corresponding element in the periodic table available by
454 \&\fBPeriodicTable\fR module.
455 .IP "\fBGetBondToAtom\fR" 4
456 .IX Item "GetBondToAtom"
457 .Vb 1
458 \& $Bond = $Atom\->GetBondToAtom($OtherAtom);
459 .Ve
460 .Sp
461 Returns a \fBBond\fR object corresponding to bond between \fIAtom\fR and \fIOtherAtom\fR in
462 a molecule.
463 .IP "\fBGetBonds\fR" 4
464 .IX Item "GetBonds"
465 .Vb 1
466 \& @Bonds = $Aoto\->GetBonds();
467 .Ve
468 .Sp
469 Returns an array of \fBBond\fR objects corresponding to all bonds from \fIAtom\fR to other
470 bonded atoms in a molecule.
471 .IP "\fBGetBondsToHeavyAtoms\fR" 4
472 .IX Item "GetBondsToHeavyAtoms"
473 .Vb 1
474 \& @Bonds = $Atom\->GetBondsToHeavyAtoms();
475 .Ve
476 .Sp
477 Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to other bonded
478 non-hydrogen atoms in a molecule.
479 .IP "\fBGetBondsToHydrogenAtoms\fR" 4
480 .IX Item "GetBondsToHydrogenAtoms"
481 .Vb 1
482 \& @Bonds = $Atom\->GetBondsToHydrogenAtoms();
483 .Ve
484 .Sp
485 Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to any other
486 hydrogen atom in a molecule.
487 .IP "\fBGetBondsToNonHydrogenAtoms\fR" 4
488 .IX Item "GetBondsToNonHydrogenAtoms"
489 .Vb 1
490 \& @Bonds = $Atom\->GetBondsToNonHydrogenAtoms();
491 .Ve
492 .Sp
493 Returns an array of \fBBond\fR objects corresponding to bonds from \fIAtom\fR to other bonded
494 non-hydrogen atoms in a molecule.
495 .IP "\fBGetExactMass\fR" 4
496 .IX Item "GetExactMass"
497 .Vb 1
498 \& $ExactMass = $Atom\->GetExactMass();
499 .Ve
500 .Sp
501 Returns exact mass of an \fIAtom\fR which correspond to one of these three values: explicity set
502 \&\fIExactMass\fR property; mass of natural isotope for an explicty set value of \fIMassNumber\fR; most
503 abundant natural isotope mass for \fIAtom\fR with valid atomic number value available by
504 \&\fBPerodicTable\fR module.
505 .IP "\fBGetExplicitHydrogens\fR" 4
506 .IX Item "GetExplicitHydrogens"
507 .Vb 1
508 \& $NumOfExplicitHydrogens = $Atom\->GetExplicitHydrogens();
509 .Ve
510 .Sp
511 Returns number of hydrogens explicity bonded to an \fIAtom\fR in a molecule.
512 .IP "\fBGetFormalCharge\fR" 4
513 .IX Item "GetFormalCharge"
514 .Vb 1
515 \& $FormalCharge = $Atom\->GetFormalCharge();
516 .Ve
517 .Sp
518 Returns formal charge of an \fIAtom\fR in a molecule.
519 .IP "\fBGetFreeRadicalElectrons\fR" 4
520 .IX Item "GetFreeRadicalElectrons"
521 .Vb 1
522 \& $FreeRadicalElectrons = $Atom\->GetFreeRadicalElectrons();
523 .Ve
524 .Sp
525 Returns number of free radical electrons corresponding to to one of these
526 three values: \fIFreeRadicalElectrons\fR property; \fISpinMultiplicity\fR property; value
527 of 0.
528 .Sp
529 For atoms with explicit assignment of \fISpinMultiplicity\fR atom property values,
530 .Sp
531 .Vb 5
532 \& Singlet \- two unparied electrons corresponding to one spin state
533 \& Doublet \- free radical; an unpaired electron corresponding to two
534 \& spin states
535 \& Triplet \- two unparied electrons corresponding to three spin states
536 \& (divalent carbon atoms: carbenes)
537 .Ve
538 .Sp
539 \&\fBFreeRadicalElectrons\fR are calculated as follows:
540 .Sp
541 .Vb 3
542 \& Doublet: 1 (one valence electron not available for bonding)
543 \& Singlet: 2 (two valence electrons not available for bonding)
544 \& Triplet: 2 (two valence electrons not available for bonding)
545 .Ve
546 .IP "\fBGetGroupNumber\fR" 4
547 .IX Item "GetGroupNumber"
548 .Vb 1
549 \& $GroupNumber = $Atom\->GetGroupNumber();
550 .Ve
551 .Sp
552 Returns group number of an \fIAtom\fR in a molecule with a valid atomic number.
553 .IP "\fBGetHeavyAtomNeighbors\fR" 4
554 .IX Item "GetHeavyAtomNeighbors"
555 .Vb 2
556 \& $NumOfHeavyAtoms = $Atom\->GetHeavyAtomNeighbors();
557 \& @HeavyAtoms = $Atom\->GetHeavyAtomNeighbors();
558 .Ve
559 .Sp
560 Return number of heavy atoms or an array of \fBAtom\fR objects corresponding to heavy atoms
561 bonded to an \fIAtom\fR in a molecule.
562 .IP "\fBGetHeavyAtomNeighborsAtomInformation\fR" 4
563 .IX Item "GetHeavyAtomNeighborsAtomInformation"
564 .Vb 3
565 \& ($NumOfAtomNeighbors, $AtomNeighborsRef,
566 \& $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom\->
567 \& GetHeavyAtomNeighborsAtomInformation();
568 .Ve
569 .Sp
570 Returns atoms information for all non-hydrogen atoms attached to an \fIAtom\fR
571 in a molecule.
572 .Sp
573 The following values are returned:
574 .Sp
575 .Vb 6
576 \& o Number of non\-hydrogen atom neighbors
577 \& o A reference to an array containing atom objects corresponding to
578 \& non\-hydrogen atom neighbors
579 \& o Number of different types of non\-hydrogen atom neighbors
580 \& o A reference to a hash containing atom symbol as key with value
581 \& corresponding to its count for non\-hydrogen atom neighbors
582 .Ve
583 .IP "\fBGetHeavyAtomNeighborsBondformation\fR" 4
584 .IX Item "GetHeavyAtomNeighborsBondformation"
585 .Vb 4
586 \& ($NumOfBonds, $BondTypeCountMapRef,
587 \& $AtomsBondTypesCountMapRef,
588 \& $AtomsBondTypeAtomsMap) = $Atom\->
589 \& GetHeavyAtomNeighborsBondformation();
590 .Ve
591 .Sp
592 Returns bonds information for all non-hydrogen atoms attached to an \fIAtom\fR
593 in a molecule.
594 .Sp
595 The following values are returned:
596 .Sp
597 .Vb 12
598 \& o Number of bonds to non\-hydrogen atom neighbors
599 \& o A reference to an array containing bond objects corresponding to
600 \& non\-hydrogen atom neighbors
601 \& o A reference to a hash containing bond type as key with value
602 \& corresponding to its count for non\-hydrogen atom neighbors. Bond
603 \& types are: Single, Double or Triple
604 \& o A reference to a hash containing atom symbol as key pointing to bond
605 \& type as second key with values corresponding to count of bond types for atom
606 \& symbol for non\-hydrogen atom neighbors
607 \& o A reference to a hash containing atom symbol as key pointing to bond
608 \& type as second key with values corresponding to atom objects array involved
609 \& in corresponding bond type for atom symbol for non\-hydrogen atom neighbors
610 .Ve
611 .IP "\fBGetHighestCommonValence\fR" 4
612 .IX Item "GetHighestCommonValence"
613 .Vb 1
614 \& $HighestCommonValence = $Atom\->GetHighestCommonValence();
615 .Ve
616 .Sp
617 Returns highest common valence of an \fIAtom\fR which corresponds to either explicity set
618 \&\fIHighestCommonValence\fR atom property or highest common valence of the corresponding
619 element in the periodic table available by \fBPerodicTable\fR module.
620 .IP "\fBGetHydrogens\fR" 4
621 .IX Item "GetHydrogens"
622 .Vb 1
623 \& $NumOfHydrogens = $Atom\->GetHydrogens();
624 .Ve
625 .Sp
626 Returns total number of hydrogens for an \fIAtom\fR in a molecule including both hydrogen atom
627 neighbors and implicit hydrogens.
628 .IP "\fBGetHydrogenAtomNeighbors\fR" 4
629 .IX Item "GetHydrogenAtomNeighbors"
630 .Vb 2
631 \& $NumOfHydrogenAtomNeighbors = $Atom\->GetHydrogenAtomNeighbors();
632 \& @HydrogenAtomNeighbors = $Atom\->GetHydrogenAtomNeighbors();
633 .Ve
634 .Sp
635 Return number of hydrogen atoms or an array of \fIAtom\fR objects corresponding to hydrogen
636 atoms bonded to an \fIAtom\fR in a molecule.
637 .IP "\fBGetImplicitHydrogens\fR" 4
638 .IX Item "GetImplicitHydrogens"
639 .Vb 1
640 \& $NumOfImplicitHydrogens = $Atom\->GetImplicitHydrogens();
641 .Ve
642 .Sp
643 Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either
644 corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the
645 difference between the value of potential total valence and sum of bond orders to
646 both hydrogen and non-hydrogen atom neighbors.
647 .IP "\fBGetPotentialTotalCommonValence\fR" 4
648 .IX Item "GetPotentialTotalCommonValence"
649 .Vb 1
650 \& $PotentialTotalValence = $Atom\->GetPotentialTotalCommonValence();
651 .Ve
652 .Sp
653 Returns potential total common valence of an \fIAtom\fR in a molecule corresponding
654 to a specific valence model set for the molecule using its \fBSetValenceModel\fR method
655 or default internal valence model. It is used during the calculation of missing or
656 implicit hydrogens.
657 .Sp
658 The current release of MayaChemTools supports three valence models: \fIMDLValenceModel,
659 DaylightValenceModel, InternalValenceModel or MayaChemToolsValenceModel\fR.
660 .Sp
661 For \fIMDLValenceModel\fR and \fIDaylightValenceModel\fR, the following data files, distributed
662 with the package, are used to calculate potential total valence:
663 .Sp
664 .Vb 2
665 \& lib/data/MDLValenceModelData.csv
666 \& lib/data/DaylightValenceModelData.csv
667 .Ve
668 .Sp
669 The calculation of potential total common valence for these two models is performed as
670 follows: Calculate current effective total valence of the \fIAtom\fR by adding up the bond
671 order of its neighbors and number of free radical electrons; Find available common valence
672 for the \fIAtom\fR, corresponding to any specified formal charge, higher than the effective
673 total valence, and return it as \fIPotentialTotalValence\fR.
674 .Sp
675 The calculation of potential total common valence For \fIInternalValenceModel\fR or
676 \&\fIMayaChenToolsValenceModel\fR doesn't uses \fBPeriodicTable\fR module to retrieve values
677 for common valence, which in turn reads in PeriodicTableElements.csv file distributed with
678 the package.
679 .Sp
680 For elements with one one common valence, potential total common valence corresponds
681 to:
682 .Sp
683 .Vb 1
684 \& CommonValence + FormalCharge \- FreeRadicalElectrons
685 .Ve
686 .Sp
687 For elements with multiple common valences, each common valence is used to
688 calculate total potential common valence as shown above, and the first total potential
689 common valence greater than the sum of bond orders to all neighbors is selected as
690 the final total common valence.
691 .Sp
692 FormalCharge sign is reversed for electropositive elements with positive formal charge
693 during common valence calculations. Electropositive elements, metals and transition elements,
694 have usually plus formal charge and it leads to decrease in common valence; the negative
695 formal charge should result in the decrease of common valence.
696 .Sp
697 The sign of formal charge is adjusted as follows.
698 .Sp
699 Group numbers > 14 \- Group numbers 15 (N), 16 (O), 17 (F), 18 (He):
700 .Sp
701 Formal charge sign is not adjusted. Positive and negative values result in the
702 increase and decrease of valence.
703 .Sp
704 Group 14 containing C, Si, Ge, Sn, Pb...:
705 .Sp
706 Formal charge sign is reversed for positive values. Both positive and negative
707 values result in the decrease of valence.
708 .Sp
709 Group 13 containing B, Al, Ga, In, Tl...:
710 .Sp
711 Formal charge sign is always reversed. Positive and negative values result in the
712 decrease and increase of valence.
713 .Sp
714 Groups 1 (H) through 12 (Zn)...:
715 .Sp
716 Formal charge sign is reversed for positive values. Both positive and negative
717 values result in the decrease of valence.
718 .Sp
719 Lanthanides and actinides:
720 .Sp
721 Formal charge sign is reversed for positive values. Both positive and negative
722 values result in the decrease of valence.
723 .IP "\fBGetLargestBondOrder\fR" 4
724 .IX Item "GetLargestBondOrder"
725 .Vb 1
726 \& $LargestBO =$Atom\->GetLargestBondOrder();
727 .Ve
728 .Sp
729 Returns largest bond order for an \fIAtom\fR among the bonds to other atoms in a molecule.
730 .IP "\fBGetLargestBondOrderToHeavyAtoms\fR" 4
731 .IX Item "GetLargestBondOrderToHeavyAtoms"
732 .Vb 1
733 \& $LargestBO =$Atom\->GetLargestBondOrderToHeavyAtoms();
734 .Ve
735 .Sp
736 Returns largest bond order for an \fIAtom\fR among the bonds to other heavy atoms in a molecule.
737 .IP "\fBGetLargestBondOrderToNonHydrogenAtoms\fR" 4
738 .IX Item "GetLargestBondOrderToNonHydrogenAtoms"
739 .Vb 1
740 \& $LargestBO =$Atom\->GetLargestBondOrderToNonHydrogenAtoms();
741 .Ve
742 .Sp
743 Returns largest bond order for an \fIAtom\fR among the bonds to other non-hydrogen atoms
744 in a molecule.
745 .IP "\fBGetLargestRing\fR" 4
746 .IX Item "GetLargestRing"
747 .Vb 1
748 \& @RingAtoms = $Atom\->GetLargestRing();
749 .Ve
750 .Sp
751 Returns an array of ring \fIAtom\fR objects corresponding to the largest ring containing \fIAtom\fR
752 in a molecule.
753 .IP "\fBGetLowestCommonValence\fR" 4
754 .IX Item "GetLowestCommonValence"
755 .Vb 1
756 \& $LowestCommonValence = $Atom\->GetLowestCommonValence();
757 .Ve
758 .Sp
759 Returns lowest common valence of an \fIAtom\fR which corresponds to either explicity set
760 \&\fILowestCommonValence\fR atom property or highest common valence of the corresponding
761 element in the periodic table available by \fBPerodicTable\fR module.
762 .IP "\fBGetMassNumber\fR" 4
763 .IX Item "GetMassNumber"
764 .Vb 1
765 \& $MassNumber = $Aom\->GetMassNumber();
766 .Ve
767 .Sp
768 Returns atomic weight of an \fBAtom\fR which corresponds to either explicity set \fIMassNumber\fR
769 atom property or mass number of the most abundant natural isotope of the corresponding element
770 in the periodic table available by \fBPeriodicTable\fR module.
771 .IP "\fBGetMissingHydrogens\fR" 4
772 .IX Item "GetMissingHydrogens"
773 .Vb 1
774 \& $NumOfMissingHydrogens = $Atom\->GetMissingHydrogens();
775 .Ve
776 .Sp
777 Returns number of missing hydrogens for an \fIAtom\fR in a molecule. This value either
778 corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the
779 difference between the value of potential total valence and sum of bond orders to
780 both hydrogen and non-hydrogen atom neighbors.
781 .IP "\fBGetNeighbors\fR" 4
782 .IX Item "GetNeighbors"
783 .Vb 2
784 \& $NumOfNeighbors = $Atom\->GetNeighbors();
785 \& @Neighbors = $Atom\->GetNeighbors();
786 .Ve
787 .Sp
788 Returns number of neighbor atoms or an array of \fIAtom\fR objects corresponding to all
789 atoms bonded to an \fIAtom\fR in a molecule.
790 .IP "\fBGetNeighborsUsingAtomSpecification\fR" 4
791 .IX Item "GetNeighborsUsingAtomSpecification"
792 .Vb 2
793 \& @AtomNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec);
794 \& $NumOfNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec);
795 \&
796 \& @AtomNeighbors = $Atom\->GetNeighborsUsingAtomSpecification($AtomSpec,
797 \& @ExcludeNeighbors);
798 .Ve
799 .Sp
800 Returns number of neighbor atoms or an array of \fIAtom\fR objects matching atom
801 specification corresponding to atom neighbors of an \fIAtom\fR in a molecule. Optionally,
802 \&\fIAtom\fR neighbors can be excluded from the neighbors list using \fIExcludeNeighbors\fR.
803 .Sp
804 Notes:
805 .Sp
806 .Vb 3
807 \& o AtomSpecification correspond to any valid AtomicInvariant based atomic specifications
808 \& as supported by DoesAtomNeighborhoodMatch method
809 \& o Multiple atom specifications can be used in a string delimited by comma
810 .Ve
811 .IP "\fBGetNonHydrogenAtomNeighbors\fR" 4
812 .IX Item "GetNonHydrogenAtomNeighbors"
813 .Vb 2
814 \& $NumOfNeighbors = $Atom\->GetNonHydrogenAtomNeighbors();
815 \& @Neighbors = $Atom\->GetNonHydrogenAtomNeighbors();
816 .Ve
817 .Sp
818 Returns number of non-hydrogen atoms or an array of \fBAtom\fR objects corresponding to non-hydrogen
819 atoms bonded to an \fIAtom\fR in a molecule.
820 .IP "\fBGetNonHydrogenAtomNeighborsAtomInformation\fR" 4
821 .IX Item "GetNonHydrogenAtomNeighborsAtomInformation"
822 .Vb 3
823 \& ($NumOfAtomNeighbors, $AtomNeighborsRef,
824 \& $NumOfAtomNeighborsType, $AtomNeighborsTypeMapRef) = $Atom\->
825 \& GetNonHydrogenAtomNeighborsAtomInformation();
826 .Ve
827 .Sp
828 Returns atoms information for all non-hydrogen atoms attached to an \fIAtom\fR
829 in a molecule.
830 .Sp
831 The following values are returned:
832 .Sp
833 .Vb 6
834 \& o Number of non\-hydrogen atom neighbors
835 \& o A reference to an array containing atom objects corresponding to
836 \& non\-hydrogen atom neighbors
837 \& o Number of different types of non\-hydrogen atom neighbors
838 \& o A reference to a hash containing atom symbol as key with value
839 \& corresponding to its count for non\-hydrogen atom neighbors
840 .Ve
841 .IP "\fBGetNonHydrogenAtomNeighborsBondInformation\fR" 4
842 .IX Item "GetNonHydrogenAtomNeighborsBondInformation"
843 .Vb 4
844 \& ($NumOfBonds, $BondTypeCountMapRef,
845 \& $AtomsBondTypesCountMapRef,
846 \& $AtomsBondTypeAtomsMap) = $Atom\->
847 \& GetNonHydrogenAtomNeighborsBondInformation();
848 .Ve
849 .Sp
850 Returns bonds information for all non-hydrogen atoms attached to an \fIAtom\fR
851 in a molecule.
852 .Sp
853 The following values are returned:
854 .Sp
855 .Vb 12
856 \& o Number of bonds to non\-hydrogen atom neighbors
857 \& o A reference to an array containing bond objects corresponding to
858 \& non\-hydrogen atom neighbors
859 \& o A reference to a hash containing bond type as key with value
860 \& corresponding to its count for non\-hydrogen atom neighbors. Bond
861 \& types are: Single, Double or Triple
862 \& o A reference to a hash containing atom symbol as key pointing to bond
863 \& type as second key with values corresponding to count of bond types for atom
864 \& symbol for non\-hydrogen atom neighbors
865 \& o A reference to a hash containing atom symbol as key pointing to bond
866 \& type as second key with values corresponding to atom objects array involved
867 \& in corresponding bond type for atom symbol for non\-hydrogen atom neighbors
868 .Ve
869 .IP "\fBGetNonHydrogenNeighborOfHydrogenAtom\fR" 4
870 .IX Item "GetNonHydrogenNeighborOfHydrogenAtom"
871 .Vb 1
872 \& $Atom = $Atom\->GetNonHydrogenNeighborOfHydrogenAtom();
873 .Ve
874 .Sp
875 Returns non-hydrogen or heavy atom neighbor of a hydrogen atom in a molecule..
876 .IP "\fBGetNumOfAromaticBondsToHeavyAtoms\fR" 4
877 .IX Item "GetNumOfAromaticBondsToHeavyAtoms"
878 .Vb 1
879 \& $NumOfBonds = $Atom\->GetNumOfAromaticBondsToHeavyAtoms();
880 .Ve
881 .Sp
882 Returns number of aromatic bonds from an \fIAtom\fR to other non-hydrogen or heavy atoms in
883 a molecule.
884 .IP "\fBGetNumOfAromaticBondsToNonHydrogenAtoms\fR" 4
885 .IX Item "GetNumOfAromaticBondsToNonHydrogenAtoms"
886 .Vb 1
887 \& $NumOfBonds = $Atom\->GetNumOfAromaticBondsToNonHydrogenAtoms();
888 .Ve
889 .Sp
890 Returns number of aromatic bonds from an \fIAtom\fR to other non-hydrogen or heavy atoms in
891 a molecule.
892 .IP "\fBGetNumOfBonds\fR" 4
893 .IX Item "GetNumOfBonds"
894 .Vb 1
895 \& $NumOfBonds = $Atom\->GetNumOfBonds();
896 .Ve
897 .Sp
898 Returns number of bonds from an \fIAtom\fR to other atoms in a molecule.
899 .IP "\fBGetNumOfBondsAvailableForHeavyAtoms\fR" 4
900 .IX Item "GetNumOfBondsAvailableForHeavyAtoms"
901 .Vb 1
902 \& $NumOfBonds = $Atom\->GetNumOfBondsAvailableForHeavyAtoms();
903 .Ve
904 .Sp
905 Get number of bonds available to form additional bonds with heavy atoms, excluding
906 any implicit bonds to hydrogens set using \fIImplicitHydrogens\fR property.
907 .Sp
908 It's different from number of implicit or missing hydrogens, both of which are equivalent.
909 .Sp
910 For example, in a \s-1SMILES\s0 string, [nH] ring atom corresponds to an aromatic nitrogen.
911 Although the hydrogen specified for n is treated internally as implicit hydrogen and shows
912 up in missing hydrogen count, it's not available to participate in double bonds to additional
913 heavy atoms.
914 .IP "\fBGetNumOfBondsAvailableForNonHydrogenAtoms\fR" 4
915 .IX Item "GetNumOfBondsAvailableForNonHydrogenAtoms"
916 .Vb 1
917 \& $NumOfBonds = $Atom\->GetNumOfBondsAvailableForNonHydrogenAtoms();
918 .Ve
919 .Sp
920 Get number of bonds available to form additional bonds with heavy atoms, excluding
921 any implicit bonds to hydrogens set using ImplicitHydrogens property.
922 .IP "\fBGetNumOfBondsToHeavyAtoms\fR" 4
923 .IX Item "GetNumOfBondsToHeavyAtoms"
924 .Vb 1
925 \& $NumOfBondsToHeavyAtoms = $Atom\->GetNumOfBondsToHeavyAtoms();
926 .Ve
927 .Sp
928 Returns number of bonds from an \fIAtom\fR to other heavy atoms in a molecule.
929 .IP "\fBGetNumOfBondsToHydrogenAtoms\fR" 4
930 .IX Item "GetNumOfBondsToHydrogenAtoms"
931 .Vb 1
932 \& $NumOfBonds = $Atom\->GetNumOfBondsToHydrogenAtoms();
933 .Ve
934 .Sp
935 Returns number of bonds from an \fIAtom\fR to other hydrogen atoms in a molecule.
936 .IP "\fBGetNumOfBondsToNonHydrogenAtoms\fR" 4
937 .IX Item "GetNumOfBondsToNonHydrogenAtoms"
938 .Vb 1
939 \& $NumOfBonds = $Atom\->GetNumOfBondsToNonHydrogenAtoms();
940 .Ve
941 .Sp
942 Returns number of bonds from an \fIAtom\fR to other non-hydrogen atoms in a molecule.
943 .IP "\fBGetNumOfBondTypesToHeavyAtoms\fR" 4
944 .IX Item "GetNumOfBondTypesToHeavyAtoms"
945 .Vb 3
946 \& ($NumOfSingleBonds, $NumOfDoubleBonds,
947 \& $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom\->
948 \& GetNumOfBondTypesToHeavyAtoms($CountAromaticBonds);
949 .Ve
950 .Sp
951 Get number of single, double, triple, and aromatic bonds from an \fIAtom\fR to all other
952 non-hydrogen atoms in a molecule.
953 .Sp
954 Value of \fICountAtomaticBonds\fR parameter controls whether number of aromatic
955 bonds is returned; default is not to count aromatic bonds. During counting of
956 aromatic bonds, the bond marked aromatic is not included in the count
957 of other bond types.
958 .IP "\fBGetNumOfBondTypesToNonHydrogenAtoms\fR" 4
959 .IX Item "GetNumOfBondTypesToNonHydrogenAtoms"
960 .Vb 3
961 \& ($NumOfSingleBonds, $NumOfDoubleBonds,
962 \& $NumOfTripleBonds, $NumOfAromaticBonds) = $Atom\->
963 \& GetNumOfBondTypesToNonHydrogenAtoms($CountAromaticBonds);
964 .Ve
965 .Sp
966 Get number of single, double, triple, and aromatic bonds from an \fIAtom\fR to all other
967 non-hydrogen atoms in a molecule.
968 .Sp
969 Value of \fICountAtomaticBonds\fR parameter controls whether number of aromatic
970 bonds is returned; default is not to count aromatic bonds. During counting of
971 aromatic bonds, the bond marked aromatic is not included in the count
972 of other bond types.
973 .IP "\fBGetNumOfDoubleBondsToHeavyAtoms\fR" 4
974 .IX Item "GetNumOfDoubleBondsToHeavyAtoms"
975 .Vb 1
976 \& $NumOfDoubleBonds = $Atom\->GetNumOfDoubleBondsToHeavyAtoms();
977 .Ve
978 .Sp
979 Returns number of double bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
980 atoms in a molecule.
981 .IP "\fBGetNumOfDoubleBondsToNonHydrogenAtoms\fR" 4
982 .IX Item "GetNumOfDoubleBondsToNonHydrogenAtoms"
983 .Vb 1
984 \& $NumOfDoubleBonds =$Atom\->GetNumOfDoubleBondsToNonHydrogenAtoms();
985 .Ve
986 .Sp
987 Returns number of double bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
988 atoms in a molecule.
989 .IP "\fBGetNumOfHeavyAtomNeighbors\fR" 4
990 .IX Item "GetNumOfHeavyAtomNeighbors"
991 .Vb 1
992 \& $NumOfNeighbors = $Atom\->GetNumOfHeavyAtomNeighbors();
993 .Ve
994 .Sp
995 Returns number heavy atom neighbors for an \fIAtom\fR in a molecule.
996 .IP "\fBGetNumOfHydrogenAtomNeighbors\fR" 4
997 .IX Item "GetNumOfHydrogenAtomNeighbors"
998 .Vb 1
999 \& $NumOfNeighbors = $Atom\->GetNumOfHydrogenAtomNeighbors();
1000 .Ve
1001 .Sp
1002 Returns number hydrogens atom neighbors for an \fIAtom\fR in a molecule.
1003 .IP "\fBGetNumOfMissingHydrogens\fR" 4
1004 .IX Item "GetNumOfMissingHydrogens"
1005 .Vb 1
1006 \& $NumOfMissingHydrogens = $Atom\->GetNumOfMissingHydrogens();
1007 .Ve
1008 .Sp
1009 Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either
1010 corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the
1011 difference between the value of potential total valence and sum of bond orders to
1012 both hydrogen and non-hydrogen atom neighbors.
1013 .IP "\fBGetNumOfExplicitHydrogens\fR" 4
1014 .IX Item "GetNumOfExplicitHydrogens"
1015 .Vb 1
1016 \& $NumOfExplicitHydrogens = $Atom\->GetNumOfExplicitHydrogens();
1017 .Ve
1018 .Sp
1019 Returns number hydrogens atom neighbors for an \fIAtom\fR in a molecule.
1020 .IP "\fBGetNumOfHydrogens\fR" 4
1021 .IX Item "GetNumOfHydrogens"
1022 .Vb 1
1023 \& $NumOfHydrogens = $Atom\->GetNumOfHydrogens();
1024 .Ve
1025 .Sp
1026 Returns total number of hydrogens for an \fIAtom\fR in a molecule including both hydrogen atom
1027 neighbors and implicit hydrogens.
1028 .IP "\fBGetNumOfImplicitHydrogens\fR" 4
1029 .IX Item "GetNumOfImplicitHydrogens"
1030 .Vb 1
1031 \& $NumOfImplicitHydrogens = $Atom\->GetNumOfImplicitHydrogens();
1032 .Ve
1033 .Sp
1034 Returns number of implicit hydrogens for an \fIAtom\fR in a molecule. This value either
1035 corresponds to explicitly set \fIImplicitHydrogens\fR atom property or calculated as the
1036 difference between the value of potential total valence and sum of bond orders to
1037 both hydrogen and non-hydrogen atom neighbors.
1038 .IP "\fBGetNumOfNeighbors\fR" 4
1039 .IX Item "GetNumOfNeighbors"
1040 .Vb 1
1041 \& $NumOfNeighbors = $Atom\->GetNumOfNeighbors();
1042 .Ve
1043 .Sp
1044 Returns number atom neighbors for an \fIAtom\fR in a molecule.
1045 .IP "\fBGetNumOfNonHydrogenAtomNeighbors\fR" 4
1046 .IX Item "GetNumOfNonHydrogenAtomNeighbors"
1047 .Vb 1
1048 \& $NumNeighbors = $This\->GetNumOfNonHydrogenAtomNeighbors();
1049 .Ve
1050 .Sp
1051 Returns number non-hydrogens atom neighbors for an \fIAtom\fR in a molecule.
1052 .IP "\fBGetNumOfRings\fR" 4
1053 .IX Item "GetNumOfRings"
1054 .Vb 1
1055 \& $NumOfRings = $Atom\->GetNumOfRings();
1056 .Ve
1057 .Sp
1058 Returns number of rings containing \fIAtom\fR in a molecule.
1059 .IP "\fBGetNumOfRingsWithEvenSize\fR" 4
1060 .IX Item "GetNumOfRingsWithEvenSize"
1061 .Vb 1
1062 \& $NumOfRings = $Atom\->GetNumOfRingsWithEvenSize();
1063 .Ve
1064 .Sp
1065 Returns number of rings with even size containing \fIAtom\fR in a molecule.
1066 .IP "\fBGetNumOfRingsWithOddSize\fR" 4
1067 .IX Item "GetNumOfRingsWithOddSize"
1068 .Vb 1
1069 \& $NumOfRings = $Atom\->GetNumOfRingsWithOddSize();
1070 .Ve
1071 .Sp
1072 Returns number of rings with odd size containing \fIAtom\fR in a molecule.
1073 .IP "\fBGetNumOfRingsWithSize\fR" 4
1074 .IX Item "GetNumOfRingsWithSize"
1075 .Vb 1
1076 \& $NumOfRings = $Atom\->GetNumOfRingsWithSize($RingSize);
1077 .Ve
1078 .Sp
1079 Returns number of rings with specific \fIRingSize\fR containing \fIAtom\fR in a molecule.
1080 .IP "\fBGetNumOfRingsWithSizeGreaterThan\fR" 4
1081 .IX Item "GetNumOfRingsWithSizeGreaterThan"
1082 .Vb 1
1083 \& $NumOfRings = $Atom\->GetNumOfRingsWithSizeGreaterThan($RingSize);
1084 .Ve
1085 .Sp
1086 Returns number of rings with size greater than specific \fIRingSize\fR containing \fIAtom\fR
1087 in a molecule.
1088 .IP "\fBGetNumOfRingsWithSizeLessThan\fR" 4
1089 .IX Item "GetNumOfRingsWithSizeLessThan"
1090 .Vb 1
1091 \& $NumOfRings = $Atom\->GetNumOfRingsWithSizeLessThan($RingSize);
1092 .Ve
1093 .Sp
1094 Returns number of rings with size less than specific \fIRingSize\fR containing \fIAtom\fR in a molecule.
1095 .IP "\fBGetNumOfSigmaAndPiBondsToHeavyAtoms\fR" 4
1096 .IX Item "GetNumOfSigmaAndPiBondsToHeavyAtoms"
1097 .Vb 2
1098 \& ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom\->
1099 \& GetNumOfSigmaAndPiBondsToHeavyAtoms();
1100 .Ve
1101 .Sp
1102 Get number of sigma and pi bonds from an \fIAtom\fR to all other non-hydrogen
1103 atoms in a molecule.
1104 .Sp
1105 Sigma and pi bonds are counted using the following methodology: a single bond
1106 correspond to one sigma bond; a double bond contributes one to sigma bond count
1107 and one to pi bond count; a triple bond contributes one to sigma bond count and
1108 two to pi bond count.
1109 .IP "\fBGetNumOfSigmaAndPiBondsToNonHydrogenAtoms\fR" 4
1110 .IX Item "GetNumOfSigmaAndPiBondsToNonHydrogenAtoms"
1111 .Vb 2
1112 \& ($NumOfSigmaBonds, $NumOfPiBonds) = $Atom\->
1113 \& GetNumOfSigmaAndPiBondsToNonHydrogenAtoms();
1114 .Ve
1115 .Sp
1116 Get number of sigma and pi bonds from an \fIAtom\fR to all other non-hydrogen
1117 atoms in a molecule.
1118 .Sp
1119 Sigma and pi bonds are counted using the following methodology: a single bond
1120 correspond to one sigma bond; a double bond contributes one to sigma bond count
1121 and one to pi bond count; a triple bond contributes one to sigma bond count and
1122 two to pi bond count.
1123 .IP "\fBGetNumOfSingleBondsToNonHydrogenAtoms\fR" 4
1124 .IX Item "GetNumOfSingleBondsToNonHydrogenAtoms"
1125 .Vb 1
1126 \& $NumOfSingleBonds =$Atom\->GetNumOfSingleBondsToNonHydrogenAtoms();
1127 .Ve
1128 .Sp
1129 Returns number of single bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
1130 atoms in a molecule.
1131 .IP "\fBGetNumOfSingleBondsToHeavyAtoms\fR" 4
1132 .IX Item "GetNumOfSingleBondsToHeavyAtoms"
1133 .Vb 1
1134 \& $NumOfSingleBonds = $Atom\->GetNumOfSingleBondsToHeavyAtoms();
1135 .Ve
1136 .Sp
1137 Returns number of single bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
1138 atoms in a molecule.
1139 .IP "\fBGetNumOfTripleBondsToNonHydrogenAtoms\fR" 4
1140 .IX Item "GetNumOfTripleBondsToNonHydrogenAtoms"
1141 .Vb 1
1142 \& $NumOfTripleBonds =$Atom\->GetNumOfTripleBondsToNonHydrogenAtoms();
1143 .Ve
1144 .Sp
1145 Returns number of triple bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
1146 atoms in a molecule.
1147 .IP "\fBGetNumOfTripleBondsToHeavyAtoms\fR" 4
1148 .IX Item "GetNumOfTripleBondsToHeavyAtoms"
1149 .Vb 1
1150 \& $NumOfTripleBonds = $Atom\->GetNumOfTripleBondsToHeavyAtoms();
1151 .Ve
1152 .Sp
1153 Returns number of triple bonds from an \fIAtom\fR to other heavy atoms or non-hydrogen
1154 atoms in a molecule.
1155 .IP "\fBGetPeriodNumber\fR" 4
1156 .IX Item "GetPeriodNumber"
1157 .Vb 1
1158 \& $PeriodNumber = $Atom\->GetPeriodNumber();
1159 .Ve
1160 .Sp
1161 Returns periodic table period number for an \fIAtom\fR in a molecule with a valid atomic number .
1162 .IP "\fBGetRings\fR" 4
1163 .IX Item "GetRings"
1164 .Vb 1
1165 \& @Rings = $Aotm\->GetRings();
1166 .Ve
1167 .Sp
1168 Returns an array of references to arrays containing ring atoms corressponding to all rings containing
1169 \&\fIAtom\fR in a molecule.
1170 .IP "\fBGetRingsWithEvenSize\fR" 4
1171 .IX Item "GetRingsWithEvenSize"
1172 .Vb 1
1173 \& @Rings = $Aotm\->GetRingsWithEvenSize();
1174 .Ve
1175 .Sp
1176 Returns an array of references to arrays containing ring atoms corressponding to all rings with even size
1177 containing \fIAtom\fR in a molecule.
1178 .IP "\fBGetRingsWithOddSize\fR" 4
1179 .IX Item "GetRingsWithOddSize"
1180 .Vb 1
1181 \& @Rings = $Aotm\->GetRingsWithOddSize();
1182 .Ve
1183 .Sp
1184 Returns an array of references to arrays containing ring atoms corressponding to all rings with odd size
1185 containing \fIAtom\fR in a molecule.
1186 .IP "\fBGetRingsWithSize\fR" 4
1187 .IX Item "GetRingsWithSize"
1188 .Vb 1
1189 \& @Rings = $Aotm\->GetRingsWithSize($RingSize);
1190 .Ve
1191 .Sp
1192 Returns an array of references to arrays containing ring atoms corressponding to all rings with specific
1193 \&\fIRingSize \fRcontaining \fIAtom\fR in a molecule.
1194 .IP "\fBGetRingsWithSizeGreaterThan\fR" 4
1195 .IX Item "GetRingsWithSizeGreaterThan"
1196 .Vb 1
1197 \& @Rings = $Aotm\->GetRingsWithSizeGreaterThan($RingSize);
1198 .Ve
1199 .Sp
1200 Returns an array of references to arrays containing ring atoms corressponding to all rings with size
1201 greater than specific \fIRingSize \fRcontaining \fIAtom\fR in a molecule.
1202 .IP "\fBGetRingsWithSizeLessThan\fR" 4
1203 .IX Item "GetRingsWithSizeLessThan"
1204 .Vb 1
1205 \& @Rings = $Aotm\->GetRingsWithSizeLessThan($RingSize);
1206 .Ve
1207 .Sp
1208 Returns an array of references to arrays containing ring atoms corressponding to all rings with size
1209 less than specific \fIRingSize \fRcontaining \fIAtom\fR in a molecule.
1210 .IP "\fBGetSizeOfLargestRing\fR" 4
1211 .IX Item "GetSizeOfLargestRing"
1212 .Vb 1
1213 \& $Size = $Atom\->GetSizeOfLargestRing();
1214 .Ve
1215 .Sp
1216 Returns size of the largest ring containing \fIAtom\fR in a molecule.
1217 .IP "\fBGetSizeOfSmallestRing\fR" 4
1218 .IX Item "GetSizeOfSmallestRing"
1219 .Vb 1
1220 \& $Size = $Atom\->GetSizeOfSmallestRing();
1221 .Ve
1222 .Sp
1223 Returns size of the smallest ring containing \fIAtom\fR in a molecule.
1224 .IP "\fBGetSmallestRing\fR" 4
1225 .IX Item "GetSmallestRing"
1226 .Vb 1
1227 \& @RingAtoms = $Atom\->GetSmallestRing();
1228 .Ve
1229 .Sp
1230 Returns an array of ring \fIAtom\fR objects corresponding to the largest ring containing \fIAtom\fR
1231 in a molecule.
1232 .IP "\fBGetSpinMultiplicity\fR" 4
1233 .IX Item "GetSpinMultiplicity"
1234 .Vb 1
1235 \& $SpinMultiplicity = $Atom\->GetSpinMultiplicity();
1236 .Ve
1237 .Sp
1238 Returns spin multiplicity of an \fIAtom\fR corresponding to one of these three
1239 values: explicitly set \fBSpinMultiplicity\fR property value; calculated from
1240 \&\fBFreeRadicalElectrons\fR property; value of 0.
1241 .Sp
1242 The \fBSpinMultiplicity\fR is calculate from \fIFreeRadicalElectrons\fR property as
1243 follows:
1244 .Sp
1245 .Vb 3
1246 \& FreeRadicalElectrons: 1; SpinMultiplicity: 2
1247 \& FreeRadicalElectrons: 2; SpinMultiplicity: 1
1248 \& FreeRadicalElectrons: other; SpinMultiplicity: 0
1249 .Ve
1250 .IP "\fBGetSumOfBondOrders\fR" 4
1251 .IX Item "GetSumOfBondOrders"
1252 .Vb 1
1253 \& $SumBondOrders = $Atom\->GetSumOfBondOrders();
1254 .Ve
1255 .Sp
1256 Returns sum of bond orders corresponding to all atoms bonded to an \fIAtom\fR in a molecule.
1257 .IP "\fBGetSumOfBondOrdersToHeavyAtoms\fR" 4
1258 .IX Item "GetSumOfBondOrdersToHeavyAtoms"
1259 .Vb 1
1260 \& $SumBondOrders = $Atom\->GetSumOfBondOrdersToHeavyAtoms();
1261 .Ve
1262 .Sp
1263 Returns sum of bond orders corresponding to all heavy atoms bonded to an \fIAtom\fR in a molecule.
1264 .IP "\fBGetSumOfBondOrdersToHydrogenAtoms\fR" 4
1265 .IX Item "GetSumOfBondOrdersToHydrogenAtoms"
1266 .Vb 1
1267 \& $SumBondOrders = $Atom\->GetSumOfBondOrdersToHydrogenAtoms();
1268 .Ve
1269 .Sp
1270 Returns sum of bond orders corresponding to all hydrogen atoms bonded to an \fIAtom\fR in a molecule.
1271 .IP "\fBGetSumOfBondOrdersToNonHydrogenAtoms\fR" 4
1272 .IX Item "GetSumOfBondOrdersToNonHydrogenAtoms"
1273 .Vb 1
1274 \& $SumBondOrders = $Atom\->GetSumOfBondOrdersToNonHydrogenAtoms();
1275 .Ve
1276 .Sp
1277 Returns sum of bond orders corresponding to all non-hydrogen atoms bonded to an \fIAtom\fR
1278 in a molecule.
1279 .IP "\fBGetValence\fR" 4
1280 .IX Item "GetValence"
1281 .Vb 1
1282 \& $Valence = $Atom\->GetValence();
1283 .Ve
1284 .Sp
1285 Returns valence of an \fIAtom\fR in a molecule. Valence corresponds to number of electrons used
1286 by an atom in bonding:
1287 .Sp
1288 .Vb 1
1289 \& Valence = ValenceElectrons \- ValenceFreeElectrons = BondingElectrons
1290 .Ve
1291 .Sp
1292 Single, double and triple bonds with bond orders of 1, 2, and 3 correspond to
1293 contribution of 1, 2, and 3 bonding electrons. So:
1294 .Sp
1295 .Vb 1
1296 \& Valence = SumOfBondOrders + NumOfMissingHydrogens + FormalCharge
1297 .Ve
1298 .Sp
1299 where positive and negative values of FormalCharge increase and decrease the number of bonding
1300 electrons, respectively.
1301 .Sp
1302 The current release of MayaChemTools supports the following three valence models, which
1303 are used during calculation of implicit hydrogens: MDLValenceModel, DaylightValenceModel,
1304 InternalValenceModel or MayaChemToolsValenceModel.
1305 .Sp
1306 Notes:
1307 .Sp
1308 .Vb 10
1309 \& . Missing hydrogens are included in the valence.
1310 \& . For neutral molecules, valence and sum of bond orders are equal.
1311 \& . For molecules containing only single bonds, SumOfBondOrders and
1312 \& NumOfBonds are equal.
1313 \& . Free radical electrons lead to the decrease in valence. For atoms with
1314 \& explicit assignment of SpinMultiplicity property values corresponding to
1315 \& Singlet (two unparied electrons corresponding to one spin state), Doublet
1316 \& (free radical; an unpaired electron corresponding to two spin states),
1317 \& and Triplet (two unparied electrons corresponding to three spin states;
1318 \& divalent carbon atoms (carbenes)), FreeRadicalElectrons are calculated as follows:
1319 \&
1320 \& SpinMultiplicity: Doublet(2); FreeRadicalElectrons: 1 (one valence
1321 \& electron not available for bonding)
1322 \& SpinMultiplicity: Singlet(1)/Triplet(3); FreeRadicalElectrons: 2 (two
1323 \& valence electrons not available for bonding)
1324 .Ve
1325 .IP "\fBGetValenceElectrons\fR" 4
1326 .IX Item "GetValenceElectrons"
1327 .Vb 1
1328 \& $ValenceElectrons = $Atom\->GetValenceElectrons();
1329 .Ve
1330 .Sp
1331 Returns valence electrons for an \fBAtom\fR which corresponds to either explicity set \fIValenceElectrons\fR
1332 atom property or valence electrons for the corresponding element in the periodic table available by
1333 \&\fBPeriodicTable\fR module.
1334 .IP "\fBGetValenceFreeElectrons\fR" 4
1335 .IX Item "GetValenceFreeElectrons"
1336 .Vb 3
1337 \& $ValenceFreeElectrons = $Atom\->GetValenceFreeElectrons();
1338 \& $ValenceFreeElectrons = $Atom\->GetValenceFreeElectrons(
1339 \& $ExcludeFreeRadicalElectrons);
1340 .Ve
1341 .Sp
1342 Returns valence frees electrons for an \fBAtom\fR in a molecule. It corresponds to:
1343 .Sp
1344 .Vb 3
1345 \& ValenceElectrons \- Valence
1346 \& or
1347 \& ValenceElectrons \- NumOfMissingHydrogens \- SumOfBondOrders \- FormalCharge
1348 .Ve
1349 .Sp
1350 Free radical electrons are included in the valence free electrons count by default.
1351 .Sp
1352 Examples:
1353 .Sp
1354 .Vb 6
1355 \& NH3: ValenceFreeElectrons = 5 \- 3 = 5 \- 3 \- 0 \- 0 = 2
1356 \& NH2: ValenceFreeElectrons = 5 \- 3 = 5 \- 2 \- 1 \- 0 = 2
1357 \& NH4+; ValenceFreeElectrons = 5 \- 5 = 5 \- 4 \- 0 \- 1 = 0
1358 \& NH3+; ValenceFreeElectrons = 5 \- 5 = 5 \- 3 \- 1 \- 1 = 0
1359 \& C(=O)O\- : ValenceFreeElectrons on O\- = 6 \- 0 = 6 \- 1 \- 0 \- (\-1) = 6
1360 \& C(=O)O\- : ValenceFreeElectrons on =O = 6 \- 2 = 6 \- 2 \- 0 \- 0 = 4
1361 .Ve
1362 .IP "\fBGetX\fR" 4
1363 .IX Item "GetX"
1364 .Vb 1
1365 \& $X = $Atom\->GetX();
1366 .Ve
1367 .Sp
1368 Returns value of X\-coordinate for an \fIAtom\fR.
1369 .IP "\fBGetXYZ\fR" 4
1370 .IX Item "GetXYZ"
1371 .Vb 2
1372 \& @XYZ = $Atom\->GetXYZ();
1373 \& $XYZRef = $Atom\->GetXYZ();
1374 .Ve
1375 .Sp
1376 Returns an array or a reference to an array containing values for \fIAtom\fR coordinates.
1377 .IP "\fBGetXYZVector\fR" 4
1378 .IX Item "GetXYZVector"
1379 .Vb 1
1380 \& $XYZVector = $Atom\->GetXYZVector();
1381 .Ve
1382 .Sp
1383 Returns a \fIVector\fR object containing values for \fIAtom\fR coordinates
1384 .IP "\fBGetY\fR" 4
1385 .IX Item "GetY"
1386 .Vb 1
1387 \& $Y = $Atom\->GetY();
1388 .Ve
1389 .Sp
1390 Returns value of Y\-coordinate for an \fIAtom\fR.
1391 .IP "\fBGetZ\fR" 4
1392 .IX Item "GetZ"
1393 .Vb 1
1394 \& $Z = $Atom\->GetZ();
1395 .Ve
1396 .Sp
1397 Returns value of Z\-coordinate for an \fIAtom\fR.
1398 .IP "\fBIsAmideCarbon\fR" 4
1399 .IX Item "IsAmideCarbon"
1400 .Vb 1
1401 \& $Status = $Atom\->IsAmideCarbon();
1402 .Ve
1403 .Sp
1404 Returns 1 or 0 based on whether it's amide carbon \fIAtom\fR.
1405 .Sp
1406 An amide group is defineds as:
1407 .Sp
1408 .Vb 1
1409 \& R\-C(=O)\-N(\-R\*(Aq)\-R\*(Aq\*(Aq
1410 .Ve
1411 .Sp
1412 where:
1413 .Sp
1414 .Vb 5
1415 \& o R = Hydrogen or groups of atoms attached through carbon
1416 \& o R\*(Aq = Hydrogens or groups of atoms attached through carbon or
1417 \& hetro atoms
1418 \& o R\*(Aq\*(Aq = Hydrogens or groups of atoms attached through carbon or
1419 \& hetro atoms
1420 .Ve
1421 .IP "\fBIsAmideNitrogen\fR" 4
1422 .IX Item "IsAmideNitrogen"
1423 .Vb 1
1424 \& $Status = $Atom\->IsAmideNitrogen();
1425 .Ve
1426 .Sp
1427 Returns 1 or 0 based on whether it's amide nitrogen \fIAtom\fR.
1428 .IP "\fBIsAromatic\fR" 4
1429 .IX Item "IsAromatic"
1430 .Vb 1
1431 \& $Status = $Atom\->IsAromatic();
1432 .Ve
1433 .Sp
1434 Returns 1 or 0 based on whether it's an aromatic \fIAtom\fR.
1435 .IP "\fBIsArsenic\fR" 4
1436 .IX Item "IsArsenic"
1437 .Vb 1
1438 \& $Status = $Atom\->IsArsenic();
1439 .Ve
1440 .Sp
1441 Returns 1 or 0 based on whether it's an arsenic \fIAtom\fR.
1442 .IP "\fBIsBondedToAtom\fR" 4
1443 .IX Item "IsBondedToAtom"
1444 .Vb 1
1445 \& $Status = $Atom\->IsBondedToAtom($OtherAtom);
1446 .Ve
1447 .Sp
1448 Returns 1 or 0 based on whether \fIAtom\fR is bonded to \fIOtherAtom\fR.
1449 .IP "\fBIsBromine\fR" 4
1450 .IX Item "IsBromine"
1451 .Vb 1
1452 \& $Status = $Atom\->IsBromine();
1453 .Ve
1454 .Sp
1455 Returns 1 or 0 based on whether it's a bromine \fIAtom\fR.
1456 .IP "\fBIsCarbon\fR" 4
1457 .IX Item "IsCarbon"
1458 .Vb 1
1459 \& $Status = $Atom\->IsCarbon();
1460 .Ve
1461 .Sp
1462 Returns 1 or 0 based on whether it's a carbon \fIAtom\fR.
1463 .IP "\fBIsCarboxylCarbon\fR" 4
1464 .IX Item "IsCarboxylCarbon"
1465 .Vb 1
1466 \& $Status = $Atom\->IsCarboxylCarbon();
1467 .Ve
1468 .Sp
1469 Returns 1 or 0 based on whether it's a carboxyl carbon atom in carboxyl group:
1470 R\-C(=O)\-OH.
1471 .IP "\fBIsCarboxylOxygen\fR" 4
1472 .IX Item "IsCarboxylOxygen"
1473 .Vb 1
1474 \& $Status = $Atom\->IsCarboxylOxygen();
1475 .Ve
1476 .Sp
1477 Returns 1 or 0 based on whether it's a carboxyl oxygen atom in carboxyl group:
1478 R\-C(=O)\-OH.
1479 .IP "\fBIsCarboxylateCarbon\fR" 4
1480 .IX Item "IsCarboxylateCarbon"
1481 .Vb 1
1482 \& $Status = $Atom\->IsCarboxylateCarbon();
1483 .Ve
1484 .Sp
1485 Returns 1 or 0 based on whether it's a carboxylate carbon atom in carboxyl group:
1486 R\-C(=O)\-O\-.
1487 .IP "\fBIsCarboxylateOxygen\fR" 4
1488 .IX Item "IsCarboxylateOxygen"
1489 .Vb 1
1490 \& $Status = $Atom\->IsCarboxylateOxygen();
1491 .Ve
1492 .Sp
1493 Returns 1 or 0 based on whether it's a carboxylate oxygen atom in carboxyl group:
1494 R\-C(=O)\-O\-.
1495 .IP "\fBIsChlorine\fR" 4
1496 .IX Item "IsChlorine"
1497 .Vb 1
1498 \& $Status = $Atom\->IsChlorine();
1499 .Ve
1500 .Sp
1501 Returns 1 or 0 based on whether it's a chlorine \fIAtom\fR.
1502 .IP "\fBIsFluorine\fR" 4
1503 .IX Item "IsFluorine"
1504 .Vb 1
1505 \& $Status = $Atom\->IsFluorine();
1506 .Ve
1507 .Sp
1508 Returns 1 or 0 based on whether it's a fluorine \fIAtom\fR.
1509 .IP "\fBIsFunctionalClassType\fR" 4
1510 .IX Item "IsFunctionalClassType"
1511 .Vb 1
1512 \& $Status =$Atom\->IsFunctionalClassType($Type);
1513 .Ve
1514 .Sp
1515 Returns 1 or 0 based on whether it's a specified functional class \fIType\fR.
1516 .Sp
1517 The current release of MayaChemTools supports following abbreviations and descriptive
1518 names for \fIFunctionalClassType\fR:
1519 .Sp
1520 .Vb 9
1521 \& HBD: HydrogenBondDonor
1522 \& HBA: HydrogenBondAcceptor
1523 \& PI : PositivelyIonizable
1524 \& NI : NegativelyIonizable
1525 \& Ar : Aromatic
1526 \& Hal : Halogen
1527 \& H : Hydrophobic
1528 \& RA : RingAtom
1529 \& CA : ChainAtom
1530 .Ve
1531 .Sp
1532 The following definitions are used to determine functional class types: [ Ref 60\-61, Ref 65\-66 ]:
1533 .Sp
1534 .Vb 4
1535 \& HydrogenBondDonor: NH, NH2, OH
1536 \& HydrogenBondAcceptor: N[!H], O
1537 \& PositivelyIonizable: +, NH2
1538 \& NegativelyIonizable: \-, C(=O)OH, S(=O)OH, P(=O)OH
1539 .Ve
1540 .IP "\fBIsGuadiniumCarbon\fR" 4
1541 .IX Item "IsGuadiniumCarbon"
1542 .Vb 1
1543 \& $Status = $Atom\->IsGuadiniumCarbon();
1544 .Ve
1545 .Sp
1546 Returns 1 or 0 based on whether it's a guadinium carbon in guadinium group by
1547 checking its neighbors for a nitrogen in guadinium group.
1548 .IP "\fBIsGuadiniumNitrogen\fR" 4
1549 .IX Item "IsGuadiniumNitrogen"
1550 .Vb 1
1551 \& $Status = $Atom\->IsGuadiniumNitrogen();
1552 .Ve
1553 .Sp
1554 Returns 1 or 0 based on whether it's a guadinium nitrogen in guadinium group.
1555 .Sp
1556 A guadinium group is defined as:
1557 .Sp
1558 .Vb 1
1559 \& R2N\-C(=NR)\-(NR2) or R2N\-C(=NR2+)\-(NR2)
1560 .Ve
1561 .Sp
1562 where:
1563 .Sp
1564 .Vb 3
1565 \& o R = Hydrogens or group of atoms attached through carbon
1566 \& o Only one of the three nitrogens has a double bond to carbon
1567 \& and has optional formal charge allowing it to be neutral or charged state
1568 .Ve
1569 .IP "\fBIsHBondAcceptor\fR" 4
1570 .IX Item "IsHBondAcceptor"
1571 .Vb 2
1572 \& $Status =$Atom\->IsHBondAcceptor();
1573 \& $Status =$Atom\->IsHBondAcceptor($HydrogenBondsType);
1574 .Ve
1575 .Sp
1576 Returns 1 or 0 based on whether it's a hydrogen bond acceptor \fIAtom\fR.
1577 .IP "\fBIsHBondDonor\fR" 4
1578 .IX Item "IsHBondDonor"
1579 .Vb 2
1580 \& $Status =$Atom\->IsHBondDonor();
1581 \& $Status =$Atom\->IsHBondDonor($HydrogenBondsType);
1582 .Ve
1583 .Sp
1584 Returns 1 or 0 based on whether it's a hydrogen bond donor \fIAtom\fR.
1585 .IP "\fBIsHydrogenBondAcceptor\fR" 4
1586 .IX Item "IsHydrogenBondAcceptor"
1587 .Vb 2
1588 \& $Status =$Atom\->IsHydrogenBondAcceptor();
1589 \& $Status =$Atom\->IsHydrogenBondAcceptor($HydrogenBondsType);
1590 .Ve
1591 .Sp
1592 Returns 1 or 0 based on whether it's a hydrogen bond acceptor \fIAtom\fR.
1593 .IP "\fBIsHydrogenBondDonor\fR" 4
1594 .IX Item "IsHydrogenBondDonor"
1595 .Vb 2
1596 \& $Status =$Atom\->IsHydrogenBondDonor();
1597 \& $Status =$Atom\->IsHydrogenBondDonor($HydrogenBondsType);
1598 .Ve
1599 .Sp
1600 Returns 1 or 0 based on whether it's a hydrogen bond donor \fIAtom\fR.
1601 .Sp
1602 The current release of MayaChemTools supports identification of two types of hydrogen bond
1603 donor and acceptor atoms with these names:
1604 .Sp
1605 .Vb 2
1606 \& HBondsType1 or HydrogenBondsType1
1607 \& HBondsType2 or HydrogenBondsType2
1608 .Ve
1609 .Sp
1610 The names of these hydrogen bond types are rather arbitrary. However, their definitions have
1611 specific meaning and are as follows:
1612 .Sp
1613 .Vb 1
1614 \& HydrogenBondsType1 [ Ref 60\-61, Ref 65\-66 ]:
1615 \&
1616 \& Donor: NH, NH2, OH \- Any N and O with available H
1617 \& Acceptor: N[!H], O \- Any N without available H and any O
1618 \&
1619 \& HydrogenBondsType2 [ Ref 91 ]:
1620 \&
1621 \& Donor: NH, NH2, OH \- N and O with available H
1622 \& Acceptor: N, O \- And N and O
1623 .Ve
1624 .Sp
1625 By default, \fIHydrogenBondsType1\fR is used to calculate number hydrogen bond donor
1626 and acceptor atoms. \fIHydrogenBondsType2\fR corresponds to \fBRuleOf5\fR definition
1627 of hydrogen bond donors and acceptors.
1628 .IP "\fBIsHalogen\fR" 4
1629 .IX Item "IsHalogen"
1630 .Vb 1
1631 \& $Status =$Atom\->IsHalogen();
1632 .Ve
1633 .Sp
1634 Returns 1 or 0 based on whether it's a halogen \fIAtom\fR.
1635 .IP "\fBIsHeteroAtom\fR" 4
1636 .IX Item "IsHeteroAtom"
1637 .Vb 1
1638 \& $Status = $Atom\->IsHeteroAtom();
1639 .Ve
1640 .Sp
1641 Returns 0 or 1 based on whether it's a hetro \fIAtom\fR. Following atoms are considered hetro atoms:
1642 \&\fBN, O, F, P, S, Cl, Br, I\fR.
1643 .IP "\fBIsHydrogen\fR" 4
1644 .IX Item "IsHydrogen"
1645 .Vb 1
1646 \& $Status = $Atom\->IsHydrogen();
1647 .Ve
1648 .Sp
1649 Returns 1 or 0 based on whether it's a hydrogen \fIAtom\fR.
1650 .IP "\fBIsHydrophobic\fR" 4
1651 .IX Item "IsHydrophobic"
1652 .Vb 1
1653 \& $Status =$Atom\->IsHydrophobic();
1654 .Ve
1655 .Sp
1656 Returns 1 or 0 based on whether it's a hydrophobic \fIAtom\fR.
1657 .IP "\fBIsInRing\fR" 4
1658 .IX Item "IsInRing"
1659 .Vb 1
1660 \& $Status = $Atom\->IsInRing();
1661 .Ve
1662 .Sp
1663 Returns 1 or 0 based on whether \fIAtom\fR is present in a ring.
1664 .IP "\fBIsInRingOfSize\fR" 4
1665 .IX Item "IsInRingOfSize"
1666 .Vb 1
1667 \& $Status = $Atom\->IsInRingOfSize($Size);
1668 .Ve
1669 .Sp
1670 Returns 1 or 0 based on whether \fIAtom\fR is present in a ring of specific \fISize\fR.
1671 .IP "\fBIsIodine\fR" 4
1672 .IX Item "IsIodine"
1673 .Vb 1
1674 \& $Status = $Atom\->IsIodine();
1675 .Ve
1676 .Sp
1677 Returns 1 or 0 based on whether it's an iodine \fIAtom\fR.
1678 .IP "\fBIsIsotope\fR" 4
1679 .IX Item "IsIsotope"
1680 .Vb 1
1681 \& $Status =$Atom\->IsIsotope();
1682 .Ve
1683 .Sp
1684 Returns 1 or 0 based on whether it's an isotope \fIAtom\fR.
1685 .IP "\fBIsLipophilic\fR" 4
1686 .IX Item "IsLipophilic"
1687 .Vb 1
1688 \& $Status =$Atom\->IsLipophilic();
1689 .Ve
1690 .Sp
1691 Returns 1 or 0 based on whether it's a lipophilic \fIAtom\fR.
1692 .IP "\fBIsMetallic\fR" 4
1693 .IX Item "IsMetallic"
1694 .Vb 1
1695 \& $Status = $Atom\->IsMetallic();
1696 .Ve
1697 .Sp
1698 Returns 1 or 0 based on whether it's a metallic \fIAtom\fR.
1699 .IP "\fBIsNegativelyIonizable\fR" 4
1700 .IX Item "IsNegativelyIonizable"
1701 .Vb 1
1702 \& $Status =$Atom\->IsNegativelyIonizable();
1703 .Ve
1704 .Sp
1705 Returns 1 or 0 based on whether it's a negatively ionizable atom \fIAtom\fR.
1706 .IP "\fBIsNitrogen\fR" 4
1707 .IX Item "IsNitrogen"
1708 .Vb 1
1709 \& $Status = $Atom\->IsNitrogen();
1710 .Ve
1711 .Sp
1712 Returns 1 or 0 based on whether it's a nitrogen \fIAtom\fR.
1713 .IP "\fBIsNonCarbonOrHydrogen\fR" 4
1714 .IX Item "IsNonCarbonOrHydrogen"
1715 .Vb 1
1716 \& $Status =$Atom\->IsNonCarbonOrHydrogen();
1717 .Ve
1718 .Sp
1719 Returns 1 or 0 based on whether it's not a carbon or hydrogen \fIAtom\fR.
1720 .IP "\fBIsNotInRing\fR" 4
1721 .IX Item "IsNotInRing"
1722 .Vb 1
1723 \& $Status = $Atom\->IsNotInRing();
1724 .Ve
1725 .Sp
1726 Returns 1 or 0 based on whether \fIAtom\fR is not present in a ring.
1727 .IP "\fBIsOnlyInOneRing\fR" 4
1728 .IX Item "IsOnlyInOneRing"
1729 .Vb 1
1730 \& $Status = $Atom\->IsOnlyInOneRing();
1731 .Ve
1732 .Sp
1733 Returns 1 or 0 based on whether \fIAtom\fR is only present in one ring.
1734 .IP "\fBIsOxygen\fR" 4
1735 .IX Item "IsOxygen"
1736 .Vb 1
1737 \& $Status = $Atom\->IsOxygen();
1738 .Ve
1739 .Sp
1740 Returns 0 or 1 based on whether it's an oxygen \fIAtom\fR.
1741 .IP "\fBIsPhosphorus\fR" 4
1742 .IX Item "IsPhosphorus"
1743 .Vb 1
1744 \& $Status = $Atom\->IsPhosphorus();
1745 .Ve
1746 .Sp
1747 Returns 0 or 1 based on whether it's a phosphorus \fIAtom\fR.
1748 .IP "\fBIsPhosphateOxygen\fR" 4
1749 .IX Item "IsPhosphateOxygen"
1750 .Vb 1
1751 \& $Status = $Atom\->IsPhosphateOxygen();
1752 .Ve
1753 .Sp
1754 Returns 1 or 0 based on whether it's a phosphate oxygen in phosphate group.
1755 .Sp
1756 A phosphate group is defined as:
1757 .Sp
1758 .Vb 1
1759 \& AO\-(O=)P(\-OA)\-OA
1760 .Ve
1761 .Sp
1762 Where:
1763 .Sp
1764 .Vb 1
1765 \& A \- Any group of atoms including hydrogens
1766 .Ve
1767 .IP "\fBIsPhosphatePhosphorus\fR" 4
1768 .IX Item "IsPhosphatePhosphorus"
1769 .Vb 1
1770 \& $Status = $Atom\->IsPhosphatePhosphorus();
1771 .Ve
1772 .Sp
1773 Returns 1 or 0 based on whether it's a phosphate phosphorus in phosphate group.
1774 .IP "\fBIsPolarAtom\fR" 4
1775 .IX Item "IsPolarAtom"
1776 .Vb 1
1777 \& $Status = $Atom\->IsPolarAtom();
1778 .Ve
1779 .Sp
1780 Returns 0 or 1 based on whether it's a polar \fIAtom\fR. Following atoms are considered polar atoms:
1781 \&\fBN, O, P, S\fR.
1782 .IP "\fBIsPolarHydrogen\fR" 4
1783 .IX Item "IsPolarHydrogen"
1784 .Vb 1
1785 \& $Status = $Atom\->IsPolarHydrogen();
1786 .Ve
1787 .Sp
1788 Returns 0 or 1 based on whether it's a hydrogen \fIAtom\fR bonded to a polar atom.
1789 .IP "\fBIsPositivelyIonizable\fR" 4
1790 .IX Item "IsPositivelyIonizable"
1791 .Vb 1
1792 \& $Status =$Atom\->IsPositivelyIonizable();
1793 .Ve
1794 .Sp
1795 Returns 1 or 0 based on whether it's a positively ionizable \fIAtom\fR.
1796 .IP "\fBIsSaturated\fR" 4
1797 .IX Item "IsSaturated"
1798 .Vb 1
1799 \& $Status = $Atom\->IsSaturated();
1800 .Ve
1801 .Sp
1802 Returns 1 or 0 based on whether it's a saturated \fIAtom\fR. An atom attached
1803 to other atoms with only single bonds is considered a saturated atom.
1804 .IP "\fBIsSelenium\fR" 4
1805 .IX Item "IsSelenium"
1806 .Vb 1
1807 \& $Status = $Atom\->IsSelenium();
1808 .Ve
1809 .Sp
1810 Returns 0 or 1 based on whether it's a selenium \fIAtom\fR.
1811 .IP "\fBIsStereoCenter\fR" 4
1812 .IX Item "IsStereoCenter"
1813 .Vb 1
1814 \& $Status = $Atom\->IsStereoCenter();
1815 .Ve
1816 .Sp
1817 Returns 0 or 1 based on whether it's marked as a stero center \fIAtom\fR by explicit setting
1818 of \fIStereoCenter\fR atom propert to value of \fI1\fR.
1819 .IP "\fBIsSilicon\fR" 4
1820 .IX Item "IsSilicon"
1821 .Vb 1
1822 \& $Status = $Atom\->IsSilicon();
1823 .Ve
1824 .Sp
1825 Returns 0 or 1 based on whether it's a silicon \fIAtom\fR.
1826 .IP "\fBIsSulfur\fR" 4
1827 .IX Item "IsSulfur"
1828 .Vb 1
1829 \& $Status = $Atom\->IsSulfur();
1830 .Ve
1831 .Sp
1832 Returns 0 or 1 based on whether it's a sulfur \fIAtom\fR.
1833 .IP "\fBIsSulphur\fR" 4
1834 .IX Item "IsSulphur"
1835 .Vb 1
1836 \& $Status = $Atom\->IsSulphur();
1837 .Ve
1838 .Sp
1839 Returns 0 or 1 based on whether it's a sulfur \fIAtom\fR.
1840 .IP "\fBIsTellurium\fR" 4
1841 .IX Item "IsTellurium"
1842 .Vb 1
1843 \& $Status = $Atom\->IsTellurium();
1844 .Ve
1845 .Sp
1846 Returns 0 or 1 based on whether it's a tellurium \fIAtom\fR.
1847 .IP "\fBIsTerminal\fR" 4
1848 .IX Item "IsTerminal"
1849 .Vb 1
1850 \& $Status = $Atom\->IsTerminal();
1851 .Ve
1852 .Sp
1853 Returns 0 or 1 based on whether it's a terminal \fIAtom\fR attached to no
1854 more than one non-hydrogen atom.
1855 .IP "\fBIsUnsaturated\fR" 4
1856 .IX Item "IsUnsaturated"
1857 .Vb 1
1858 \& $Status = $Atom\->IsUnsaturated();
1859 .Ve
1860 .Sp
1861 Returns 1 or 0 based on whether it's as unsaturated \fIAtom\fR. An atom attached
1862 to other atoms with at least one non-single bond is considered an unsaturated atom.
1863 .IP "\fBIsTopologicalPharmacophoreType\fR" 4
1864 .IX Item "IsTopologicalPharmacophoreType"
1865 .Vb 1
1866 \& $Status =$Atom\->IsTopologicalPharmacophoreType();
1867 .Ve
1868 .Sp
1869 Returns 1 or 0 based on whether it's any of the supportyed topological pharmacophore
1870 \&\fIAtom\fR type. See \fIIsFunctionalClassType\fR for a list of supported types.
1871 .IP "\fBSetAtomSymbol\fR" 4
1872 .IX Item "SetAtomSymbol"
1873 .Vb 1
1874 \& $Atom\->SetAtomSymbol($AtomicSymbol);
1875 .Ve
1876 .Sp
1877 Sets atom symbol for \fIAtom\fR and returns \fIAtom\fR object. The appropriate atomic number is also
1878 set automatically.
1879 .IP "\fBSetAtomicNumber\fR" 4
1880 .IX Item "SetAtomicNumber"
1881 .Vb 1
1882 \& $Atom\->SetAtomicNumber($AtomicNumber);
1883 .Ve
1884 .Sp
1885 Sets atomic number for \fIAtom\fR and returns \fIAtom\fR object. The appropriate atom symbol is also
1886 set automatically.
1887 .IP "\fBSetMassNumber\fR" 4
1888 .IX Item "SetMassNumber"
1889 .Vb 1
1890 \& $Atom\->SetMassNumber($MassNumber);
1891 .Ve
1892 .Sp
1893 Sets mass number for \fIAtom\fR and returns \fIAtom\fR object.
1894 .IP "\fBSetStereoCenter\fR" 4
1895 .IX Item "SetStereoCenter"
1896 .Vb 1
1897 \& $Atom\->SetStereoCenter($StereoCenter);
1898 .Ve
1899 .Sp
1900 Sets stereo center for \fIAtom\fR and returns \fIAtom\fR object.
1901 .IP "\fBSetStereochemistry\fR" 4
1902 .IX Item "SetStereochemistry"
1903 .Vb 1
1904 \& $Atom\->SetStereochemistry($Stereochemistry);
1905 .Ve
1906 .Sp
1907 Sets stereo chemistry for \fIAtom\fR and returns \fIAtom\fR object.
1908 .IP "\fBSetX\fR" 4
1909 .IX Item "SetX"
1910 .Vb 1
1911 \& $Atom\->SetX($Value);
1912 .Ve
1913 .Sp
1914 Sets X\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object.
1915 .IP "\fBSetXYZ\fR" 4
1916 .IX Item "SetXYZ"
1917 .Vb 3
1918 \& $Atom\->SetXYZ(@XYZValues);
1919 \& $Atom\->SetXYZ($XYZValuesRef);
1920 \& $Atom\->SetXYZ($XYZVector);
1921 .Ve
1922 .Sp
1923 Sets \fIAtom\fR coordinates using an array, reference to an array or a \fIVector\fR object and
1924 returns \fIAtom\fR object.
1925 .IP "\fBSetY\fR" 4
1926 .IX Item "SetY"
1927 .Vb 1
1928 \& $Atom\->SetY($Value);
1929 .Ve
1930 .Sp
1931 Sets Y\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object.
1932 .IP "\fBSetZ\fR" 4
1933 .IX Item "SetZ"
1934 .Vb 1
1935 \& $Atom\->SetZ($Value);
1936 .Ve
1937 .Sp
1938 Sets Z\-coordinate value for \fIAtom\fR and returns \fIAtom\fR object.
1939 .IP "\fBStringifyAtom\fR" 4
1940 .IX Item "StringifyAtom"
1941 .Vb 1
1942 \& $AtomString = $Atom\->StringifyAtom();
1943 .Ve
1944 .Sp
1945 Returns a string containing information about \fIAtom\fR object.
1946 .SH "AUTHOR"
1947 .IX Header "AUTHOR"
1948 Manish Sud <msud@san.rr.com>
1949 .SH "SEE ALSO"
1950 .IX Header "SEE ALSO"
1951 Bond.pm, Molecule.pm, MoleculeFileIO.pm
1952 .SH "COPYRIGHT"
1953 .IX Header "COPYRIGHT"
1954 Copyright (C) 2015 Manish Sud. All rights reserved.
1955 .PP
1956 This file is part of MayaChemTools.
1957 .PP
1958 MayaChemTools is free software; you can redistribute it and/or modify it under
1959 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free
1960 Software Foundation; either version 3 of the License, or (at your option)
1961 any later version.