0
|
1 NAME
|
|
2 Bond
|
|
3
|
|
4 SYNOPSIS
|
|
5 use Bond;
|
|
6
|
|
7 use Bond qw(:all);
|
|
8
|
|
9 DESCRIPTION
|
|
10 Bond class provides the following methods:
|
|
11
|
|
12 new, Copy, DeleteBond, GetAtoms, GetBondBeginAtom, GetBondEndAtom,
|
|
13 GetBondFromAtom, GetBondToAtom, GetBondedAtom, GetCommonAtom,
|
|
14 GetLargestRing, GetNumOfRings, GetNumOfRingsWithEvenSize,
|
|
15 GetNumOfRingsWithOddSize, GetNumOfRingsWithSize,
|
|
16 GetNumOfRingsWithSizeGreaterThan, GetNumOfRingsWithSizeLessThan,
|
|
17 GetRings, GetRingsWithEvenSize, GetRingsWithOddSize, GetRingsWithSize,
|
|
18 GetRingsWithSizeGreaterThan, GetRingsWithSizeLessThan,
|
|
19 GetSizeOfLargestRing, GetSizeOfSmallestRing, GetSmallestRing,
|
|
20 IsAromatic, IsBondStereochemistrySpecified, IsBondTypeSpecified, IsCis,
|
|
21 IsCisOrTrans, IsCoordinate, IsDative, IsDouble, IsDown, IsDownward,
|
|
22 IsHash, IsInRing, IsInRingOfSize, IsIonic, IsNotInRing, IsOnlyInOneRing,
|
|
23 IsQuadruple, IsQuintuple, IsSextuple, IsSingle, IsTautomeric, IsTrans,
|
|
24 IsTriple, IsUp, IsUpOrDown, IsUpward, IsWedge, IsWedgeOrHash, SetAtoms,
|
|
25 SetBondOrder, SetBondStereochemistry, SetBondType, StringifyBond,
|
|
26 SwitchBondFromAndToAtoms
|
|
27
|
|
28 Bond class is derived from ObjectProperty base class which provides
|
|
29 methods not explicitly defined in Atom or ObjectProperty class using
|
|
30 Perl's AUTOLOAD functionality. These methods are generated on-the-fly
|
|
31 for a specified object property:
|
|
32
|
|
33 Set<PropertyName>(<PropertyValue>);
|
|
34 $PropertyValue = Get<PropertyName>();
|
|
35 Delete<PropertyName>();
|
|
36
|
|
37 METHODS
|
|
38 new
|
|
39 $NewBond = new Bond([%PropertyNameAndValues]);
|
|
40
|
|
41 Using specified *Bond* property names and values hash, new method
|
|
42 creates a new object and returns a reference to newly created Bond
|
|
43 object. By default, following properties are initialized:
|
|
44
|
|
45 ID = SequentialObjectID
|
|
46 @Atoms = ();
|
|
47 BondType = ""
|
|
48 BondOrder = ""
|
|
49
|
|
50 Except for *ID* property, all other default properties and other
|
|
51 additional properties can be set during invocation of this method.
|
|
52
|
|
53 Examples:
|
|
54
|
|
55 $Bond = new Bond();
|
|
56 $DoubleBond = new Bond('Atoms' => [$Atom2, $Atom1],
|
|
57 'BondOrder' => 2);
|
|
58
|
|
59 Copy
|
|
60 $BondCopy = $Bond->Copy();
|
|
61
|
|
62 Copy *Bond* and its associated data using Storable::dclone and
|
|
63 return a new Bond object.
|
|
64
|
|
65 DeleteBond
|
|
66 $Bond->DeleteBond();
|
|
67
|
|
68 Delete *Bond* between atoms in from a molecule.
|
|
69
|
|
70 GetAtoms
|
|
71 @BondedAtoms = $Bond->GetAtoms();
|
|
72
|
|
73 Returns an array containing *Atoms* invoved in *Bond*.
|
|
74
|
|
75 GetBondedAtom
|
|
76 $BondedAtom = $Bond->GetBondedAtom($Atom);
|
|
77
|
|
78 Returns BondedAtom bonded to *Atom* in *Bond*.
|
|
79
|
|
80 GetBondBeginAtom
|
|
81 $BeginAtom = $Bond->GetBondBeginAtom();
|
|
82
|
|
83 Returns BeginAtom corresponding to bond starting atom in *Bond*.
|
|
84
|
|
85 GetBondEndAtom
|
|
86 $EndAtom = $Bond->GetBondEndAtom();
|
|
87
|
|
88 Returns EndAtom corresponding to bond ending atom in *Bond*.
|
|
89
|
|
90 GetBondFromAtom
|
|
91 $FromAtom = $Bond->GetBondFromAtom();
|
|
92
|
|
93 Returns FromAtom corresponding to bond starting atom in *Bond*.
|
|
94
|
|
95 GetBondToAtom
|
|
96 $ToAotm = $Bond->GetBondToAtom();
|
|
97
|
|
98 Returns ToAtom corresponding to bond ending atom in *Bond*.
|
|
99
|
|
100 GetCommonAtom
|
|
101 $CommonAtom = $Bond->GetCommonAtom($OtherBond);
|
|
102
|
|
103 Returns Atom common to both *Bond* and *$OtherBond*.
|
|
104
|
|
105 GetLargestRing
|
|
106 @RingAtoms = $Bond->GetLargestRing();
|
|
107
|
|
108 Returns an array of ring *Atoms* corresponding to the largest ring
|
|
109 containing *Bond*. in a molecule
|
|
110
|
|
111 GetNumOfRings
|
|
112 $NumOfRings = $Bond->GetNumOfRings();
|
|
113
|
|
114 Returns number of rings containing *Bond* in a molecule.
|
|
115
|
|
116 GetNumOfRingsWithEvenSize
|
|
117 $NumOfRings = $Bond->GetNumOfRingsWithEvenSize();
|
|
118
|
|
119 Returns number of rings with even size containing *Bond* in a
|
|
120 molecule.
|
|
121
|
|
122 GetNumOfRingsWithOddSize
|
|
123 $NumOfRings = $Bond->GetNumOfRingsWithOddSize();
|
|
124
|
|
125 Returns number of rings with odd size containing *Bond* in a
|
|
126 molecule.
|
|
127
|
|
128 GetNumOfRingsWithSize
|
|
129 $NumOfRings = $Bond->GetNumOfRingsWithSize($RingSize);
|
|
130
|
|
131 Returns number of rings with specific *RingSize* containing *Bond*
|
|
132 in a molecule.
|
|
133
|
|
134 GetNumOfRingsWithSizeGreaterThan
|
|
135 $NumOfRings = $Bond->GetNumOfRingsWithSizeGreaterThan($RingSize);
|
|
136
|
|
137 Returns number of rings with size greater than specific *RingSize*
|
|
138 containing *Bond* in a molecule.
|
|
139
|
|
140 GetNumOfRingsWithSizeLessThan
|
|
141 $NumOfRings = $Bond->GetNumOfRingsWithSizeLessThan($RingSize);
|
|
142
|
|
143 Returns number of rings with size less than specific *RingSize*
|
|
144 containing *Bond* in a molecule.
|
|
145
|
|
146 GetRings
|
|
147 @Rings = $Bond->GetRings();
|
|
148
|
|
149 Returns an array of references to arrays containing ring atoms
|
|
150 corressponding to all rings containing *Bond* in a molecule.
|
|
151
|
|
152 GetRingsWithEvenSize
|
|
153 @Rings = $Bond->GetRingsWithEvenSize();
|
|
154
|
|
155 Returns an array of references to arrays containing ring atoms
|
|
156 corressponding to all rings with even size containing *Bond* in a
|
|
157 molecule.
|
|
158
|
|
159 GetRingsWithOddSize
|
|
160 @Rings = $Bond->GetRingsWithOddSize();
|
|
161
|
|
162 Returns an array of references to arrays containing ring atoms
|
|
163 corressponding to all rings with odd size containing *Bond* in a
|
|
164 molecule.
|
|
165
|
|
166 GetRingsWithSize
|
|
167 @Rings = $Bond->GetRingsWithSize($RingSize);
|
|
168
|
|
169 Returns an array of references to arrays containing ring atoms
|
|
170 corressponding to all rings with specific *RingSize *containing
|
|
171 *Bond* in a molecule.
|
|
172
|
|
173 GetRingsWithSizeGreaterThan
|
|
174 @Rings = $Bond->GetRingsWithSizeGreaterThan($RingSize);
|
|
175
|
|
176 Returns an array of references to arrays containing ring atoms
|
|
177 corressponding to all rings with size greater than specific
|
|
178 *RingSize *containing *Bond* in a molecule.
|
|
179
|
|
180 GetRingsWithSizeLessThan
|
|
181 @Rings = $Bond->GetRingsWithSizeLessThan($RingSize);
|
|
182
|
|
183 Returns an array of references to arrays containing ring atoms
|
|
184 corressponding to all rings with size less than specific *RingSize
|
|
185 *containing *Bond* in a molecule.
|
|
186
|
|
187 GetSizeOfLargestRing
|
|
188 $Size = $Bond->GetSizeOfLargestRing();
|
|
189
|
|
190 Returns size of the largest ring containing *Bond* in a molecule.
|
|
191
|
|
192 GetSizeOfSmallestRing
|
|
193 $Size = $Bond->GetSizeOfSmallestRing();
|
|
194
|
|
195 Returns size of the smallest ring containing *Bond* in a molecule.
|
|
196
|
|
197 GetSmallestRing
|
|
198 @RingAtoms = $Bond->GetSmallestRing();
|
|
199
|
|
200 Returns an array of ring *Atoms* corresponding to the largest ring
|
|
201 containing *Bond* in a molecule.
|
|
202
|
|
203 IsAromatic
|
|
204 $Status = $Bond->IsAromatic();
|
|
205
|
|
206 Returns 1 or 0 based on whether it's an aromatic *Bond*.
|
|
207
|
|
208 IsBondStereochemistrySpecified
|
|
209 $Status = $Bond->IsBondStereochemistrySpecified();
|
|
210
|
|
211 Returns 1 or 0 based on whether *Bond*'s sterochemistry is
|
|
212 specified.
|
|
213
|
|
214 IsBondTypeSpecified
|
|
215 $Status = $Bond->IsBondTypeSpecified();
|
|
216
|
|
217 Returns 1 or 0 based on whether *Bond*'s type is specified.
|
|
218
|
|
219 IsCis
|
|
220 $Status = $Bond->IsCis();
|
|
221
|
|
222 Returns 1 or 0 based on whether it's a cis *Bond*.
|
|
223
|
|
224 IsCisOrTrans
|
|
225 $Status = $Bond->IsCisOrTrans();
|
|
226
|
|
227 Returns 1 or 0 based on whether it's a cis or trans *Bond*.
|
|
228
|
|
229 IsCoordinate
|
|
230 $Status = $Bond->IsCoordinate();
|
|
231
|
|
232 Returns 1 or 0 based on whether it's a coordinate or dative *Bond*.
|
|
233
|
|
234 IsDative
|
|
235 $Status = $Bond->IsDative();
|
|
236
|
|
237 Returns 1 or 0 based on whether it's a coordinate or dative *Bond*.
|
|
238
|
|
239 IsDouble
|
|
240 $Status =$Bond->IsDouble();
|
|
241
|
|
242 Returns 1 or 0 based on whether it's a double *Bond*.
|
|
243
|
|
244 IsDown
|
|
245 $Status = $Bond->IsDown();
|
|
246
|
|
247 Returns 1 or 0 based on whether it's a hash or down single *Bond*.
|
|
248
|
|
249 IsDownward
|
|
250 $Return = $Bond->IsDownward();
|
|
251
|
|
252 Returns 1 or 0 based on whether it's a downward *Bond*.
|
|
253
|
|
254 IsHash
|
|
255 $Status = $Bond->IsHash();
|
|
256
|
|
257 Returns 1 or 0 based on whether it's a hash or down single *Bond*.
|
|
258
|
|
259 IsInRing
|
|
260 $Status = $Bond->IsInRing();
|
|
261
|
|
262 Returns 1 or 0 based on whether *Bond* is present in a ring.
|
|
263
|
|
264 IsInRingOfSize
|
|
265 $Status = $Bond->IsInRingOfSize($Size);
|
|
266
|
|
267 Returns 1 or 0 based on whether *Bond* is present in a ring of
|
|
268 specific *Size*.
|
|
269
|
|
270 IsIonic
|
|
271 $Status = $Bond->IsIonic();
|
|
272
|
|
273 Returns 1 or 0 based on whether it's an ionic *Bond*.
|
|
274
|
|
275 IsNotInRing
|
|
276 $Status = $Bond->IsNotInRing();
|
|
277
|
|
278 Returns 1 or 0 based on whether *Bond* is not present in a ring.
|
|
279
|
|
280 IsOnlyInOneRing
|
|
281 $Status = $Bond->IsOnlyInOneRing();
|
|
282
|
|
283 Returns 1 or 0 based on whether *Bond* is only present in one ring.
|
|
284
|
|
285 IsQuadruple
|
|
286 $Status = $Bond->IsQuadruple();
|
|
287
|
|
288 Returns 1 or 0 based on whether it's a quadruple *Bond*.
|
|
289
|
|
290 IsQuintuple
|
|
291 $Status = $Bond->IsQuintuple();
|
|
292
|
|
293 Returns 1 or 0 based on whether it's a quintuple *Bond*.
|
|
294
|
|
295 IsSextuple
|
|
296 $Status = $Bond->IsSextuple();
|
|
297
|
|
298 Returns 1 or 0 based on whether it's a sextuple *Bond*.
|
|
299
|
|
300 IsSingle
|
|
301 $Status =$Bond->IsSingle();
|
|
302
|
|
303 Returns 1 or 0 based on whether it's a single *Bond*.
|
|
304
|
|
305 IsTriple
|
|
306 $Status =$Bond->IsTriple();
|
|
307
|
|
308 Returns 1 or 0 based on whether it's a triple *Bond*.
|
|
309
|
|
310 IsTautomeric
|
|
311 $Status = $Bond->IsTautomeric();
|
|
312
|
|
313 Returns 1 or 0 based on whether it's a *Bond*.
|
|
314
|
|
315 IsTrans
|
|
316 $Status = $Bond->IsTrans();
|
|
317
|
|
318 Returns 1 or 0 based on whether it's a trans *Bond*.
|
|
319
|
|
320 IsUp
|
|
321 $Status = $Bond->IsUp();
|
|
322
|
|
323 Returns 1 or 0 based on whether it's a up *Bond*.
|
|
324
|
|
325 IsUpOrDown
|
|
326 $Status = $Bond->IsUpOrDown();
|
|
327
|
|
328 Returns 1 or 0 based on whether it's an up or down *Bond*.
|
|
329
|
|
330 IsUpward
|
|
331 $Status = $Bond->IsUpward();
|
|
332
|
|
333 Returns 1 or 0 based on whether it's an upward *Bond*.
|
|
334
|
|
335 IsWedge
|
|
336 $Status = $Bond->IsWedge();
|
|
337
|
|
338 Returns 1 or 0 based on whether it's a wedge *Bond*.
|
|
339
|
|
340 IsWedgeOrHash
|
|
341 $Status = $Bond->IsWedgeOrHash();
|
|
342
|
|
343 Returns 1 or 0 based on whether it's a wedge or hash *Bond*.
|
|
344
|
|
345 SetAtoms
|
|
346 $Bond->SetAtoms($AtomsRef);
|
|
347 $Bond->SetAtoms(@Atoms);
|
|
348
|
|
349 Set atoms of *Bond* to atoms in *Atoms* array or in a reference to
|
|
350 an array of atoms and return *Bond*.
|
|
351
|
|
352 SetBondOrder
|
|
353 $Bond->SetBondOrder($BondOrder);
|
|
354
|
|
355 Sets bond order of *Bond* to specified *BondOrder* and returns
|
|
356 *Bond*. Possible bond order values: 1 = Single, 1.5 = Aromatic, 2 =
|
|
357 Double, 3 = Triple, 4 = Quadruple, 5 = Quintuple, 6 = Sextuple, 7 =
|
|
358 Septuple
|
|
359
|
|
360 Notes:
|
|
361
|
|
362 . BondType property is automatically assigned using default BondType
|
|
363 values for specified BondOrder.
|
|
364 . BondType values can also be explicit set.
|
|
365 . To make bonds aromatic in a ring, explicitly set "Aromatic"
|
|
366 property for bond/atoms and make sure appropriate BondOrder
|
|
367 values are assigned.
|
|
368 . Dative or coordinate bond types are treated as single bond types with
|
|
369 explicit formal charge of + and - on first and second bond atoms.
|
|
370
|
|
371 SetBondType
|
|
372 $Bond->SetBondType($BondType);
|
|
373
|
|
374 Sets bond type for *Bond* to specified *BondType* and returns
|
|
375 *Bond*. Possible bond type values for different bond orders are:
|
|
376
|
|
377 0: None, Ionic, Unspecified
|
|
378 1 : Single, Dative, Coordinate, SingleOrDouble, SingleOrAromatic, Tautomeric
|
|
379 2 : Double, SingleOrDouble, DoubleOrAromatic, Tautomeric
|
|
380 3 : Triple
|
|
381 4 : Quadruple
|
|
382 5 : Quintuple
|
|
383 6 : Sextuple
|
|
384 7 : Septuple
|
|
385 1.5 : Aromatic, Resonance, SingleOrAromatic, DoubleOrAromatic
|
|
386
|
|
387 Notes:
|
|
388
|
|
389 o BondType Any is valid for all BondOrders.
|
|
390 o BondOrder property is automatically assigned using default BondOrder
|
|
391 values for specified BondType.
|
|
392
|
|
393 Possible bond stereochemistry values for different bond orders are:
|
|
394
|
|
395 0 : None, Unspecified
|
|
396 1 : Wedge, Up, Hash, Down, Wavy, WedgeOrHash, UpOrDown, Upward, Downward,
|
|
397 None, Unspecified
|
|
398 2 : Cis, Trans, Z, E, DoubleCross, CisOrTrans, None, Unspecified
|
|
399
|
|
400 SetBondStereochemistry
|
|
401 $Bond = $Bond->SetBondStereochemistry($BondStereochemistry);
|
|
402
|
|
403 Sets bond stereochemistry of *Bond* to specified
|
|
404 *BondStereochemistry* and returns *Bond*. Possible
|
|
405 *BondStereoChemistry* values for different bond orders are:
|
|
406
|
|
407 BondOrder: 1
|
|
408
|
|
409 None, Unspecified: Not a stereo bond or unspecified
|
|
410
|
|
411 Wedge, Up : Wedge end pointing up
|
|
412 Hash, Down: Wedge end pointing down
|
|
413 Wavy, WedgeOrHash, UpOrDown: Wedge end up or down
|
|
414
|
|
415 Upward: Single bond around cis/trans double bonds pointing upward
|
|
416 Downward: Single bond around cis/trans double bonds pointing upward
|
|
417
|
|
418 Notes:
|
|
419
|
|
420 o Wedge starts at begin atom of a bond making wedge pointed end always
|
|
421 at this atom.
|
|
422 o Upward/downward bonds start at atoms involved in cis/trans double bonds.
|
|
423
|
|
424 BondOrder: 2
|
|
425
|
|
426 None, Unspecified: Not a stereo bond or unspecified
|
|
427
|
|
428 Z, cis: Similar groups on same side of double bond
|
|
429 E, trans: Similar groups on different side of double bond
|
|
430
|
|
431 CisOrTrans, DoubleCross: cis or trans
|
|
432
|
|
433 StringifyBond
|
|
434 $BondString = $Bond->StringifyBond();
|
|
435
|
|
436 Returns a string containing information about *bond* object.
|
|
437
|
|
438 SwitchBondFromAndToAtoms
|
|
439 $Bond = $Bond->SwitchBondFromAndToAtoms();
|
|
440
|
|
441 Swaps bond from and to atoms in *Bond* and returns *Bond*.
|
|
442
|
|
443 AUTHOR
|
|
444 Manish Sud <msud@san.rr.com>
|
|
445
|
|
446 SEE ALSO
|
|
447 Atom.pm, Molecule.pm
|
|
448
|
|
449 COPYRIGHT
|
|
450 Copyright (C) 2015 Manish Sud. All rights reserved.
|
|
451
|
|
452 This file is part of MayaChemTools.
|
|
453
|
|
454 MayaChemTools is free software; you can redistribute it and/or modify it
|
|
455 under the terms of the GNU Lesser General Public License as published by
|
|
456 the Free Software Foundation; either version 3 of the License, or (at
|
|
457 your option) any later version.
|
|
458
|