Mercurial > repos > deepakjadmin > mayatool3_test3
comparison mayachemtools/docs/modules/man3/Molecule.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 "MOLECULE 1" | |
127 .TH MOLECULE 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 Molecule \- Molecule class | |
134 .SH "SYNOPSIS" | |
135 .IX Header "SYNOPSIS" | |
136 use Molecule; | |
137 .PP | |
138 use Molecule qw(:all); | |
139 .SH "DESCRIPTION" | |
140 .IX Header "DESCRIPTION" | |
141 \&\fBMolecule\fR class provides the following methods: | |
142 .PP | |
143 new, AddAtom, AddAtoms, AddBond, AddBonds, AddHydrogens, AddPolarHydrogens, | |
144 ClearRings, Copy, DeleteAromaticity, DeleteAtom, DeleteAtoms, DeleteBond, | |
145 DeleteBonds, DeleteHydrogens, DeletePolarHydrogens, DetectAromaticity, | |
146 DetectRings, FormatElementalCompositionInformation, GetAllAtomPaths, | |
147 GetAllAtomPathsStartingAt, GetAllAtomPathsStartingAtWithLength, | |
148 GetAllAtomPathsStartingAtWithLengthUpto, GetAllAtomPathsWithLength, | |
149 GetAllAtomPathsWithLengthUpto, GetAromaticRings, GetAromaticityModel, | |
150 GetAtomNeighborhoods, GetAtomNeighborhoodsWithRadiusUpto, | |
151 GetAtomNeighborhoodsWithSuccessorAtoms, | |
152 GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto, GetAtomPathBonds, | |
153 GetAtomPaths, GetAtomPathsBetween, GetAtomPathsStartingAt, | |
154 GetAtomPathsStartingAtWithLength, GetAtomPathsStartingAtWithLengthUpto, | |
155 GetAtomPathsWithLength, GetAtomPathsWithLengthUpto, GetAtoms, GetBonds, GetCharge, | |
156 GetConnectedComponents, GetConnectedComponentsAtoms, GetDimensionality, | |
157 GetElementalComposition, GetElementsAndNonElements, GetExactMass, GetFormalCharge, | |
158 GetFreeRadicalElectrons, GetFusedAndNonFusedRings, GetLargestConnectedComponent, | |
159 GetLargestConnectedComponentAtoms, GetLargestRing, GetMolecularFormula, | |
160 GetMolecularWeight, GetNumOfAromaticRings, GetNumOfAtoms, GetNumOfBonds, | |
161 GetNumOfConnectedComponents, GetNumOfElementsAndNonElements, GetNumOfHeavyAtoms, | |
162 GetNumOfHydrogenAtoms, GetNumOfMissingHydrogenAtoms, GetNumOfNonHydrogenAtoms, | |
163 GetNumOfRings, GetNumOfRingsWithEvenSize, GetNumOfRingsWithOddSize, | |
164 GetNumOfRingsWithSize, GetNumOfRingsWithSizeGreaterThan, | |
165 GetNumOfRingsWithSizeLessThan, GetRingBonds, GetRingBondsFromRings, GetRings, | |
166 GetRingsWithEvenSize, GetRingsWithOddSize, GetRingsWithSize, | |
167 GetRingsWithSizeGreaterThan, GetRingsWithSizeLessThan, GetSizeOfLargestRing, | |
168 GetSizeOfSmallestRing, GetSmallestRing, GetSpinMultiplicity, | |
169 GetSupportedAromaticityModels, GetTopologicallySortedAtoms, GetValenceModel, | |
170 HasAromaticAtomsInRings, HasAromaticAtomsNotInRings, HasAromaticRings, HasAtom, | |
171 HasBond, HasFusedRings, HasNoRings, HasOnlyOneRing, HasRings, IsAromatic, | |
172 IsMolecule, IsRingAromatic, IsSupportedAromaticityModel, IsThreeDimensional, | |
173 IsTwoDimensional, KeepLargestComponent, KekulizeAromaticAtoms, NewAtom, NewBond, | |
174 SetActiveRings, SetAromaticityModel, SetID, SetValenceModel, StringifyMolecule | |
175 .PP | |
176 The following methods can also be used as functions: | |
177 .PP | |
178 FormatElementalCompositionInformation, IsMolecule | |
179 .PP | |
180 \&\fBMolecule\fR class is derived from \fBObjectProperty\fR base class which provides methods not explicitly | |
181 defined in \fBMolecule\fR or \fBObjectProperty\fR class using Perl's \s-1AUTOLOAD\s0 functionality. These methods | |
182 are generated on-the-fly for a specified object property: | |
183 .PP | |
184 .Vb 3 | |
185 \& Set<PropertyName>(<PropertyValue>); | |
186 \& $PropertyValue = Get<PropertyName>(); | |
187 \& Delete<PropertyName>(); | |
188 .Ve | |
189 .SS "\s-1METHODS\s0" | |
190 .IX Subsection "METHODS" | |
191 .IP "\fBnew\fR" 4 | |
192 .IX Item "new" | |
193 .Vb 1 | |
194 \& $NewMolecule = new Molecule([%PropertyNameAndValues]); | |
195 .Ve | |
196 .Sp | |
197 Using specified \fIAtom\fR property names and values hash, \fBnew\fR method creates a new object | |
198 and returns a reference to newly created \fBAtom\fR object. By default, the following properties are | |
199 initialized: | |
200 .Sp | |
201 .Vb 2 | |
202 \& ID = SequentialObjectID | |
203 \& Name = "Molecule <SequentialObjectID>" | |
204 .Ve | |
205 .Sp | |
206 Examples: | |
207 .Sp | |
208 .Vb 1 | |
209 \& $Molecule = new Molecule(); | |
210 \& | |
211 \& $WaterMolecule = new Molecule(\*(AqName\*(Aq => \*(AqWater\*(Aq); | |
212 \& | |
213 \& $Oxygen = new Atom(\*(AqAtomSymbol\*(Aq => \*(AqO\*(Aq, \*(AqXYZ\*(Aq => [0, 0, 0]); | |
214 \& $Hydrogen1 = new Atom(\*(AqAtomSymbol\*(Aq => \*(AqH\*(Aq, | |
215 \& \*(AqXYZ\*(Aq => [0.7144, 0.4125, 0]); | |
216 \& $Hydrogen2 = new Atom(\*(AqAtomSymbol\*(Aq => \*(AqH\*(Aq, | |
217 \& \*(AqXYZ\*(Aq => [1.1208, \-0.2959, 0]); | |
218 \& $WaterMolecule\->AddAtoms($Oxygen, $Hydrogen1, $Hydrogen2); | |
219 \& | |
220 \& $Bond1 = new Bond(\*(AqAtoms\*(Aq => [$Oxygen, $Hydrogen1], | |
221 \& \*(AqBondOrder\*(Aq => 1); | |
222 \& $Bond2 = new Bond(\*(AqAtoms\*(Aq => [$Oxygen, $Hydrogen2], | |
223 \& \*(AqBondOrder\*(Aq => 1); | |
224 \& $WaterMolecule\->AddBonds($Bond1, $Bond2); | |
225 .Ve | |
226 .IP "\fBAddAtom\fR" 4 | |
227 .IX Item "AddAtom" | |
228 .Vb 1 | |
229 \& $Molecule\->AddAtom($Atom); | |
230 .Ve | |
231 .Sp | |
232 Adds an \fIAtom\fR to a \fIMolecule\fR and returns \fIMolecule\fR. | |
233 .IP "\fBAddAtoms\fR" 4 | |
234 .IX Item "AddAtoms" | |
235 .Vb 1 | |
236 \& $Molecule\->AddAtoms(@Atoms); | |
237 .Ve | |
238 .Sp | |
239 Adds \fIAtoms\fR to a \fIMolecule\fR and returns \fIMolecule\fR. | |
240 .IP "\fBAddBond\fR" 4 | |
241 .IX Item "AddBond" | |
242 .Vb 1 | |
243 \& $Molecule\->AddBond($Bond); | |
244 .Ve | |
245 .Sp | |
246 Adds a \fIBond\fR to a \fIMolecule\fR and returns \fIMolecule\fR. | |
247 .IP "\fBAddBonds\fR" 4 | |
248 .IX Item "AddBonds" | |
249 .Vb 1 | |
250 \& $Molecule\->AddBonds(@Bonds); | |
251 .Ve | |
252 .Sp | |
253 Adds \fIBonds\fR to a \fIMolecule\fR and returns \fIMolecule\fR. | |
254 .IP "\fBAddHydrogens\fR" 4 | |
255 .IX Item "AddHydrogens" | |
256 .Vb 1 | |
257 \& $NumOfHydrogensAdded = $Molecule\->AddHydrogens(); | |
258 .Ve | |
259 .Sp | |
260 Adds hydrogens to each atom in a \fIMolecule\fR and returns total number of hydrogens | |
261 added. The current release of MayaChemTools doesn't assign hydrogen positions. | |
262 .IP "\fBAddPolarHydrogens\fR" 4 | |
263 .IX Item "AddPolarHydrogens" | |
264 .Vb 1 | |
265 \& $NumOfHydrogensAdded = $Molecule\->AddPolarHydrogens(); | |
266 .Ve | |
267 .Sp | |
268 Adds hydrogens to each polar atom \- N, O, P or S \- in a \fIMolecule\fR and returns total | |
269 number of polar hydrogens added. The current release of MayaChemTools doesn't | |
270 assign hydrogen positions. | |
271 .IP "\fBClearRings\fR" 4 | |
272 .IX Item "ClearRings" | |
273 .Vb 1 | |
274 \& $Molecule\->ClearRings(); | |
275 .Ve | |
276 .Sp | |
277 Deletes all rings associated with \fIMolecule\fR and returns \fIMolecule\fR. | |
278 .IP "\fBCopy\fR" 4 | |
279 .IX Item "Copy" | |
280 .Vb 1 | |
281 \& $MoleculeCopy = $Molecule\->Copy(); | |
282 .Ve | |
283 .Sp | |
284 Copies \fIMolecule\fR and its associated data using \fBStorable::dclone\fR and returns a new | |
285 \&\fBMolecule\fR object. | |
286 .IP "\fBDeleteAromaticity\fR" 4 | |
287 .IX Item "DeleteAromaticity" | |
288 .Vb 1 | |
289 \& $Molecule\->DeleteAromaticity(); | |
290 .Ve | |
291 .Sp | |
292 Deletes aromatic property associated with all atoms and bonds in a \fIMolecule\fR and returns | |
293 \&\fIMolecule\fR. | |
294 .IP "\fBDeleteAtom\fR" 4 | |
295 .IX Item "DeleteAtom" | |
296 .Vb 1 | |
297 \& $Molecule\->DeleteAtom($Atom); | |
298 .Ve | |
299 .Sp | |
300 Deletes \fIAtom\fR from a \fIMolecule\fR and returns \fIMolecule\fR. | |
301 .IP "\fBDeleteAtoms\fR" 4 | |
302 .IX Item "DeleteAtoms" | |
303 .Vb 1 | |
304 \& $Molecule\->DeleteAtoms(@Atoms); | |
305 .Ve | |
306 .Sp | |
307 Deletes \fIAtoms\fR from a \fIMolecule\fR and returns \fIMolecule\fR. | |
308 .IP "\fBDeleteBond\fR" 4 | |
309 .IX Item "DeleteBond" | |
310 .Vb 1 | |
311 \& $Molecule\->DeleteBond($Bond); | |
312 .Ve | |
313 .Sp | |
314 Deletes \fIBond\fR from a \fIMolecule\fR and returns \fIMolecule\fR. | |
315 .IP "\fBDeleteBonds\fR" 4 | |
316 .IX Item "DeleteBonds" | |
317 .Vb 1 | |
318 \& $Molecule\->DeleteBonds(@Bonds); | |
319 .Ve | |
320 .Sp | |
321 Deletes \fIBonds\fR from a \fIMolecule\fR and returns \fIMolecule\fR. | |
322 .IP "\fBDeleteHydrogens\fR" 4 | |
323 .IX Item "DeleteHydrogens" | |
324 .Vb 1 | |
325 \& $NumOfHydrogensDeleted = $Molecule\->DeleteHydrogens(); | |
326 .Ve | |
327 .Sp | |
328 Removes hydrogens from each atom in a \fIMolecule\fR and returns total number of hydrogens | |
329 deleted. | |
330 .IP "\fBDeletePolarHydrogens\fR" 4 | |
331 .IX Item "DeletePolarHydrogens" | |
332 .Vb 1 | |
333 \& $NumOfHydrogensDeleted = $Molecule\->DeletePolarHydrogens(); | |
334 .Ve | |
335 .Sp | |
336 Removes hydrogens to each polar atom \- N, O, P or S \- in a \fIMolecule\fR and returns total | |
337 number of polar hydrogens deleted. | |
338 .IP "\fBDetectAromaticity\fR" 4 | |
339 .IX Item "DetectAromaticity" | |
340 .Vb 1 | |
341 \& $Molecule\->DetectAromaticity(); | |
342 .Ve | |
343 .Sp | |
344 Associates \fIAromatic\fR property to atoms and bonds involved in aromatic rings or ring | |
345 systems in a \fIMolecule\fR and returns \fIMolecule\fR. | |
346 .Sp | |
347 This method assumes the ring detection has already been perfomed using \fBDetectRings\fR. | |
348 And any existing \fIAromatic\fR property associated with atoms and bonds is deleted before | |
349 performing aromaticity detection. | |
350 .Sp | |
351 What is aromaticity? [ Ref 124 ] It's in the code of the implementer, did you | |
352 say? Agree. The implementation of aromaticity varies widely across different | |
353 packages [ Ref 125 ]; additionally, the implementation details are not always | |
354 completely available, and it's not possible to figure out the exact implementation | |
355 of aromaticity across various packages. Using the publicly available information, | |
356 however, one can try to reproduce the available results to the extent possible, | |
357 along with parameterizing all the control parameters used to implement different | |
358 aromaticity models, and that's exactly what the current release of MayaChemTools | |
359 does. | |
360 .Sp | |
361 The implementation of aromaticity corresponding to various aromaticity models in | |
362 MayaChemTools package is driven by an external \s-1CSV\s0 file AromaticityModelsData.csv, | |
363 which is distributed with the package and is available in lib/data directory. The \s-1CSV\s0 | |
364 files contains names of supported aromaticity models, along with various control | |
365 parameters and their values. This file is loaded and processed during instantiation | |
366 of Molecule class and data corresponding to specific aromaticity model are used | |
367 to detect aromaticity for that model. Any new aromaticity model added to the | |
368 aromaticity data file, using different combinations of values for existing control | |
369 parameters, would work without any changes to the code; the addition of any new | |
370 control parameters, however, requires its implementation in the code used to | |
371 calculate number of pi electrons available towards delocalization in a ring or ring | |
372 systems. | |
373 .Sp | |
374 The current release of MayaChemTools package supports these aromaticity | |
375 models: MDLAromaticityModel, TriposAromaticityModel, MMFFAromaticityModel, | |
376 ChemAxonBasicAromaticityModel, ChemAxonGeneralAromaticityModel, | |
377 DaylightAromaticityModel, MayaChemToolsAromaticityModel. | |
378 .Sp | |
379 The current list of control parameters available to detect aromaticity corresponding | |
380 to different aromaticity models are: AllowHeteroRingAtoms, HeteroRingAtomsList, | |
381 AllowExocyclicDoubleBonds, AllowHomoNuclearExocyclicDoubleBonds, | |
382 AllowElectronegativeRingAtomExocyclicDoubleBonds, AllowRingAtomFormalCharge, | |
383 AllowHeteroRingAtomFormalCharge, MinimumRingSize. The values for these control | |
384 parameters are specified in AromaticityModelsData.csv file. | |
385 .Sp | |
386 Although definition of aromaticity differs across various aromaticity models, a ring | |
387 or a ring system containing 4n + 2 pi electrons (Huckel's rule) corresponding to | |
388 alternate single and double bonds, in general, is considered aromatic. | |
389 .Sp | |
390 The available valence free electrons on heterocyclic ring atoms, involved in two single | |
391 ring bonds, are also allowed to participate in pi electron delocalizaiton for most of | |
392 the supported aromaticity models. | |
393 .Sp | |
394 The presence of exocyclic terminal double bond on ring atoms involved in pi electron | |
395 delocalization is only allowed for some of the aromaticity models. Additionally, the type | |
396 atoms involved in exocyclic terminal double bonds may result in making a ring or ring | |
397 system non-aromatic. | |
398 .Sp | |
399 For molecules containing fused rings, each fused ring set is considered as one aromatic | |
400 system for counting pi electrons to satisfy Huckel's rule; In case of a failure, rings in | |
401 fused set are treated individually for aromaticity detection. Additionally, non-fused | |
402 rings are handled on their own during aromaticity detection. | |
403 .IP "\fBDetectRings\fR" 4 | |
404 .IX Item "DetectRings" | |
405 .Vb 1 | |
406 \& $Molecule\->DetectRings(); | |
407 .Ve | |
408 .Sp | |
409 Detects rings in a \fIMolecule\fR and returns \fIMolecule\fR. Ring detection is performed using | |
410 \&\fBDetectCycles\fR method avaible in \fBGraph\fR class which in turn uses methods available | |
411 \&\fBGraph::CyclesDetection\fR class. \fBGraph::CyclesDetection\fR class implements collapsing path graph | |
412 [Ref 31] methodology to detect all cycles in a graph. | |
413 .IP "\fBFormatElementalCompositionInformation\fR" 4 | |
414 .IX Item "FormatElementalCompositionInformation" | |
415 .Vb 6 | |
416 \& $FormattedInfo = $Molecule\->FormatElementalCompositionInformation( | |
417 \& $ElementsRef, $ElementCompositionRef, | |
418 \& [$Precision]); | |
419 \& $FormattedInfo = Molecule::FormatElementalCompositionInformation( | |
420 \& $ElementsRef, $ElementCompositionRef, | |
421 \& [$Precision]); | |
422 .Ve | |
423 .Sp | |
424 Using \fIElementsRef\fR and \fIElementCompositionRef\fR arrays referneces containg informatio | |
425 about elements and their composition, formats elemental composition information and returns | |
426 a \fIFormattedInfo\fR string. Defaule \fIPrecision\fR value: \fI2\fR. | |
427 .IP "\fBGetAromaticityModel\fR" 4 | |
428 .IX Item "GetAromaticityModel" | |
429 .Vb 1 | |
430 \& $AromaticityModel = $Molecule\->GetAromaticityModel(); | |
431 .Ve | |
432 .Sp | |
433 Returns name of \fBAromaticityModel\fR set for \fIMolecule\fR corresponding to \fBAromaticityModel\fR | |
434 property or default model name of \fBMayaChemToolsAromaticityModel\fR. | |
435 .IP "\fBGetAllAtomPaths\fR" 4 | |
436 .IX Item "GetAllAtomPaths" | |
437 .Vb 1 | |
438 \& $AtomPathsRef = $Molecule\->GetAllAtomPaths([$AllowCycles]); | |
439 .Ve | |
440 .Sp | |
441 Returns all paths as a reference to an array containing reference to arrays with path | |
442 \&\fBAtom\fR objects. | |
443 .Sp | |
444 Path atoms correspond to to all possible paths for each atom in molecule with all | |
445 possible lengths and sharing of bonds in paths traversed. By default, rings are | |
446 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
447 .Sp | |
448 For molecule without any rings, this method returns the same set of atom paths as | |
449 \&\fBGetAtomPaths\fR method. | |
450 .IP "\fBGetAllAtomPathsStartingAt\fR" 4 | |
451 .IX Item "GetAllAtomPathsStartingAt" | |
452 .Vb 2 | |
453 \& $AtomPathsRef = $Molecule\->GetAllAtomPathsStartingAt($StartAtom, | |
454 \& [$AllowCycles]); | |
455 .Ve | |
456 .Sp | |
457 Returns all atom paths starting from \fIStartAtom\fR as a reference to an array containing | |
458 reference to arrays with path \fBAtom\fR objects. | |
459 .Sp | |
460 Path atoms atoms correspond to to all possible paths for specified atom in molecule with all | |
461 possible lengths and sharing of bonds in paths traversed. By default, rings are | |
462 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
463 .Sp | |
464 For molecule without any rings, this method returns the same set of atom paths as | |
465 \&\fBGetAtomPathsStartingAt\fR method. | |
466 .IP "\fBGetAllAtomPathsStartingAtWithLength\fR" 4 | |
467 .IX Item "GetAllAtomPathsStartingAtWithLength" | |
468 .Vb 2 | |
469 \& $AtomPathsRef = $Molecule\->GetAllAtomPathsStartingAtWithLength( | |
470 \& $StartAtom, $Length, [$AllowCycles]); | |
471 .Ve | |
472 .Sp | |
473 Returns all atom paths starting from \fIStartAtom\fR with specified \fILength\fRas a reference | |
474 to an array containing reference to arrays with path \fBAtom\fR objects. | |
475 .Sp | |
476 Path atoms atoms correspond to to all possible paths for specified atom in molecule with all | |
477 possible lengths and sharing of bonds in paths traversed. By default, rings are | |
478 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
479 .Sp | |
480 For molecule without any rings, this method returns the same set of atom paths as | |
481 \&\fBGetAtomPathsStartingAtWithLength\fR method. | |
482 .IP "\fBGetAllAtomPathsStartingAtWithLengthUpto\fR" 4 | |
483 .IX Item "GetAllAtomPathsStartingAtWithLengthUpto" | |
484 .Vb 2 | |
485 \& $AtomPathsRef = $Molecule\->GetAllAtomPathsStartingAtWithLengthUpto( | |
486 \& $StartAtom, $Length, [$AllowCycles]); | |
487 .Ve | |
488 .Sp | |
489 Returns atom paths starting from \fIStartAtom\fR with length up to \fILength\fR as a reference | |
490 to an array containing reference to arrays with path \fBAtom\fR objects. | |
491 .Sp | |
492 Path atoms atoms correspond to all possible paths for specified atom in molecule with length | |
493 up to a specified length and sharing of bonds in paths traversed. By default, rings are | |
494 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
495 .Sp | |
496 For molecule without any rings, this method returns the same set of atom paths as | |
497 \&\fIGetAtomPathsStartingAtWithLengthUpto\fR method. | |
498 .IP "\fBGetAllAtomPathsWithLength\fR" 4 | |
499 .IX Item "GetAllAtomPathsWithLength" | |
500 .Vb 2 | |
501 \& $AtomPathsRef = $Molecule\->GetAllAtomPathsWithLength($Length, | |
502 \& [$AllowCycles]); | |
503 .Ve | |
504 .Sp | |
505 Returns all atom paths with specified \fILength\fR as a reference to an array containing | |
506 reference to arrays with path \fBAtom\fR objects. | |
507 .Sp | |
508 Path atoms correspond to to all possible paths for each atom in molecule with length | |
509 up to a specified length and sharing of bonds in paths traversed. By default, rings are | |
510 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
511 .Sp | |
512 For molecule without any rings, this method returns the same set of atom paths as | |
513 as \fIGetAtomPathsWithLength\fR method. | |
514 .IP "\fBGetAllAtomPathsWithLengthUpto\fR" 4 | |
515 .IX Item "GetAllAtomPathsWithLengthUpto" | |
516 .Vb 2 | |
517 \& $AtomPathsRef = $Molecule\->GetAllAtomPathsWithLengthUpto($Length, | |
518 \& [$AllowCycles]); | |
519 .Ve | |
520 .Sp | |
521 Returns all atom paths with length up to \fILength\fR as a reference to an array containing | |
522 reference to arrays with path \fBAtom\fR objects. | |
523 .Sp | |
524 Path atoms correspond to to all possible paths for each atom in molecule with length | |
525 up to a specified length and sharing of bonds in paths traversed. By default, rings are | |
526 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
527 .Sp | |
528 For molecule without any rings, this method returns the same set of atom paths as | |
529 as \fIGetAtomPathsWithLengthUpto\fR method. | |
530 .IP "\fBGetAromaticRings\fR" 4 | |
531 .IX Item "GetAromaticRings" | |
532 .Vb 1 | |
533 \& @AtomaticRings = $Molecule\->GetAromaticRings(); | |
534 .Ve | |
535 .Sp | |
536 Returns aromatic rings as an array containing references to arrays of ring \fIAtom\fR objects | |
537 in a \fIMolecule\fR. | |
538 .IP "\fBGetAtomNeighborhoods\fR" 4 | |
539 .IX Item "GetAtomNeighborhoods" | |
540 .Vb 1 | |
541 \& @Neighborhoods = $Molecule\->GetAtomNeighborhoods($StartAtom); | |
542 .Ve | |
543 .Sp | |
544 Returns atom neighborhoods around a \fIStartAtom\fR as an array containing references | |
545 to arrays with neighborhood \fIAtom\fR objects at possible radii. | |
546 .IP "\fBGetAtomNeighborhoodsWithRadiusUpto\fR" 4 | |
547 .IX Item "GetAtomNeighborhoodsWithRadiusUpto" | |
548 .Vb 2 | |
549 \& @Neighborhoods = $Molecule\->GetAtomNeighborhoodsWithRadiusUpto($StartAtom, | |
550 \& $Radius); | |
551 .Ve | |
552 .Sp | |
553 Returns atom neighborhoods around a \fIStartAtom\fR as an array containing references | |
554 to arrays with neighborhood \fIAtom\fR objects up to \fIRadius\fR. | |
555 .IP "\fBGetAtomNeighborhoodsWithSuccessorAtoms\fR" 4 | |
556 .IX Item "GetAtomNeighborhoodsWithSuccessorAtoms" | |
557 .Vb 2 | |
558 \& @Neighborhoods = $Molecule\->GetAtomNeighborhoodsWithSuccessorAtoms( | |
559 \& $StartAtom); | |
560 .Ve | |
561 .Sp | |
562 Returns atom neighborhood around a specified \fIStartAtom\fR, along with their successor | |
563 connected atoms, collected at all radii as an array containing references to arrays with first | |
564 value corresponding to neighborhood atom at a specific radius and second value as reference | |
565 to an array containing its successor connected atoms. | |
566 .Sp | |
567 For a neighborhood atom at each radius level, the successor connected atoms correspond to the | |
568 neighborhood atoms at the next radius level. Consequently, the neighborhood atoms at the last | |
569 radius level don't contain any successor atoms which fall outside the range of specified radius. | |
570 .IP "\fBGetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto\fR" 4 | |
571 .IX Item "GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto" | |
572 .Vb 2 | |
573 \& @Neighborhoods = $Molecule\->GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto( | |
574 \& $StartAtom, $Radius); | |
575 .Ve | |
576 .Sp | |
577 Returns atom neighborhood around a specified \fIStartAtom\fR, along with their successor | |
578 connected atoms, collected upto specified \fIRadiud\fR as an array containing references to arrays | |
579 with first value corresponding to neighborhood atom at a specific radius and second value as | |
580 reference to an array containing its successor connected atoms. | |
581 .Sp | |
582 For a neighborhood atom at each radius level, the successor connected atoms correspond to the | |
583 neighborhood atoms at the next radius level. Consequently, the neighborhood atoms at the last | |
584 radius level don't contain any successor atoms which fall outside the range of specified radius. | |
585 .IP "\fBGetAtomPathBonds\fR" 4 | |
586 .IX Item "GetAtomPathBonds" | |
587 .Vb 1 | |
588 \& $Return = $Molecule\->GetAtomPathBonds(@PathAtoms); | |
589 .Ve | |
590 .Sp | |
591 Returns an array containing \fBBond\fR objects corresponding to successive pair of | |
592 atoms in \fIPathAtoms\fR | |
593 .IP "\fBGetAtomPaths\fR" 4 | |
594 .IX Item "GetAtomPaths" | |
595 .Vb 1 | |
596 \& $AtomPathsRef = $Molecule\->GetAtomPaths([$AllowCycles]); | |
597 .Ve | |
598 .Sp | |
599 Returns all paths as a reference to an array containing reference to arrays with path | |
600 \&\fBAtom\fR objects. | |
601 .Sp | |
602 Path atoms correspond to to all possible paths for each atom in molecule with all | |
603 possible lengths and no sharing of bonds in paths traversed. By default, rings are | |
604 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
605 .IP "\fBGetAtomPathsBetween\fR" 4 | |
606 .IX Item "GetAtomPathsBetween" | |
607 .Vb 1 | |
608 \& $AtomPathsRef = $Molecule\->GetAtomPathsBetween($StartAtom, $EndAtom); | |
609 .Ve | |
610 .Sp | |
611 Returns all paths as between \fIStartAtom\fR and \fIEndAtom\fR as a reference to an array | |
612 containing reference to arrays with path \fBAtom\fR objects. | |
613 .Sp | |
614 For molecules with rings, atom paths array contains may contain two paths. | |
615 .IP "\fBGetAtomPathsStartingAt\fR" 4 | |
616 .IX Item "GetAtomPathsStartingAt" | |
617 .Vb 1 | |
618 \& $AtomPathsRef = $Molecule\->GetAtomPathsStartingAt($StartAtom, [$AllowCycles]); | |
619 .Ve | |
620 .Sp | |
621 Returns paths starting at \fIStartAtom\fR as a reference to an array containing reference to | |
622 arrays with path \fBAtom\fR objects. | |
623 .Sp | |
624 Path atoms correspond to all possible paths for specified atom in molecule with all | |
625 possible lengths and no sharing of bonds in paths traversed. By default, rings are | |
626 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
627 .IP "\fBGetAtomPathsStartingAtWithLength\fR" 4 | |
628 .IX Item "GetAtomPathsStartingAtWithLength" | |
629 .Vb 2 | |
630 \& $AtomPathsRef = $Molecule\->GetAtomPathsStartingAtWithLength($StartAtom, | |
631 \& $Length, [$AllowCycles]); | |
632 .Ve | |
633 .Sp | |
634 Returns paths starting at \fIStartAtom\fR with length \fILength\fR as a reference to an array | |
635 containing reference to arrays with path \fBAtom\fR objects. | |
636 .Sp | |
637 Path atoms correspond to all possible paths for specified atom in molecule with length | |
638 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | |
639 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
640 .IP "\fBGetAtomPathsStartingAtWithLengthUpto\fR" 4 | |
641 .IX Item "GetAtomPathsStartingAtWithLengthUpto" | |
642 .Vb 2 | |
643 \& $AtomPathsRef = $Molecule\->GetAtomPathsStartingAtWithLengthUpto($StartAtom, | |
644 \& $Length, [$AllowCycles]); | |
645 .Ve | |
646 .Sp | |
647 Returns paths starting at \fIStartAtom\fR with length up to \fILength\fR as a reference to an array | |
648 containing reference to arrays with path \fBAtom\fR objects. | |
649 .Sp | |
650 Path atoms correspond to all possible paths for specified atom in molecule with length | |
651 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | |
652 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
653 .IP "\fBGetAtomPathsWithLength\fR" 4 | |
654 .IX Item "GetAtomPathsWithLength" | |
655 .Vb 1 | |
656 \& $AtomPathsRef = $Molecule\->GetAtomPathsWithLength($Length, [$AllowCycles]); | |
657 .Ve | |
658 .Sp | |
659 Returns all paths with specified \fILength\fR as a reference to an array containing reference | |
660 to arrays with path \fBAtom\fR objects. | |
661 .Sp | |
662 Path atoms correspond to all possible paths for each atom in molecule with length | |
663 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | |
664 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
665 .IP "\fBGetAtomPathsWithLengthUpto\fR" 4 | |
666 .IX Item "GetAtomPathsWithLengthUpto" | |
667 .Vb 1 | |
668 \& $AtomPathsRef = $Molecule\->GetAtomPathsWithLengthUpto($Length, [$AllowCycles]); | |
669 .Ve | |
670 .Sp | |
671 Returns all paths with length up to \fILength\fR as a reference to an array containing reference | |
672 to arrays with path \fBAtom\fR objects. | |
673 .Sp | |
674 Path atoms correspond to all possible paths for each atom in molecule with length | |
675 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | |
676 included in paths. A path containing a ring is terminated at an atom completing the ring. | |
677 .IP "\fBGetAtoms\fR" 4 | |
678 .IX Item "GetAtoms" | |
679 .Vb 2 | |
680 \& @AllAtoms = $Molecule\->GetAtoms(); | |
681 \& @PolarAtoms = $Molecule\->GetAtoms(\*(AqIsPolarAtom\*(Aq); | |
682 \& | |
683 \& $NegateMethodResult = 1; | |
684 \& @NonHydrogenAtoms = $Molecule\->GetAtoms(\*(AqIsHydrogenAtom\*(Aq, | |
685 \& $NegateMethodResult); | |
686 \& | |
687 \& $AtomsCount = $Molecule\->GetAtoms(); | |
688 .Ve | |
689 .Sp | |
690 Returns an array of \fIAtoms\fR in a \fIMolecule\fR. In scalar context, it returns number of atoms. | |
691 Additionally, \fBAtoms\fR array can be filtered by any user specifiable valid \fBAtom\fR class method | |
692 and the result of the \fBAtom\fR class method used to filter the atoms can also be negated by | |
693 an optional negate results flag as third parameter. | |
694 .IP "\fBGetBonds\fR" 4 | |
695 .IX Item "GetBonds" | |
696 .Vb 2 | |
697 \& @Bonds = $Molecule\->GetBonds(); | |
698 \& $BondsCount = $Molecule\->GetBonds(); | |
699 .Ve | |
700 .Sp | |
701 Returns an array of \fIBonds\fR in a \fIMolecule\fR. In scalar context, it returns number of bonds. | |
702 .IP "\fBGetCharge\fR" 4 | |
703 .IX Item "GetCharge" | |
704 .Vb 1 | |
705 \& $Charge = $Molecule\->GetCharge(); | |
706 .Ve | |
707 .Sp | |
708 Returns net charge on a \fIMolecule\fR using one of the following two methods: explicitly | |
709 set \fBCharge\fR property or sum of partial atomic charges on each atom. | |
710 .IP "\fBGetConnectedComponents\fR" 4 | |
711 .IX Item "GetConnectedComponents" | |
712 .Vb 1 | |
713 \& @ConnectedComponents = $Molecule\->GetConnectedComponents(); | |
714 .Ve | |
715 .Sp | |
716 Returns a reference to an array containing \fIMolecule\fR objects corresponding | |
717 to connected components sorted in decreasing order of component size in a \fIMolecule\fR. | |
718 .IP "\fBGetConnectedComponentsAtoms\fR" 4 | |
719 .IX Item "GetConnectedComponentsAtoms" | |
720 .Vb 2 | |
721 \& @ConnectedComponentsAtoms = | |
722 \& $Molecule\->GetConnectedComponentsAtoms(); | |
723 .Ve | |
724 .Sp | |
725 Returns an array containing references to arrays with \fIAtom\fR objects corresponding to | |
726 atoms of connected components sorted in order of component decreasing size in a | |
727 \&\fIMolecule\fR. | |
728 .IP "\fBGetDimensionality\fR" 4 | |
729 .IX Item "GetDimensionality" | |
730 .Vb 1 | |
731 \& $Dimensionality = $Molecule\->GetDimensionality(); | |
732 .Ve | |
733 .Sp | |
734 Returns \fIDimensionality\fR of a \fIMolecule\fR corresponding to explicitly set | |
735 \&\fIDimensionality\fR property value or by processing atomic. | |
736 .Sp | |
737 The \fIDimensionality\fR value from atomic coordinates is calculated as follows: | |
738 .Sp | |
739 .Vb 4 | |
740 \& 3D \- Three dimensional: One of X, Y or Z coordinate is non\-zero | |
741 \& 2D \- Two dimensional: One of X or Y coordinate is non\-zero; All Z | |
742 \& coordinates are zero | |
743 \& 0D \- Zero dimensional: All atomic coordinates are zero | |
744 .Ve | |
745 .IP "\fBGetElementalComposition\fR" 4 | |
746 .IX Item "GetElementalComposition" | |
747 .Vb 2 | |
748 \& ($ElementsRef, $CompositionRef) = | |
749 \& $Molecule\->GetElementalComposition([$IncludeMissingHydrogens]); | |
750 .Ve | |
751 .Sp | |
752 Calculates elemental composition and returns references to arrays containing elements | |
753 and their percent composition in a \fIMolecule\fR. By default, missing hydrogens are included | |
754 during the calculation. | |
755 .IP "\fBGetElementsAndNonElements\fR" 4 | |
756 .IX Item "GetElementsAndNonElements" | |
757 .Vb 2 | |
758 \& ($ElementsRef, $NonElementsRef) = | |
759 \& $Molecule\->GetElementsAndNonElements([$IncludeMissingHydrogens]); | |
760 .Ve | |
761 .Sp | |
762 Counts elements and non-elements in a \fIMolecule\fR and returns references to hashes | |
763 containing element and non-element as hash keys with values corresponding to their | |
764 count. By default, missing hydrogens are not added to the element hash. | |
765 .IP "\fBGetExactMass\fR" 4 | |
766 .IX Item "GetExactMass" | |
767 .Vb 1 | |
768 \& $ExactMass = $Molecule\->GetExactMass(); | |
769 .Ve | |
770 .Sp | |
771 Returns exact mass of a \fIMolecule\fR corresponding to sum of exact masses of all | |
772 the atoms. | |
773 .IP "\fBGetFormalCharge\fR" 4 | |
774 .IX Item "GetFormalCharge" | |
775 .Vb 1 | |
776 \& $FormalCharge = $Molecule\->GetFormalCharge(); | |
777 .Ve | |
778 .Sp | |
779 Returns net formal charge on a \fIMolecule\fR using one of the following two methods: explicitly | |
780 set \fBFormalCharge\fR property or sum of formal charges on each atom. | |
781 .Sp | |
782 \&\fBFormalCharge\fR is different from \fBCharge\fR property of the molecule which corresponds to | |
783 sum of partial atomic charges explicitly set for each atom using a specific methodology. | |
784 .IP "\fBGetFreeRadicalElectrons\fR" 4 | |
785 .IX Item "GetFreeRadicalElectrons" | |
786 .Vb 1 | |
787 \& $FreeRadicalElectrons = $Molecule\->GetFreeRadicalElectrons(); | |
788 .Ve | |
789 .Sp | |
790 Returns total number of free radical electrons available in a \fIMolecule\fR using one of the | |
791 following two methods: explicitly set \fBFreeRadicalElectrons\fR property or sum of available | |
792 free radical electrons on each atom. | |
793 .IP "\fBGetFusedAndNonFusedRings\fR" 4 | |
794 .IX Item "GetFusedAndNonFusedRings" | |
795 .Vb 2 | |
796 \& ($FusedRingSetRef, $NonFusedRingsRef) = | |
797 \& $Molecule\->GetFusedAndNonFusedRings(); | |
798 .Ve | |
799 .Sp | |
800 Returns references to array of fused ring sets and non-fused rings in a \fIMolecule\fR. Fused ring sets | |
801 array reference contains refernces to arrays of rings corresponding to ring \fIAtom\fR objects; | |
802 Non-fused rings array reference contains references to arrays of ring \fIAtom\fR objects. | |
803 .IP "\fBGetLargestConnectedComponent\fR" 4 | |
804 .IX Item "GetLargestConnectedComponent" | |
805 .Vb 1 | |
806 \& $ComponentMolecule = $Molecule\->GetLargestConnectedComponent(); | |
807 .Ve | |
808 .Sp | |
809 Returns a reference to \fBMolecule\fR object corresponding to a largest connected component | |
810 in a \fIMolecule\fR. | |
811 .IP "\fBGetLargestConnectedComponentAtoms\fR" 4 | |
812 .IX Item "GetLargestConnectedComponentAtoms" | |
813 .Vb 1 | |
814 \& @ComponentAtoms = $Molecule\->GetLargestConnectedComponentAtoms(); | |
815 .Ve | |
816 .Sp | |
817 Returns a reference to an array of \fBAtom\fR objects corresponding to a largest connected | |
818 component in a \fIMolecule\fR. | |
819 .IP "\fBGetLargestRing\fR" 4 | |
820 .IX Item "GetLargestRing" | |
821 .Vb 1 | |
822 \& @RingAtoms = $Molecule\->GetLargestRing(); | |
823 .Ve | |
824 .Sp | |
825 Returns an array of \fIAtoms\fR objects corresponding to a largest ring in a \fIMolecule\fR. | |
826 .IP "\fBGetMolecularFormula\fR" 4 | |
827 .IX Item "GetMolecularFormula" | |
828 .Vb 3 | |
829 \& $FormulaString = $Molecule\->GetMolecularFormula( | |
830 \& [$IncludeMissingHydrogens, | |
831 \& $IncludeNonElements]); | |
832 .Ve | |
833 .Sp | |
834 Returns molecular formula of a \fIMolecule\fR by collecting information about all atoms in | |
835 the molecule and composing the formula using Hills ordering system: | |
836 .Sp | |
837 .Vb 4 | |
838 \& o C shows up first and H follows assuming C is present. | |
839 \& o All other standard elements are sorted alphanumerically. | |
840 \& o All other non\-stanard atom symbols are also sorted | |
841 \& alphanumerically and follow standard elements. | |
842 .Ve | |
843 .Sp | |
844 Notes: | |
845 .Sp | |
846 .Vb 4 | |
847 \& o By default, missing hydrogens and nonelements are also included. | |
848 \& o Elements for disconnected fragments are combined into the same | |
849 \& formula. | |
850 \& o Formal charge is also used during compoisiton of molecular formula. | |
851 .Ve | |
852 .IP "\fBGetMolecularWeight\fR" 4 | |
853 .IX Item "GetMolecularWeight" | |
854 .Vb 1 | |
855 \& $MolWeight = $Molecule\->GetMolecularWeight(); | |
856 .Ve | |
857 .Sp | |
858 Returns molecular weight of a \fIMolecule\fR corresponding to sum of atomic weights of all | |
859 the atoms. | |
860 .IP "\fBGetNumOfAromaticRings\fR" 4 | |
861 .IX Item "GetNumOfAromaticRings" | |
862 .Vb 1 | |
863 \& $NumOfAromaticRings = $Molecule\->GetNumOfAromaticRings(); | |
864 .Ve | |
865 .Sp | |
866 Returns number of aromatic rings in a \fIMolecule\fR. | |
867 .IP "\fBGetNumOfAtoms\fR" 4 | |
868 .IX Item "GetNumOfAtoms" | |
869 .Vb 1 | |
870 \& $NumOfAtoms = $Molecule\->GetNumOfAtoms(); | |
871 .Ve | |
872 .Sp | |
873 Returns number of atoms in a \fIMolecule\fR. | |
874 .IP "\fBGetNumOfBonds\fR" 4 | |
875 .IX Item "GetNumOfBonds" | |
876 .Vb 1 | |
877 \& $NumOfBonds = $Molecule\->GetNumOfBonds(); | |
878 .Ve | |
879 .Sp | |
880 Returns number of bonds in a \fIMolecule\fR. | |
881 .IP "\fBGetNumOfConnectedComponents\fR" 4 | |
882 .IX Item "GetNumOfConnectedComponents" | |
883 .Vb 1 | |
884 \& $NumOfComponents = $Molecule\->GetNumOfConnectedComponents(); | |
885 .Ve | |
886 .Sp | |
887 Returns number of connected components in a \fIMolecule\fR. | |
888 .IP "\fBGetNumOfElementsAndNonElements\fR" 4 | |
889 .IX Item "GetNumOfElementsAndNonElements" | |
890 .Vb 4 | |
891 \& ($NumOfElements, $NumOfNonElements) = $Molecule\-> | |
892 \& GetNumOfElementsAndNonElements(); | |
893 \& ($NumOfElements, $NumOfNonElements) = $Molecule\-> | |
894 \& GetNumOfElementsAndNonElements($IncludeMissingHydrogens); | |
895 .Ve | |
896 .Sp | |
897 Returns number of elements and non-elements in a \fIMolecule\fR. By default, missing | |
898 hydrogens are not added to element count. | |
899 .IP "\fBGetNumOfHeavyAtoms\fR" 4 | |
900 .IX Item "GetNumOfHeavyAtoms" | |
901 .Vb 1 | |
902 \& $NumOfHeavyAtoms = $Molecule\->GetNumOfHeavyAtoms(); | |
903 .Ve | |
904 .Sp | |
905 Returns number of heavy atoms, non-hydrogen atoms, in a \fIMolecule\fR. | |
906 .IP "\fBGetNumOfHydrogenAtoms\fR" 4 | |
907 .IX Item "GetNumOfHydrogenAtoms" | |
908 .Vb 1 | |
909 \& $NumOfHydrogenAtoms = $Molecule\->GetNumOfHydrogenAtoms(); | |
910 .Ve | |
911 .Sp | |
912 Returns number of hydrogen atoms in a \fIMolecule\fR. | |
913 .IP "\fBGetNumOfMissingHydrogenAtoms\fR" 4 | |
914 .IX Item "GetNumOfMissingHydrogenAtoms" | |
915 .Vb 1 | |
916 \& $NumOfMissingHydrogenAtoms = $Molecule\->GetNumOfMissingHydrogenAtoms(); | |
917 .Ve | |
918 .Sp | |
919 Returns number of hydrogen atoms in a \fIMolecule\fR. | |
920 .IP "\fBGetNumOfNonHydrogenAtoms\fR" 4 | |
921 .IX Item "GetNumOfNonHydrogenAtoms" | |
922 .Vb 1 | |
923 \& $NumOfNonHydrogenAtoms = $Molecule\->GetNumOfNonHydrogenAtoms(); | |
924 .Ve | |
925 .Sp | |
926 Returns number of non-hydrogen atoms in a \fIMolecule\fR. | |
927 .IP "\fBGetNumOfRings\fR" 4 | |
928 .IX Item "GetNumOfRings" | |
929 .Vb 1 | |
930 \& $RingCount = $Molecule\->GetNumOfRings(); | |
931 .Ve | |
932 .Sp | |
933 Returns number of rings in a \fIMolecule\fR. | |
934 .IP "\fBGetNumOfRingsWithEvenSize\fR" 4 | |
935 .IX Item "GetNumOfRingsWithEvenSize" | |
936 .Vb 1 | |
937 \& $RingCount = $Molecule\->GetNumOfRingsWithEvenSize(); | |
938 .Ve | |
939 .Sp | |
940 Returns number of rings with even size in a \fIMolecule\fR. | |
941 .IP "\fBGetNumOfRingsWithOddSize\fR" 4 | |
942 .IX Item "GetNumOfRingsWithOddSize" | |
943 .Vb 1 | |
944 \& $RingCount = $Molecule\->GetNumOfRingsWithOddSize(); | |
945 .Ve | |
946 .Sp | |
947 Returns number of rings with odd size in a \fIMolecule\fR. | |
948 .IP "\fBGetNumOfRingsWithSize\fR" 4 | |
949 .IX Item "GetNumOfRingsWithSize" | |
950 .Vb 1 | |
951 \& $RingCount = $Molecule\->GetNumOfRingsWithSize($Size); | |
952 .Ve | |
953 .Sp | |
954 Returns number of rings with \fISize\fR in a \fIMolecule\fR. | |
955 .IP "\fBGetNumOfRingsWithSizeGreaterThan\fR" 4 | |
956 .IX Item "GetNumOfRingsWithSizeGreaterThan" | |
957 .Vb 1 | |
958 \& $RingCount = $Molecule\->GetNumOfRingsWithSizeGreaterThan($Size); | |
959 .Ve | |
960 .Sp | |
961 Returns number of rings with size greater than \fISize\fR in a \fIMolecule\fR. | |
962 .IP "\fBGetNumOfRingsWithSizeLessThan\fR" 4 | |
963 .IX Item "GetNumOfRingsWithSizeLessThan" | |
964 .Vb 1 | |
965 \& $RingCount = $Molecule\->GetNumOfRingsWithSizeLessThan($Size); | |
966 .Ve | |
967 .Sp | |
968 Returns number of rings with size less than \fISize\fR in a \fIMolecule\fR. | |
969 .IP "\fBGetRingBonds\fR" 4 | |
970 .IX Item "GetRingBonds" | |
971 .Vb 1 | |
972 \& @RingBonds = $Molecule\->GetRingBonds(@RingAtoms); | |
973 .Ve | |
974 .Sp | |
975 Returns an array of ring \fBBond\fR objects correponding to an array of ring \fIAtoms\fR in a | |
976 \&\fIMolecule\fR. | |
977 .IP "\fBGetRingBondsFromRings\fR" 4 | |
978 .IX Item "GetRingBondsFromRings" | |
979 .Vb 1 | |
980 \& @RingBondsSets = $Molecule\->GetRingBondsFromRings(@RingAtomsSets); | |
981 .Ve | |
982 .Sp | |
983 Returns an array containing references to arrays of ring \fBBond\fR objects for rings specified | |
984 in an array of references to ring \fIAtom\fR objects. | |
985 .IP "\fBGetRings\fR" 4 | |
986 .IX Item "GetRings" | |
987 .Vb 1 | |
988 \& @Rings = $Molecule\->GetRings(); | |
989 .Ve | |
990 .Sp | |
991 Returns rings as an array containing references to arrays of ring \fIAtom\fR objects in a \fIMolecule\fR. | |
992 .IP "\fBGetRingsWithEvenSize\fR" 4 | |
993 .IX Item "GetRingsWithEvenSize" | |
994 .Vb 1 | |
995 \& @Rings = $Molecule\->GetRingsWithEvenSize(); | |
996 .Ve | |
997 .Sp | |
998 Returns even size rings as an array containing references to arrays of ring \fIAtom\fR objects in | |
999 a \fIMolecule\fR. | |
1000 .IP "\fBGetRingsWithOddSize\fR" 4 | |
1001 .IX Item "GetRingsWithOddSize" | |
1002 .Vb 1 | |
1003 \& @Rings = $Molecule\->GetRingsWithOddSize(); | |
1004 .Ve | |
1005 .Sp | |
1006 Returns odd size rings as an array containing references to arrays of ring \fIAtom\fR objects in | |
1007 a \fIMolecule\fR. | |
1008 .IP "\fBGetRingsWithSize\fR" 4 | |
1009 .IX Item "GetRingsWithSize" | |
1010 .Vb 1 | |
1011 \& @Rings = $Molecule\->GetRingsWithSize($Size); | |
1012 .Ve | |
1013 .Sp | |
1014 Returns rings with \fISize\fR as an array containing references to arrays of ring \fIAtom\fR objects in | |
1015 a \fIMolecule\fR. | |
1016 .IP "\fBGetRingsWithSizeGreaterThan\fR" 4 | |
1017 .IX Item "GetRingsWithSizeGreaterThan" | |
1018 .Vb 1 | |
1019 \& @Rings = $Molecule\->GetRingsWithSizeGreaterThan($Size); | |
1020 .Ve | |
1021 .Sp | |
1022 Returns rings with size greater than \fISize\fR as an array containing references to arrays of | |
1023 ring \fIAtom\fR objects in a \fIMolecule\fR. | |
1024 .IP "\fBGetRingsWithSizeLessThan\fR" 4 | |
1025 .IX Item "GetRingsWithSizeLessThan" | |
1026 .Vb 1 | |
1027 \& @Rings = $Molecule\->GetRingsWithSizeLessThan($Size); | |
1028 .Ve | |
1029 .Sp | |
1030 Returns rings with size less than \fISize\fR as an array containing references to arrays of | |
1031 ring \fIAtom\fR objects in a \fIMolecule\fR. | |
1032 .IP "\fBGetSizeOfLargestRing\fR" 4 | |
1033 .IX Item "GetSizeOfLargestRing" | |
1034 .Vb 1 | |
1035 \& $Size = $Molecule\->GetSizeOfLargestRing(); | |
1036 .Ve | |
1037 .Sp | |
1038 Returns size of the largest ring in a \fIMolecule\fR. | |
1039 .IP "\fBGetSizeOfSmallestRing\fR" 4 | |
1040 .IX Item "GetSizeOfSmallestRing" | |
1041 .Vb 1 | |
1042 \& $Size = $Molecule\->GetSizeOfSmallestRing(); | |
1043 .Ve | |
1044 .Sp | |
1045 Returns size of the smalles ring in a \fIMolecule\fR. | |
1046 .IP "\fBGetSmallestRing\fR" 4 | |
1047 .IX Item "GetSmallestRing" | |
1048 .Vb 1 | |
1049 \& @RingAtoms = $Molecule\->GetSmallestRing(); | |
1050 .Ve | |
1051 .Sp | |
1052 Returns an array containing \fIAtom\fR objects corresponding to the smallest ring in | |
1053 a \fIMolecule\fR. | |
1054 .IP "\fBGetSpinMultiplicity\fR" 4 | |
1055 .IX Item "GetSpinMultiplicity" | |
1056 .Vb 1 | |
1057 \& $SpinMultiplicity = $Molecule\->GetSpinMultiplicity(); | |
1058 .Ve | |
1059 .Sp | |
1060 Returns net spin multiplicity of a \fIMolecule\fR using one of the following two methods: explicitly | |
1061 set \fBSpinMultiplicity\fR property or sum of spin multiplicity on each atom. | |
1062 .IP "\fBGetSupportedAromaticityModels\fR" 4 | |
1063 .IX Item "GetSupportedAromaticityModels" | |
1064 .Vb 1 | |
1065 \& @SupportedModels = $Molecule\->GetSupportedAromaticityModels(); | |
1066 .Ve | |
1067 .Sp | |
1068 Returns an array containing a list of supported aromaticity models. | |
1069 .IP "\fBGetValenceModel\fR" 4 | |
1070 .IX Item "GetValenceModel" | |
1071 .Vb 1 | |
1072 \& $ValenceModel = $Molecule\->GetValenceModel(); | |
1073 .Ve | |
1074 .Sp | |
1075 Returns valence model for \fIMolecule\fR using one of the following two methods: explicitly | |
1076 set \fBValenceModel\fR property or defaul value of \fIInternalValenceModel\fR. | |
1077 .IP "\fBGetTopologicallySortedAtoms\fR" 4 | |
1078 .IX Item "GetTopologicallySortedAtoms" | |
1079 .Vb 1 | |
1080 \& @SortedAtoms = $Molecule\->GetTopologicallySortedAtoms([$StartAtom]); | |
1081 .Ve | |
1082 .Sp | |
1083 Returns an array of topologically sorted \fIAtom\fR objects starting from \fIStartAtom\fR or | |
1084 an arbitrary atom in a \fIMolecule\fR. | |
1085 .IP "\fBHasAromaticRings\fR" 4 | |
1086 .IX Item "HasAromaticRings" | |
1087 .Vb 1 | |
1088 \& $Status = $Molecule\->HasAromaticRings(); | |
1089 .Ve | |
1090 .Sp | |
1091 Returns 1 or 0 based on whether any aromatic ring is present in a \fIMolecule\fR. | |
1092 .IP "\fBHasAromaticAtomsInRings\fR" 4 | |
1093 .IX Item "HasAromaticAtomsInRings" | |
1094 .Vb 1 | |
1095 \& $Status = $Molecule\->HasAromaticAtomsInRings(); | |
1096 .Ve | |
1097 .Sp | |
1098 Returns 1 or 0 based on whether any aromatic ring atom is present in a \fIMolecule\fR. | |
1099 .IP "\fBHasAromaticAtomsNotInRings\fR" 4 | |
1100 .IX Item "HasAromaticAtomsNotInRings" | |
1101 .Vb 1 | |
1102 \& $Status = $Molecule\->HasAromaticAtomsNotInRings(); | |
1103 .Ve | |
1104 .Sp | |
1105 Returns 1 or 0 based on whether any non-ring atom is marked aromatic in a \fIMolecule\fR. | |
1106 .IP "\fBHasAtom\fR" 4 | |
1107 .IX Item "HasAtom" | |
1108 .Vb 1 | |
1109 \& $Status = $Molecule\->HasAtom($Atom); | |
1110 .Ve | |
1111 .Sp | |
1112 Returns 1 or 0 based on whether \fIAtom\fR is present in a \fIMolecule\fR. | |
1113 .IP "\fBHasBond\fR" 4 | |
1114 .IX Item "HasBond" | |
1115 .Vb 1 | |
1116 \& $Status = $Molecule\->HasBond($Bond); | |
1117 .Ve | |
1118 .Sp | |
1119 Returns 1 or 0 based on whether \fIBond\fR is present in a \fIMolecule\fR. | |
1120 .IP "\fBHasFusedRings\fR" 4 | |
1121 .IX Item "HasFusedRings" | |
1122 .Vb 1 | |
1123 \& $Status = $Molecule\->HasFusedRings(); | |
1124 .Ve | |
1125 .Sp | |
1126 Returns 1 or 0 based on whether any fused rings set is present in a \fIMolecule\fR. | |
1127 .IP "\fBHasNoRings\fR" 4 | |
1128 .IX Item "HasNoRings" | |
1129 .Vb 1 | |
1130 \& $Status = $Molecule\->HasNoRings(); | |
1131 .Ve | |
1132 .Sp | |
1133 Returns 0 or 1 based on whether any ring is present in a \fIMolecule\fR. | |
1134 .IP "\fBHasOnlyOneRing\fR" 4 | |
1135 .IX Item "HasOnlyOneRing" | |
1136 .Vb 1 | |
1137 \& $Status = $Molecule\->HasOnlyOneRing(); | |
1138 .Ve | |
1139 .Sp | |
1140 Returns 1 or 0 based on whether only one ring is present in a \fIMolecule\fR. | |
1141 .IP "\fBHasRings\fR" 4 | |
1142 .IX Item "HasRings" | |
1143 .Vb 1 | |
1144 \& $Status = $Molecule\->HasRings(); | |
1145 .Ve | |
1146 .Sp | |
1147 Returns 1 or 0 based on whether rings are present in a \fIMolecule\fR. | |
1148 .IP "\fBIsAromatic\fR" 4 | |
1149 .IX Item "IsAromatic" | |
1150 .Vb 1 | |
1151 \& $Status = $Molecule\->IsAromatic(); | |
1152 .Ve | |
1153 .Sp | |
1154 Returns 1 or 0 based on whether \fIMolecule\fR is aromatic. | |
1155 .IP "\fBIsMolecule\fR" 4 | |
1156 .IX Item "IsMolecule" | |
1157 .Vb 1 | |
1158 \& $Status = Molecule::IsMolecule(); | |
1159 .Ve | |
1160 .Sp | |
1161 Returns 1 or 0 based on whether \fIObject\fR is a \fBMolecule\fR object. | |
1162 .IP "\fBIsRingAromatic\fR" 4 | |
1163 .IX Item "IsRingAromatic" | |
1164 .Vb 1 | |
1165 \& $Status = $Molecule\->IsRingAromatic(@RingAtoms); | |
1166 .Ve | |
1167 .Sp | |
1168 Returns 1 or 0 based on whether all \fIRingAtoms\fR are aromatic. | |
1169 .IP "\fBIsSupportedAromaticityModel\fR" 4 | |
1170 .IX Item "IsSupportedAromaticityModel" | |
1171 .Vb 2 | |
1172 \& $Status = $Molecule\->IsSupportedAromaticityModel($AromaticityModel); | |
1173 \& $Status = Molecule::IsSupportedAromaticityModel($AromaticityModel); | |
1174 .Ve | |
1175 .Sp | |
1176 Returns 1 or 0 based on whether specified \fIAromaticityModel\fR is supported. | |
1177 .IP "\fBIsTwoDimensional\fR" 4 | |
1178 .IX Item "IsTwoDimensional" | |
1179 .Vb 1 | |
1180 \& $Status = $Molecule\->IsTwoDimensional(); | |
1181 .Ve | |
1182 .Sp | |
1183 Returns 1 or 0 based on whether any atom in \fIMolecule\fR has a non-zero value | |
1184 for X or Y coordinate and all atoms have zero value for Z coordinates. | |
1185 .IP "\fBIsThreeDimensional\fR" 4 | |
1186 .IX Item "IsThreeDimensional" | |
1187 .Vb 1 | |
1188 \& $Status = $Molecule\->IsThreeDimensional(); | |
1189 .Ve | |
1190 .Sp | |
1191 Returns 1 or 0 based on whether any atom in \fIMolecule\fR has a non-zero value | |
1192 for Z coordinate. | |
1193 .IP "\fBKeepLargestComponent\fR" 4 | |
1194 .IX Item "KeepLargestComponent" | |
1195 .Vb 1 | |
1196 \& $Molecule\->KeepLargestComponent(); | |
1197 .Ve | |
1198 .Sp | |
1199 Deletes atoms corresponding to all other connected components Except for the largest | |
1200 connected component in a \fIMolecule\fR and returns \fIMolecule\fR. | |
1201 .IP "\fBKekulizeAromaticAtoms\fR" 4 | |
1202 .IX Item "KekulizeAromaticAtoms" | |
1203 .Vb 1 | |
1204 \& $Status = $Molecule\->KekulizeAromaticAtoms(); | |
1205 .Ve | |
1206 .Sp | |
1207 Kekulize marked ring and non-ring aromatic atoms in a molecule and return 1 or 1 based | |
1208 on whether the kekulization succeeded. | |
1209 .IP "\fBNewAtom\fR" 4 | |
1210 .IX Item "NewAtom" | |
1211 .Vb 1 | |
1212 \& $NewAtom = $Molecule\->NewAtom(%AtomPropertyNamesAndValues); | |
1213 .Ve | |
1214 .Sp | |
1215 Creates a new atom using \fIAtomPropertyNamesAndValues\fR, add its to \fIMolecule\fR, and returns | |
1216 new \fBAtom\fR object. | |
1217 .IP "\fBNewBond\fR" 4 | |
1218 .IX Item "NewBond" | |
1219 .Vb 1 | |
1220 \& $NewBond = $Molecule\->NewBond(%BondPropertyNamesAndValues); | |
1221 .Ve | |
1222 .Sp | |
1223 Creates a new bond using \fIAtomPropertyNamesAndValues\fR, add its to \fIMolecule\fR, and returns | |
1224 new \fBBond\fR object. | |
1225 .IP "\fBSetActiveRings\fR" 4 | |
1226 .IX Item "SetActiveRings" | |
1227 .Vb 1 | |
1228 \& $Molecule\->SetActiveRings($RingsType); | |
1229 .Ve | |
1230 .Sp | |
1231 Sets up type of detected ring sets to use during all ring related methods and returns \fIMolecule\fR. | |
1232 Possible \fIRingType\fR values: \fIIndependent or All\fR. By default, \fIIndependent\fR ring set is used | |
1233 during all ring methods. | |
1234 .IP "\fBSetAromaticityModel\fR" 4 | |
1235 .IX Item "SetAromaticityModel" | |
1236 .Vb 1 | |
1237 \& $Molecule = $Molecule\->SetAromaticityModel($AromaticityModel); | |
1238 .Ve | |
1239 .Sp | |
1240 Sets up \fIAromaticityModel\fR property value for \fIMolecule\fR and retrurns \fIMolecule\fR. | |
1241 .IP "\fBSetValenceModel\fR" 4 | |
1242 .IX Item "SetValenceModel" | |
1243 .Vb 1 | |
1244 \& $Molecule = $Molecule\->SetValenceModel(ValenceModel); | |
1245 .Ve | |
1246 .Sp | |
1247 Sets up \fIValenceModel\fR property value for \fIMolecule\fR and retrurns \fIMolecule\fR. | |
1248 .IP "\fBStringifyMolecule\fR" 4 | |
1249 .IX Item "StringifyMolecule" | |
1250 .Vb 1 | |
1251 \& $MoleculeString = $Molecule\->StringifyMolecule(); | |
1252 .Ve | |
1253 .Sp | |
1254 Returns a string containing information about \fIMolecule\fR object | |
1255 .SH "AUTHOR" | |
1256 .IX Header "AUTHOR" | |
1257 Manish Sud <msud@san.rr.com> | |
1258 .SH "SEE ALSO" | |
1259 .IX Header "SEE ALSO" | |
1260 Atom.pm, Bond.pm, MoleculeFileIO.pm, MolecularFormula.pm | |
1261 .SH "COPYRIGHT" | |
1262 .IX Header "COPYRIGHT" | |
1263 Copyright (C) 2015 Manish Sud. All rights reserved. | |
1264 .PP | |
1265 This file is part of MayaChemTools. | |
1266 .PP | |
1267 MayaChemTools is free software; you can redistribute it and/or modify it under | |
1268 the terms of the \s-1GNU\s0 Lesser General Public License as published by the Free | |
1269 Software Foundation; either version 3 of the License, or (at your option) | |
1270 any later version. |