annotate lib/Bond.pm @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1 package Bond;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: Bond.pm,v $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:47:02 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.40 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
6 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
7 # Author: Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
8 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
10 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
11 # This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
12 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
14 # the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
15 # Software Foundation; either version 3 of the License, or (at your option) any
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
16 # later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
17 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
18 # MayaChemTools is distributed in the hope that it will be useful, but without
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
19 # any warranty; without even the implied warranty of merchantability of fitness
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
20 # for a particular purpose. See the GNU Lesser General Public License for more
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
21 # details.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
22 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
23 # You should have received a copy of the GNU Lesser General Public License
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
26 # Boston, MA, 02111-1307, USA.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
27 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
28
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
29 use strict;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
30 use Carp;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 use Exporter;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 use Storable ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33 use Scalar::Util ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34 use ObjectProperty;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38 @ISA = qw(ObjectProperty Exporter);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39 @EXPORT = qw();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 @EXPORT_OK = qw();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 %EXPORT_TAGS = (all => [@EXPORT, @EXPORT_OK]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 # Setup class variables...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45 my($ClassName, $ObjectID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46 _InitializeClass();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 # Overload Perl functions...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49 use overload '""' => 'StringifyBond';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 # Class constructor...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 sub new {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53 my($Class, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55 # Initialize object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 my $This = {};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 bless $This, ref($Class) || $Class;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58 $This->_InitializeBond();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60 $This->_InitializeBondProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 # Initialize object data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 sub _InitializeBond {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69 my($ObjectID) = _GetNewObjectID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 # All other property names and values along with all Set/Get<PropertyName> methods
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72 # are implemented on-demand using ObjectProperty class.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 $This->{ID} = $ObjectID;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75 # Bond from and to atoms indicate begining and ending bond atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 $This->{BondFromAtom} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 $This->{BondToAtom} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 $This->{BondOrder} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80 $This->{BondType} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 $This->{BondStereochemistry} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 # Initialize class ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85 sub _InitializeClass {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86 #Class name...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 $ClassName = __PACKAGE__;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 # ID to keep track of objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 $ObjectID = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 # Initialize bond properties...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 sub _InitializeBondProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 my($Name, $Value, $MethodName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98 while (($Name, $Value) = each %NamesAndValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 $MethodName = "Set${Name}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100 $This->$MethodName($Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103 if (!exists $NamesAndValues{'Atoms'}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104 carp "Warning: ${ClassName}->new: Bond object instantiated without specifying atoms list...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 if (!exists $NamesAndValues{'BondOrder'}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107 carp "Warning: ${ClassName}->new: Bond object instantiated without setting bond order...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 # Setup an explicit SetID method to block setting of ID by AUTOLOAD function...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113 sub SetID {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 carp "Warning: ${ClassName}->SetID: Object ID can't be changed: it's used for internal tracking...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121 # Setup an explicit SetMolecule method to block setting of ID by AUTOLOAD function...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 sub SetMolecule {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 carp "Warning: ${ClassName}->SetMolecule: Molecule property can't be changed: it's used for internal tracking...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 # Assign bond to molecule...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 sub _SetMolecule {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132 my($This, $Molecule) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134 $This->{Molecule} = $Molecule;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 # Weaken the reference to disable increment of reference count; otherwise,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137 # it it becomes a circular reference and destruction of Molecule object doesn't
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 # get initiated which in turn disables destruction of bond object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 Scalar::Util::weaken($This->{Molecule});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145 # Set bond atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146 sub SetAtoms {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 my($This, @Values) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 if (!@Values) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 croak "Error: ${ClassName}->SetAtoms: No atoms specified...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 my($FirstValue, $TypeOfFirstValue, $Atom1, $Atom2, $AtomID1, $AtomID2);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154 $FirstValue = $Values[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155 $TypeOfFirstValue = ref $FirstValue;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157 if ($TypeOfFirstValue =~ /^ARRAY/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 # Initialize using array refernce...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159 if (@{$FirstValue} != 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160 croak "Warning: ${ClassName}->SetAtoms: Number of atoms specified in bond object is not equal to 2...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162 ($Atom1, $Atom2) = @{$FirstValue};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165 # It's a list of values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 if (@Values != 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167 croak "Warning: ${ClassName}->SetAtoms: Number of atoms specified in bond object is not equal to 2...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 ($Atom1, $Atom2) = @Values;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172 $AtomID1 = $Atom1->GetID(); $AtomID2 = $Atom2->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173 if ($AtomID1 == $AtomID2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 croak "Warning: ${ClassName}->SetAtoms: Can't specify same atoms to create a bond...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177 $This->{BondFromAtom} = $Atom1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178 $This->{BondToAtom} = $Atom2;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 # Get bond atoms as array. In scalar context, return number of atoms involved in
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 # bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 sub GetAtoms {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 return wantarray ? ($This->{BondFromAtom}, $This->{BondToAtom}) : 2;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192 # Get atom bonded to specified atom...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 sub GetBondedAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194 my($This, $Atom) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195 my($Atom1, $Atom2, $AtomID1, $AtomID2, $AtomID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197 ($Atom1, $Atom2) = $This->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198 $AtomID1 = $Atom1->GetID(); $AtomID2 = $Atom2->GetID(); $AtomID = $Atom->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200 return ($AtomID1 == $AtomID) ? $Atom2 : (($AtomID2 == $AtomID) ? $Atom1 : undef) ;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203 # Get common atom between two bonds...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204 sub GetCommonAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205 my($This, $Other) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206 my($Atom1, $Atom2, $AtomID1, $AtomID2, $OtherAtom1, $OtherAtom2, $OtherAtomID1, $OtherAtomID2);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208 ($Atom1, $Atom2) = $This->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
209 $AtomID1 = $Atom1->GetID(); $AtomID2 = $Atom2->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
210
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
211 ($OtherAtom1, $OtherAtom2) = $Other->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
212 $OtherAtomID1 = $OtherAtom1->GetID(); $OtherAtomID2 = $OtherAtom2->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
213
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
214 return ($AtomID1 == $OtherAtomID1 || $AtomID1 == $OtherAtomID2) ? $Atom1 : (($AtomID2 == $OtherAtomID1 || $AtomID2 == $OtherAtomID2) ? $Atom2 : undef) ;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
215 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
216
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
217 # Get bond from atom indicating begining atom of a bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
218 sub GetBondFromAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
219 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
220
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
221 return $This->{BondFromAtom};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
222 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
223
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
224 # Get begin bond atom...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
225 sub GetBondBeginAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
226 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
227
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
228 return $This->GetBondFromAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
229 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
230
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
231 # Get bond to atom indicating ending atom of a bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
232 sub GetBondToAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
233 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
234
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
235 return $This->{BondToAtom};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
236 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
237
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
238 # Get begin bond atom...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
239 sub GetBondEndAtom {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
240 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
241
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
242 return $This->GetBondToAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
243 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
244
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
245 # Switch bond from and to atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
246 sub SwitchBondFromAndToAtoms {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
247 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
248 my($FromAtom, $ToAtom);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
249
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
250 ($FromAtom, $ToAtom) = $This->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
251
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
252 $This->{BondFromAtom} = $ToAtom;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
253 $This->{BondToAtom} = $FromAtom;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
254
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
255 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
256 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
257
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
258 # Set bond order...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
259 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
260 # Possible BondOrder are: 0 = None, 1 = Single, 1.5 = Aromatic, 2 = Double, 3 = Triple, 4 = Quadruple,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
261 # 5 = Quintuple, 6 = Sextuple, 7 = Septuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
262 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
263 # Possible BondType for different BondOrders are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
264 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
265 # 0 : None, Ionic, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
266 # 1 : Single, Dative, Coordinate, SingleOrDouble, SingleOrAromatic, Tautomeric
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
267 # 1.5 : Aromatic, Resonance, SingleOrAromatic, DoubleOrAromatic
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
268 # 2 : Double, Tautomeric, SingleOrDouble, DoubleOrAromatic
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
269 # 3 : Triple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
270 # 4 : Quadruple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
271 # 5 : Quintuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
272 # 6 : Sextuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
273 # 7 : Septuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
274 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
275 # Note: BondType Any is valid for all BondOrders.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
276 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
277 # Possible BondStereochemistry values for different BondOrders are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
278 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
279 # 0 : None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
280 # 1 : Wedge, Up, Hash, Down, Wavy, WedgeOrHash, UpOrDown, Upward, Downward, None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
281 # 2 : Cis, Trans, Z, E, DoubleCross, CisOrTrans, None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
282 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
283 # Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
284 # . BondType property is automatically assigned using default BondType values for
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
285 # specified BondOrder.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
286 # . BondType values can also be explicit set.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
287 # . To make bonds aromatic in a ring, explicitly set "Aromatic" property for bond/atoms and make sure
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
288 # appropriate BondOrder values are assigned.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
289 # . Dative or coordinate bond types are treated as single bond types with explicit formal charge
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
290 # of + and - on first and second bond atoms.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
291 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
292 sub SetBondOrder {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
293 my($This, $BondOrder) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
294
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
295 if ($BondOrder !~ /^(0|1|1.5|2|3|4|5|6|7)$/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
296 croak "Error: ${ClassName}->SetBondOrder: BondOrder value $BondOrder is not valid. Supported values: 0, 1, 1.5, 2, 3, 4, 5, 6, 7";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
297 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
298
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
299 # Set bond order and type...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
300 my($BondType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
301
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
302 BONDORDER: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
303 if ($BondOrder == 1) {$BondType = 'Single'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
304 if ($BondOrder == 1.5) {$BondType = 'Aromatic'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
305 if ($BondOrder == 2) {$BondType = 'Double'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
306 if ($BondOrder == 3) {$BondType = 'Triple'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
307 if ($BondOrder == 4) {$BondType = 'Quadruple'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
308 if ($BondOrder == 5) {$BondType = 'Quintuple'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
309 if ($BondOrder == 6) {$BondType = 'Sextuple'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
310 if ($BondOrder == 7) {$BondType = 'Septuple'; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
311 $BondType = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
312 $BondOrder = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
313 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
314 $This->{BondType} = $BondType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
315 $This->{BondOrder} = $BondOrder;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
316
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
317 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
318
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
319 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
320
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
321 # Set bond type for a specific bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
322 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
323 sub SetBondType {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
324 my($This, $BondType) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
325
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
326 if ($BondType !~ /^(None|Ionic|Unspecified|Single|Dative|Coordinate|SingleOrDouble|SingleOrAromatic|Aromatic|Tautomeric|Resonance|DoubleOrAromatic|Double|Triple|Quadruple|Any)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
327 croak "Error: ${ClassName}->SetBondType: BondType value $BondType is not valid. Supported values: None, Ionic, Unspecified, Single, Dative, Coordinate, SingleOrDouble, SingleOrAromatic, Aromatic, Tautomeric, Resonance, DoubleOrAromatic, Double, Triple, Quadruple, Any...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
328 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
329
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
330 # Make sure its a valid BondType value for BondOrder...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
331 my($BondOrder, $ValidBondType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
332
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
333 $ValidBondType = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
334 $BondOrder = $This->{BondOrder};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
335
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
336 BONDORDER: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
337 if ($BondOrder == 0 && $BondType =~ /^(None|Ionic|Unspecified|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
338 if ($BondOrder == 1 && $BondType =~ /^(Single|Dative|Coordinate|SingleOrDouble|SingleOrAromatic|Tautomeric|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
339 if ($BondOrder == 1.5 && $BondType =~ /^(Aromatic|Resonance|SingleOrAromatic|DoubleOrAromatic|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
340 if ($BondOrder == 2 && $BondType =~ /^(Double|SingleOrDouble|DoubleOrAromatic|Tautomeric|Any)$/i ) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
341 if ($BondOrder == 3 && $BondType =~ /^(Triple|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
342 if ($BondOrder == 4 && $BondType =~ /^(Quadruple|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
343 if ($BondOrder == 5 && $BondType =~ /^(Quintuple|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
344 if ($BondOrder == 6 && $BondType =~ /^(Sextuple|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
345 if ($BondOrder == 7 && $BondType =~ /^(Septuple|Any)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
346 $ValidBondType = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
347 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
348
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
349 if (!$ValidBondType) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
350 carp "Warning: ${ClassName}->SetBondType: Assigning invalid BondType value, $BondType, for BondOrder $BondOrder...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
351 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
352
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
353 $This->{BondType} = $BondType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
354
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
355 # Set explicit formal charge for atoms involved in Dative or coordinate bonds...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
356 if ($BondType =~ /^(Dative|Coordinate)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
357 my($Atom1, $Atom2) = $This->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
358 $Atom1->SetFormalCharge('1');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
359 $Atom2->SetFormalCharge('-1');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
360 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
361
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
362 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
363 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
364
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
365 # Set bond stereochemistry...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
366 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
367 # Single bond stereochemistry:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
368 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
369 # None, Unspecified: Not a stereo bond or unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
370 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
371 # Wedge, Up : Wedge end pointing up
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
372 # Hash, Down: Wedge end pointing down
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
373 # Wavy, WedgeOrHash, UpOrDown: Wedge end up or down
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
374 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
375 # Note: Wedge starts at begin atom of bond making wedge pointed end always at this
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
376 # atom.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
377 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
378 # Upward: Single bond around cis/trans double bonds pointing upward
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
379 # Downward: Single bond around cis/trans double bonds pointing upward
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
380 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
381 # Note: Upward/downward bonds start at atoms involved in cis/trans double bond.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
382 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
383 # Double bond stereochemistry:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
384 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
385 # None, Unspecified: Not a stereo bond or unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
386 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
387 # Z, cis: Similar groups on same side of double bond
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
388 # E, trans: Similar groups on different side of double bond
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
389 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
390 # CisOrTrans, DoubleCross: cis or trans
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
391 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
392 sub SetBondStereochemistry {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
393 my($This, $BondStereochemistry) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
394
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
395 if ($BondStereochemistry !~ /^(None|Unspecified|Wedge|Hash|Up|Down|Wavy|WedgeOrHash|UpOrDown|Upward|Downward|Cis|Trans|Z|E|DoubleCross|CisOrTrans)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
396 croak "Error: ${ClassName}->SetBondStereochemistry: BondStereochemistry value $BondStereochemistry is not valid. Supported values: None, Unspecified, Wedge, Hash, Up, Down, Wavy, WedgeOrHash, UpOrDown, Upward, Downward, Cis, Trans, Z, E, DoubleCross, CisOrTrans...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
397 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
398
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
399 # Make sure its a valid BondStereochemistry value for BondOrder...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
400 my($BondOrder, $ValidBondType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
401
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
402 $ValidBondType = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
403 $BondOrder = $This->{BondOrder};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
404
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
405 BONDORDER: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
406 if ($BondOrder == 0 && $BondStereochemistry =~ /^(None|Unspecified)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
407 if ($BondOrder == 1 && $BondStereochemistry =~ /^(Wedge|Hash|Up|Down|Wavy|WedgeOrHash|UpOrDown|Upward|Downward|None|Unspecified)$/i) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
408 if ($BondOrder == 2 && $BondStereochemistry =~ /^(Cis|Trans|Z|E|DoubleCross|CisOrTrans|None|Unspecified)$/i ) {$ValidBondType = 1; last BONDORDER; }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
409 $ValidBondType = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
410 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
411
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
412 if (!$ValidBondType) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
413 carp "Warning: ${ClassName}->SetBondStereochemistry: Assigning invalid BondStereochemistry value, $BondStereochemistry, for BondOrder $BondOrder...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
414 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
415
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
416 $This->{BondStereochemistry} = $BondStereochemistry;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
417
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
418 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
419 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
420
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
421 # Is it a single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
422 sub IsSingle {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
423 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
424
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
425 return ($This->{BondOrder} == 1) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
426 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
427
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
428 # Is it a double bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
429 sub IsDouble {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
430 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
431
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
432 return ($This->{BondOrder} == 2) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
433 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
434
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
435 # Is it a triple bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
436 sub IsTriple {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
437 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
438
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
439 return ($This->{BondOrder} == 3) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
440 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
441
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
442 # Is it a quadruple bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
443 sub IsQuadruple {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
444 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
445
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
446 return ($This->{BondOrder} == 4) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
447 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
448
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
449 # Is aromatic property set for the bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
450 sub IsAromatic {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
451 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
452 my($Aromatic);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
453
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
454 $Aromatic = $This->GetAromatic();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
455
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
456 return ((defined($Aromatic) && $Aromatic) || $This->{BondOrder} == 1.5) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
457 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
458
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
459 # Is it a quintuple bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
460 sub IsQuintuple {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
461 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
462
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
463 return ($This->{BondOrder} == 5) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
464 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
465
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
466 # Is it a sextuple bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
467 sub IsSextuple {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
468 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
469
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
470 return ($This->{BondOrder} == 6) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
471 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
472
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
473 # Is bond type specified?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
474 sub IsBondTypeSpecified {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
475 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
476
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
477 return ($This->{BondType} && $This->{BondType} !~ /^(None|Unspecified)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
478 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
479
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
480 # Is it a dative or coordinate bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
481 sub IsDative {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
482 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
483
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
484 return ($This->{BondType} =~ /^(Dative|Coordinate)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
485 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
486
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
487 # Is it a dative or coordinate bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
488 sub IsCoordinate {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
489 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
490
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
491 return $This->IsDative();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
492 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
493
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
494 # Is it a ionic bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
495 sub IsIonic {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
496 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
497
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
498 return ($This->{BondType} =~ /^Ionic$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
499 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
500
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
501 # Is it a tautomeric bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
502 sub IsTautomeric {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
503 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
504
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
505 return ($This->{BondType} =~ /^Tautomeric$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
506 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
507
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
508 # Is bond stereochemistry specified?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
509 sub IsBondStereochemistrySpecified {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
510 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
511
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
512 return ($This->{BondStereochemistry} && $This->{BondStereochemistry} !~ /^(None|Unspecified)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
513 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
514
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
515 # Is it a Wedge or Up single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
516 sub IsWedge {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
517 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
518
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
519 return $This->IsUp();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
520 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
521
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
522 # Is it a Wedge or Up single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
523 sub IsUp {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
524 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
525
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
526 return ($This->{BondStereochemistry} =~ /^(Wedge|Up)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
527 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
528
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
529 # Is it a Hash or Down single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
530 sub IsHash {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
531 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
532
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
533 return $This->IsDown();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
534 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
535
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
536 # Is it a Hash or Down single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
537 sub IsDown {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
538 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
539
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
540 return ($This->{BondStereochemistry} =~ /^(Hash|Down)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
541 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
542
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
543 # Is it a Wavy, WedgeOrHash or UpOrDown single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
544 sub IsWedgeOrHash {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
545 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
546
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
547 return $This->IsUpOrDown();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
548 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
549
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
550 # Is it a Wavy, WedgeOrHash or UpOrDown single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
551 sub IsUpOrDown {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
552 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
553
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
554 return ($This->{BondStereochemistry} =~ /^(Wavy|WedgeOrHash|UpOrDown)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
555 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
556
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
557 # Is it a upward single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
558 sub IsUpward {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
559 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
560
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
561 return ($This->{BondStereochemistry} =~ /^Upward$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
562 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
563
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
564 # Is it a Downward single bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
565 sub IsDownward {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
566 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
567
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
568 return ($This->{BondStereochemistry} =~ /^Downward$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
569 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
570 # Is it a cis or Z double bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
571 sub IsCis {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
572 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
573
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
574 return ($This->{BondStereochemistry} =~ /^(Cis|Z)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
575 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
576
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
577 # Is it a trans or E double bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
578 sub IsTrans {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
579 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
580
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
581 return ($This->{BondStereochemistry} =~ /^(Trans|E)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
582 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
583
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
584 # Is it a cis or trans double bond?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
585 sub IsCisOrTrans {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
586 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
587
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
588 return ($This->{BondStereochemistry} =~ /^(CisOrTrans|DoubleCross)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
589 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
590
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
591 # Delete bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
592 sub DeleteBond {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
593 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
594
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
595 # Is this atom in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
596 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
597 # Nothing to do...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
598 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
599 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
600 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
601 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
602 $Molecule->DeleteBond($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
603
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
604 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
605 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
606
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
607 # Copy bond and all its associated data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
608 sub Copy {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
609 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
610 my($Bond);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
611
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
612 $Bond = Storable::dclone($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
613
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
614 return $Bond;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
615 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
616
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
617 # Is bond in a ring?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
618 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
619 sub IsInRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
620 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
621
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
622 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
623 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
624 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
625 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
626 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
627 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
628
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
629 return $Molecule->_IsBondInRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
630 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
631
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
632 # Is bond not in a ring?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
633 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
634 sub IsNotInRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
635 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
636
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
637 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
638 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
639 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
640 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
641 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
642 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
643
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
644 return $Molecule->_IsBondNotInRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
645 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
646
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
647 # Is bond only in one ring?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
648 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
649 sub IsOnlyInOneRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
650 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
651
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
652 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
653 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
654 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
655 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
656 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
657 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
658
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
659 return $Molecule->_IsBondInOnlyOneRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
660 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
661
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
662 # Is bond in a ring of specific size?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
663 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
664 sub IsInRingOfSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
665 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
666
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
667 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
668 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
669 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
670 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
671 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
672 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
673
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
674 return $Molecule->_IsBondInRingOfSize($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
675 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
676
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
677 # Get size of smallest ring containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
678 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
679 sub GetSizeOfSmallestRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
680 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
681
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
682 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
683 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
684 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
685 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
686 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
687 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
688
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
689 return $Molecule->_GetSizeOfSmallestBondRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
690 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
691
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
692 # Get size of largest ring containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
693 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
694 sub GetSizeOfLargestRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
695 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
696
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
697 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
698 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
699 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
700 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
701 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
702 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
703
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
704 return $Molecule->_GetSizeOfLargestBondRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
705 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
706
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
707 # Get number of rings containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
708 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
709 sub GetNumOfRings {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
710 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
711
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
712 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
713 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
714 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
715 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
716 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
717 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
718
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
719 return $Molecule->_GetNumOfBondRings($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
720 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
721
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
722 # Get number of rings with odd size containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
723 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
724 sub GetNumOfRingsWithOddSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
725 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
726
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
727 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
728 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
729 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
730 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
731 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
732 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
733
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
734 return $Molecule->_GetNumOfBondRingsWithOddSize($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
735 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
736
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
737 # Get number of rings with even size containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
738 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
739 sub GetNumOfRingsWithEvenSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
740 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
741
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
742 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
743 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
744 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
745 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
746 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
747 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
748
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
749 return $Molecule->_GetNumOfBondRingsWithEvenSize($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
750 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
751
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
752 # Get number of rings with specified size containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
753 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
754 sub GetNumOfRingsWithSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
755 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
756
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
757 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
758 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
759 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
760 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
761 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
762 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
763
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
764 return $Molecule->_GetNumOfBondRingsWithSize($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
765 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
766
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
767 # Get number of rings with size less than specified containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
768 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
769 sub GetNumOfRingsWithSizeLessThan {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
770 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
771
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
772 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
773 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
774 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
775 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
776 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
777 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
778
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
779 return $Molecule->_GetNumOfBondRingsWithSizeLessThan($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
780 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
781
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
782 # Get number of rings with size greater than specified size containing the bond...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
783 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
784 sub GetNumOfRingsWithSizeGreaterThan {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
785 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
786
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
787 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
788 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
789 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
790 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
791 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
792 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
793
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
794 return $Molecule->_GetNumOfBondRingsWithSizeGreaterThan($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
795 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
796
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
797 # Get all rings as an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
798 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
799 sub GetRings {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
800 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
801
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
802 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
803 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
804 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
805 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
806 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
807 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
808
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
809 return $Molecule->_GetBondRings($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
810 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
811
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
812 # Get smallest ring as an array containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
813 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
814 sub GetSmallestRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
815 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
816
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
817 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
818 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
819 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
820 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
821 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
822 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
823
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
824 return $Molecule->_GetSmallestBondRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
825 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
826
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
827 # Get largest ring as an array containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
828 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
829 sub GetLargestRing {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
830 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
831
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
832 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
833 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
834 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
835 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
836 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
837 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
838
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
839 return $Molecule->_GetLargestBondRing($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
840 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
841
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
842 # Get odd size rings an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
843 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
844 sub GetRingsWithOddSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
845 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
846
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
847 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
848 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
849 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
850 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
851 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
852 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
853
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
854 return $Molecule->_GetBondRingsWithOddSize($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
855 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
856
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
857 # Get even size rings an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
858 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
859 sub GetRingsWithEvenSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
860 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
861
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
862 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
863 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
864 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
865 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
866 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
867 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
868
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
869 return $Molecule->_GetBondRingsWithEvenSize($This);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
870 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
871
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
872 # Get rings with specified size an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
873 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
874 sub GetRingsWithSize {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
875 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
876
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
877 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
878 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
879 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
880 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
881 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
882 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
883
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
884 return $Molecule->_GetBondRingsWithSize($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
885 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
886
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
887 # Get rings with size less than specfied size as an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
888 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
889 sub GetRingsWithSizeLessThan {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
890 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
891
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
892 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
893 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
894 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
895 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
896 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
897 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
898
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
899 return $Molecule->_GetBondRingsWithSizeLessThan($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
900 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
901
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
902 # Get rings with size greater than specfied size as an array of references to arrays containing ring atoms...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
903 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
904 sub GetRingsWithSizeGreaterThan {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
905 my($This, $RingSize) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
906
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
907 # Is this bond in a molecule?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
908 if (!$This->HasProperty('Molecule')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
909 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
910 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
911 my($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
912 $Molecule = $This->GetProperty('Molecule');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
913
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
914 return $Molecule->_GetBondRingsWithSizeGreaterThan($This, $RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
915 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
916
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
917 # Get next object ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
918 sub _GetNewObjectID {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
919 $ObjectID++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
920 return $ObjectID;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
921 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
922
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
923 # Return a string containing bond and other properties...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
924 sub StringifyBond {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
925 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
926 my($BondString, $ID, $BondOrder, $BondType, $Stereochemistry, $AtomsString, $RingBond, $AromaticBond, $NumOfRings, $Atom1, $Atom2);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
927
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
928 $ID = $This->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
929 $BondOrder = $This->GetBondOrder();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
930 if (!defined $BondOrder) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
931 $BondOrder = "undefined";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
932 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
933 $BondType = $This->GetBondType();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
934 if (!defined $BondOrder) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
935 $BondType = "undefined";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
936 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
937 if (defined($BondOrder) && $BondOrder == 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
938 $Stereochemistry = $This->GetStereochemistry();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
939 if (!defined $Stereochemistry) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
940 $Stereochemistry = "undefined";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
941 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
942 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
943 $RingBond = $This->IsInRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
944 if (defined $RingBond) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
945 $RingBond = $RingBond ? 'Yes' : 'No';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
946 $NumOfRings = $This->GetNumOfRings();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
947 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
948 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
949 $RingBond = 'undefined';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
950 $NumOfRings = 'undefined';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
951 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
952
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
953 $AromaticBond = $This->GetAromatic();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
954 if (defined $AromaticBond) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
955 $AromaticBond = $AromaticBond ? 'Yes' : 'No';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
956 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
957 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
958 $AromaticBond = 'undefined';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
959 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
960
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
961 ($Atom1, $Atom2) = $This->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
962 $AtomsString = "Atoms: undefined";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
963 if (defined($Atom1) && defined($Atom2)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
964 my($Atom, $AtomID, $AtomCount, $AtomName, $AtomSymbol, $AtomicNumber, @BondAtoms);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
965 @BondAtoms = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
966 push @BondAtoms, ($Atom1, $Atom2);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
967 $AtomCount = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
968 $AtomsString = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
969 for $Atom (@BondAtoms) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
970 $AtomCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
971 $AtomID = $Atom->GetID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
972 $AtomName = $Atom->GetName();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
973 $AtomSymbol = $Atom->GetAtomSymbol();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
974 $AtomicNumber = $Atom->GetAtomicNumber();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
975 if ($AtomCount == 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
976 $AtomsString .= "FirstAtom:";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
977 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
978 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
979 $AtomsString .= "; SecondAtom:";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
980 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
981 $AtomsString .= " [ ID: $AtomID; Name: \"$AtomName\"; AtomSymbol: \"$AtomSymbol\"; AtomicNumber: $AtomicNumber ]";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
982 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
983 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
984 $BondString = "Bond: ID: $ID; BondOrder: $BondOrder; BondType: $BondType; RingBond: $RingBond; NumOfBondRings: $NumOfRings; AromaticBond: $AromaticBond;";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
985 if (defined($BondOrder) && $BondOrder == 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
986 $BondString .= " Stereochemistry: $Stereochemistry;";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
987 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
988 $BondString .= " $AtomsString";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
989
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
990 return $BondString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
991 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
992
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
993 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
994
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
995 __END__
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
996
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
997 =head1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
998
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
999 Bond
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1001 =head1 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1002
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1003 use Bond;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1004
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1005 use Bond qw(:all);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1006
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1007 =head1 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1008
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1009 B<Bond> class provides the following methods:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1011 new, Copy, DeleteBond, GetAtoms, GetBondBeginAtom, GetBondEndAtom,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1012 GetBondFromAtom, GetBondToAtom, GetBondedAtom, GetCommonAtom, GetLargestRing,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1013 GetNumOfRings, GetNumOfRingsWithEvenSize, GetNumOfRingsWithOddSize,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1014 GetNumOfRingsWithSize, GetNumOfRingsWithSizeGreaterThan,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1015 GetNumOfRingsWithSizeLessThan, GetRings, GetRingsWithEvenSize,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1016 GetRingsWithOddSize, GetRingsWithSize, GetRingsWithSizeGreaterThan,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1017 GetRingsWithSizeLessThan, GetSizeOfLargestRing, GetSizeOfSmallestRing,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1018 GetSmallestRing, IsAromatic, IsBondStereochemistrySpecified, IsBondTypeSpecified,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1019 IsCis, IsCisOrTrans, IsCoordinate, IsDative, IsDouble, IsDown, IsDownward, IsHash,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1020 IsInRing, IsInRingOfSize, IsIonic, IsNotInRing, IsOnlyInOneRing, IsQuadruple,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1021 IsQuintuple, IsSextuple, IsSingle, IsTautomeric, IsTrans, IsTriple, IsUp,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1022 IsUpOrDown, IsUpward, IsWedge, IsWedgeOrHash, SetAtoms, SetBondOrder,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1023 SetBondStereochemistry, SetBondType, StringifyBond, SwitchBondFromAndToAtoms
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1024
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1025 B<Bond> class is derived from B<ObjectProperty> base class which provides methods not explicitly
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1026 defined in B<Atom> or B<ObjectProperty> class using Perl's AUTOLOAD functionality. These methods
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1027 are generated on-the-fly for a specified object property:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1028
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1029 Set<PropertyName>(<PropertyValue>);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1030 $PropertyValue = Get<PropertyName>();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1031 Delete<PropertyName>();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1032
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1033 =head2 METHODS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1034
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1035 =over 4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1036
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1037 =item B<new>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1038
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1039 $NewBond = new Bond([%PropertyNameAndValues]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1040
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1041 Using specified I<Bond> property names and values hash, B<new> method creates a new object
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1042 and returns a reference to newly created B<Bond> object. By default, following properties are
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1043 initialized:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1044
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1045 ID = SequentialObjectID
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1046 @Atoms = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1047 BondType = ""
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1048 BondOrder = ""
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1049
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1050 Except for I<ID> property, all other default properties and other additional properties can
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1051 be set during invocation of this method.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1052
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1053 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1054
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1055 $Bond = new Bond();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1056 $DoubleBond = new Bond('Atoms' => [$Atom2, $Atom1],
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1057 'BondOrder' => 2);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1058
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1059 =item B<Copy>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1060
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1061 $BondCopy = $Bond->Copy();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1062
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1063 Copy I<Bond> and its associated data using B<Storable::dclone> and return a new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1064 B<Bond> object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1065
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1066 =item B<DeleteBond>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1067
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1068 $Bond->DeleteBond();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1069
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1070 Delete I<Bond> between atoms in from a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1071
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1072 =item B<GetAtoms>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1073
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1074 @BondedAtoms = $Bond->GetAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1075
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1076 Returns an array containing I<Atoms> invoved in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1077
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1078 =item B<GetBondedAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1079
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1080 $BondedAtom = $Bond->GetBondedAtom($Atom);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1081
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1082 Returns B<BondedAtom> bonded to I<Atom> in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1083
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1084 =item B<GetBondBeginAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1085
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1086 $BeginAtom = $Bond->GetBondBeginAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1087
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1088 Returns B<BeginAtom> corresponding to bond starting atom in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1089
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1090 =item B<GetBondEndAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1091
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1092 $EndAtom = $Bond->GetBondEndAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1093
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1094 Returns B<EndAtom> corresponding to bond ending atom in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1095
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1096 =item B<GetBondFromAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1097
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1098 $FromAtom = $Bond->GetBondFromAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1099
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1100 Returns B<FromAtom> corresponding to bond starting atom in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1102 =item B<GetBondToAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1104 $ToAotm = $Bond->GetBondToAtom();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1105
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1106 Returns B<ToAtom> corresponding to bond ending atom in I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1108 =item B<GetCommonAtom>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1109
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1110 $CommonAtom = $Bond->GetCommonAtom($OtherBond);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1112 Returns B<Atom> common to both I<Bond> and I<$OtherBond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1113
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1114 =item B<GetLargestRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1115
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1116 @RingAtoms = $Bond->GetLargestRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1118 Returns an array of ring I<Atoms> corresponding to the largest ring containing I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1119 in a molecule
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1121 =item B<GetNumOfRings>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1122
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1123 $NumOfRings = $Bond->GetNumOfRings();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1124
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1125 Returns number of rings containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1127 =item B<GetNumOfRingsWithEvenSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1128
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1129 $NumOfRings = $Bond->GetNumOfRingsWithEvenSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1130
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1131 Returns number of rings with even size containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1132
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1133 =item B<GetNumOfRingsWithOddSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1135 $NumOfRings = $Bond->GetNumOfRingsWithOddSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1136
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1137 Returns number of rings with odd size containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1138
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1139 =item B<GetNumOfRingsWithSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1140
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1141 $NumOfRings = $Bond->GetNumOfRingsWithSize($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1142
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1143 Returns number of rings with specific I<RingSize> containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1144
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1145 =item B<GetNumOfRingsWithSizeGreaterThan>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1146
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1147 $NumOfRings = $Bond->GetNumOfRingsWithSizeGreaterThan($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1148
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1149 Returns number of rings with size greater than specific I<RingSize> containing
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1150 I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1151
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1152 =item B<GetNumOfRingsWithSizeLessThan>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1153
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1154 $NumOfRings = $Bond->GetNumOfRingsWithSizeLessThan($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1155
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1156 Returns number of rings with size less than specific I<RingSize> containing I<Bond>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1157 in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1158
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1159 =item B<GetRings>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1160
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1161 @Rings = $Bond->GetRings();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1163 Returns an array of references to arrays containing ring atoms corressponding
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1164 to all rings containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1165
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1166 =item B<GetRingsWithEvenSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1167
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1168 @Rings = $Bond->GetRingsWithEvenSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1169
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1170 Returns an array of references to arrays containing ring atoms corressponding to all rings with even size
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1171 containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1172
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1173 =item B<GetRingsWithOddSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1174
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1175 @Rings = $Bond->GetRingsWithOddSize();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1176
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1177 Returns an array of references to arrays containing ring atoms corressponding to all rings with odd size
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1178 containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1179
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1180 =item B<GetRingsWithSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1181
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1182 @Rings = $Bond->GetRingsWithSize($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1183
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1184 Returns an array of references to arrays containing ring atoms corressponding to all rings with specific
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1185 I<RingSize >containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1186
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1187 =item B<GetRingsWithSizeGreaterThan>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1188
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1189 @Rings = $Bond->GetRingsWithSizeGreaterThan($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1190
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1191 Returns an array of references to arrays containing ring atoms corressponding to all rings with size
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1192 greater than specific I<RingSize >containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1193
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1194 =item B<GetRingsWithSizeLessThan>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1195
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1196 @Rings = $Bond->GetRingsWithSizeLessThan($RingSize);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1197
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1198 Returns an array of references to arrays containing ring atoms corressponding to all rings with size
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1199 less than specific I<RingSize >containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1200
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1201 =item B<GetSizeOfLargestRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1203 $Size = $Bond->GetSizeOfLargestRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1204
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1205 Returns size of the largest ring containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1206
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1207 =item B<GetSizeOfSmallestRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1208
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1209 $Size = $Bond->GetSizeOfSmallestRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1210
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1211 Returns size of the smallest ring containing I<Bond> in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1212
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1213 =item B<GetSmallestRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1214
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1215 @RingAtoms = $Bond->GetSmallestRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1216
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1217 Returns an array of ring I<Atoms> corresponding to the largest ring containing I<Bond>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1218 in a molecule.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1219
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1220 =item B<IsAromatic>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1221
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1222 $Status = $Bond->IsAromatic();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1223
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1224 Returns 1 or 0 based on whether it's an aromatic I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1225
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1226 =item B<IsBondStereochemistrySpecified>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1227
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1228 $Status = $Bond->IsBondStereochemistrySpecified();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1229
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1230 Returns 1 or 0 based on whether I<Bond>'s sterochemistry is specified.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1231
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1232 =item B<IsBondTypeSpecified>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1233
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1234 $Status = $Bond->IsBondTypeSpecified();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1235
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1236 Returns 1 or 0 based on whether I<Bond>'s type is specified.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1237
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1238 =item B<IsCis>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1239
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1240 $Status = $Bond->IsCis();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1241
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1242 Returns 1 or 0 based on whether it's a cis I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1243
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1244 =item B<IsCisOrTrans>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1245
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1246 $Status = $Bond->IsCisOrTrans();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1247
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1248 Returns 1 or 0 based on whether it's a cis or trans I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1249
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1250 =item B<IsCoordinate>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1251
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1252 $Status = $Bond->IsCoordinate();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1253
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1254 Returns 1 or 0 based on whether it's a coordinate or dative I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1255
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1256 =item B<IsDative>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1257
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1258 $Status = $Bond->IsDative();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1259
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1260 Returns 1 or 0 based on whether it's a coordinate or dative I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1261
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1262 =item B<IsDouble>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1263
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1264 $Status =$Bond->IsDouble();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1265
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1266 Returns 1 or 0 based on whether it's a double I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1267
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1268 =item B<IsDown>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1269
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1270 $Status = $Bond->IsDown();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1271
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1272 Returns 1 or 0 based on whether it's a hash or down single I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1273
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1274 =item B<IsDownward>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1275
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1276 $Return = $Bond->IsDownward();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1277
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1278 Returns 1 or 0 based on whether it's a downward I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1279
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1280 =item B<IsHash>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1281
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1282 $Status = $Bond->IsHash();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1283
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1284 Returns 1 or 0 based on whether it's a hash or down single I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1285
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1286 =item B<IsInRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1287
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1288 $Status = $Bond->IsInRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1289
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1290 Returns 1 or 0 based on whether I<Bond> is present in a ring.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1291
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1292 =item B<IsInRingOfSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1293
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1294 $Status = $Bond->IsInRingOfSize($Size);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1295
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1296 Returns 1 or 0 based on whether I<Bond> is present in a ring of specific I<Size>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1297
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1298 =item B<IsIonic>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1299
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1300 $Status = $Bond->IsIonic();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1301
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1302 Returns 1 or 0 based on whether it's an ionic I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1303
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1304 =item B<IsNotInRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1305
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1306 $Status = $Bond->IsNotInRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1307
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1308 Returns 1 or 0 based on whether I<Bond> is not present in a ring.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1309
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1310 =item B<IsOnlyInOneRing>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1311
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1312 $Status = $Bond->IsOnlyInOneRing();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1313
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1314 Returns 1 or 0 based on whether I<Bond> is only present in one ring.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1315
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1316 =item B<IsQuadruple>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1317
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1318 $Status = $Bond->IsQuadruple();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1319
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1320 Returns 1 or 0 based on whether it's a quadruple I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1321
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1322 =item B<IsQuintuple>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1323
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1324 $Status = $Bond->IsQuintuple();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1325
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1326 Returns 1 or 0 based on whether it's a quintuple I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1327
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1328 =item B<IsSextuple>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1329
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1330 $Status = $Bond->IsSextuple();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1331
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1332 Returns 1 or 0 based on whether it's a sextuple I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1333
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1334 =item B<IsSingle>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1335
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1336 $Status =$Bond->IsSingle();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1337
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1338 Returns 1 or 0 based on whether it's a single I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1339
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1340 =item B<IsTriple>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1341
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1342 $Status =$Bond->IsTriple();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1343
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1344 Returns 1 or 0 based on whether it's a triple I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1345
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1346 =item B<IsTautomeric>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1347
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1348 $Status = $Bond->IsTautomeric();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1349
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1350 Returns 1 or 0 based on whether it's a I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1351
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1352 =item B<IsTrans>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1353
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1354 $Status = $Bond->IsTrans();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1355
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1356 Returns 1 or 0 based on whether it's a trans I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1357
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1358 =item B<IsUp>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1359
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1360 $Status = $Bond->IsUp();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1361
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1362 Returns 1 or 0 based on whether it's a up I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1363
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1364 =item B<IsUpOrDown>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1365
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1366 $Status = $Bond->IsUpOrDown();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1367
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1368 Returns 1 or 0 based on whether it's an up or down I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1369
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1370 =item B<IsUpward>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1371
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1372 $Status = $Bond->IsUpward();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1373
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1374 Returns 1 or 0 based on whether it's an upward I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1375
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1376 =item B<IsWedge>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1377
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1378 $Status = $Bond->IsWedge();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1379
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1380 Returns 1 or 0 based on whether it's a wedge I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1381
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1382 =item B<IsWedgeOrHash>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1383
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1384 $Status = $Bond->IsWedgeOrHash();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1385
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1386 Returns 1 or 0 based on whether it's a wedge or hash I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1387
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1388 =item B<SetAtoms>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1389
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1390 $Bond->SetAtoms($AtomsRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1391 $Bond->SetAtoms(@Atoms);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1392
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1393 Set atoms of I<Bond> to atoms in I<Atoms> array or in a reference to an array of atoms
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1394 and return I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1395
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1396 =item B<SetBondOrder>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1397
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1398 $Bond->SetBondOrder($BondOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1399
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1400 Sets bond order of I<Bond> to specified I<BondOrder> and returns I<Bond>. Possible bond order
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1401 values: 1 = Single, 1.5 = Aromatic, 2 = Double, 3 = Triple, 4 = Quadruple, 5 = Quintuple,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1402 6 = Sextuple, 7 = Septuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1403
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1404 Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1405
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1406 . BondType property is automatically assigned using default BondType
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1407 values for specified BondOrder.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1408 . BondType values can also be explicit set.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1409 . To make bonds aromatic in a ring, explicitly set "Aromatic"
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1410 property for bond/atoms and make sure appropriate BondOrder
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1411 values are assigned.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1412 . Dative or coordinate bond types are treated as single bond types with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1413 explicit formal charge of + and - on first and second bond atoms.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1414
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1415 =item B<SetBondType>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1416
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1417 $Bond->SetBondType($BondType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1418
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1419 Sets bond type for I<Bond> to specified I<BondType> and returns I<Bond>. Possible bond type
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1420 values for different bond orders are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1421
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1422 0: None, Ionic, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1423 1 : Single, Dative, Coordinate, SingleOrDouble, SingleOrAromatic, Tautomeric
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1424 2 : Double, SingleOrDouble, DoubleOrAromatic, Tautomeric
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1425 3 : Triple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1426 4 : Quadruple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1427 5 : Quintuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1428 6 : Sextuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1429 7 : Septuple
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1430 1.5 : Aromatic, Resonance, SingleOrAromatic, DoubleOrAromatic
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1431
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1432 Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1433
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1434 o BondType Any is valid for all BondOrders.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1435 o BondOrder property is automatically assigned using default BondOrder
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1436 values for specified BondType.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1437
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1438 Possible bond stereochemistry values for different bond orders are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1439
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1440 0 : None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1441 1 : Wedge, Up, Hash, Down, Wavy, WedgeOrHash, UpOrDown, Upward, Downward,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1442 None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1443 2 : Cis, Trans, Z, E, DoubleCross, CisOrTrans, None, Unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1444
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1445 =item B<SetBondStereochemistry>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1446
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1447 $Bond = $Bond->SetBondStereochemistry($BondStereochemistry);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1448
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1449 Sets bond stereochemistry of I<Bond> to specified I<BondStereochemistry> and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1450 returns I<Bond>. Possible I<BondStereoChemistry> values for different bond orders
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1451 are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1452
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1453 BondOrder: 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1454
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1455 None, Unspecified: Not a stereo bond or unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1456
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1457 Wedge, Up : Wedge end pointing up
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1458 Hash, Down: Wedge end pointing down
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1459 Wavy, WedgeOrHash, UpOrDown: Wedge end up or down
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1460
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1461 Upward: Single bond around cis/trans double bonds pointing upward
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1462 Downward: Single bond around cis/trans double bonds pointing upward
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1463
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1464 Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1465
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1466 o Wedge starts at begin atom of a bond making wedge pointed end always
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1467 at this atom.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1468 o Upward/downward bonds start at atoms involved in cis/trans double bonds.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1469
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1470 BondOrder: 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1471
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1472 None, Unspecified: Not a stereo bond or unspecified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1473
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1474 Z, cis: Similar groups on same side of double bond
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1475 E, trans: Similar groups on different side of double bond
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1476
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1477 CisOrTrans, DoubleCross: cis or trans
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1478
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1479 =item B<StringifyBond>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1480
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1481 $BondString = $Bond->StringifyBond();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1482
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1483 Returns a string containing information about I<bond> object.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1484
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1485 =item B<SwitchBondFromAndToAtoms>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1486
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1487 $Bond = $Bond->SwitchBondFromAndToAtoms();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1488
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1489 Swaps bond from and to atoms in I<Bond> and returns I<Bond>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1490
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1491 =back
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1492
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1493 =head1 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1494
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1495 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1496
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1497 =head1 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1498
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1499 Atom.pm, Molecule.pm
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1500
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1501 =head1 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1502
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1503 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1504
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1505 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1506
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1507 MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1508 the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1509 Software Foundation; either version 3 of the License, or (at your option)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1510 any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1511
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1512 =cut