| 1 | 1 <html> | 
|  | 2 <head> | 
|  | 3 <title>MayaChemTools:Documentation:Molecule.pm</title> | 
|  | 4 <meta http-equiv="content-type" content="text/html;charset=utf-8"> | 
|  | 5 <link rel="stylesheet" type="text/css" href="../../css/MayaChemTools.css"> | 
|  | 6 </head> | 
|  | 7 <body leftmargin="20" rightmargin="20" topmargin="10" bottommargin="10"> | 
|  | 8 <br/> | 
|  | 9 <center> | 
|  | 10 <a href="http://www.mayachemtools.org" title="MayaChemTools Home"><img src="../../images/MayaChemToolsLogo.gif" border="0" alt="MayaChemTools"></a> | 
|  | 11 </center> | 
|  | 12 <br/> | 
|  | 13 <div class="DocNav"> | 
|  | 14 <table width="100%" border=0 cellpadding=0 cellspacing=2> | 
|  | 15 <tr align="left" valign="top"><td width="33%" align="left"><a href="./MolecularFormula.html" title="MolecularFormula.html">Previous</a>  <a href="./index.html" title="Table of Contents">TOC</a>  <a href="./MoleculeFileIO.html" title="MoleculeFileIO.html">Next</a></td><td width="34%" align="middle"><strong>Molecule.pm</strong></td><td width="33%" align="right"><a href="././code/Molecule.html" title="View source code">Code</a> | <a href="./../pdf/Molecule.pdf" title="PDF US Letter Size">PDF</a> | <a href="./../pdfgreen/Molecule.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a> | <a href="./../pdfa4/Molecule.pdf" title="PDF A4 Size">PDFA4</a> | <a href="./../pdfa4green/Molecule.pdf" title="PDF A4 Size with narrow margins: www.changethemargins.com">PDFA4Green</a></td></tr> | 
|  | 16 </table> | 
|  | 17 </div> | 
|  | 18 <p> | 
|  | 19 </p> | 
|  | 20 <h2>NAME</h2> | 
|  | 21 <p>Molecule - Molecule class</p> | 
|  | 22 <p> | 
|  | 23 </p> | 
|  | 24 <h2>SYNOPSIS</h2> | 
|  | 25 <p>use Molecule;</p> | 
|  | 26 <p>use Molecule qw(:all);</p> | 
|  | 27 <p> | 
|  | 28 </p> | 
|  | 29 <h2>DESCRIPTION</h2> | 
|  | 30 <p><strong>Molecule</strong> class provides the following methods:</p> | 
|  | 31 <p> <a href="#new">new</a>, <a href="#addatom">AddAtom</a>, <a href="#addatoms">AddAtoms</a>, <a href="#addbond">AddBond</a>, <a href="#addbonds">AddBonds</a>, <a href="#addhydrogens">AddHydrogens</a>, <a href="#addpolarhydrogens">AddPolarHydrogens</a> | 
|  | 32 , <a href="#clearrings">ClearRings</a>, <a href="#copy">Copy</a>, <a href="#deletearomaticity">DeleteAromaticity</a>, <a href="#deleteatom">DeleteAtom</a>, <a href="#deleteatoms">DeleteAtoms</a>, <a href="#deletebond">DeleteBond</a> | 
|  | 33 , <a href="#deletebonds">DeleteBonds</a>, <a href="#deletehydrogens">DeleteHydrogens</a>, <a href="#deletepolarhydrogens">DeletePolarHydrogens</a>, <a href="#detectaromaticity">DetectAromaticity</a> | 
|  | 34 , <a href="#detectrings">DetectRings</a>, <a href="#formatelementalcompositioninformation">FormatElementalCompositionInformation</a>, <a href="#getallatompaths">GetAllAtomPaths</a> | 
|  | 35 , <a href="#getallatompathsstartingat">GetAllAtomPathsStartingAt</a>, <a href="#getallatompathsstartingatwithlength">GetAllAtomPathsStartingAtWithLength</a> | 
|  | 36 , <a href="#getallatompathsstartingatwithlengthupto">GetAllAtomPathsStartingAtWithLengthUpto</a>, <a href="#getallatompathswithlength">GetAllAtomPathsWithLength</a> | 
|  | 37 , <a href="#getallatompathswithlengthupto">GetAllAtomPathsWithLengthUpto</a>, <a href="#getaromaticrings">GetAromaticRings</a>, <a href="#getaromaticitymodel">GetAromaticityModel</a> | 
|  | 38 , <a href="#getatomneighborhoods">GetAtomNeighborhoods</a>, <a href="#getatomneighborhoodswithradiusupto">GetAtomNeighborhoodsWithRadiusUpto</a> | 
|  | 39 , <a href="#getatomneighborhoodswithsuccessoratoms">GetAtomNeighborhoodsWithSuccessorAtoms</a> | 
|  | 40 , <a href="#getatomneighborhoodswithsuccessoratomsandradiusupto">GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto</a>, <a href="#getatompathbonds">GetAtomPathBonds</a> | 
|  | 41 , <a href="#getatompaths">GetAtomPaths</a>, <a href="#getatompathsbetween">GetAtomPathsBetween</a>, <a href="#getatompathsstartingat">GetAtomPathsStartingAt</a> | 
|  | 42 , <a href="#getatompathsstartingatwithlength">GetAtomPathsStartingAtWithLength</a>, <a href="#getatompathsstartingatwithlengthupto">GetAtomPathsStartingAtWithLengthUpto</a> | 
|  | 43 , <a href="#getatompathswithlength">GetAtomPathsWithLength</a>, <a href="#getatompathswithlengthupto">GetAtomPathsWithLengthUpto</a>, <a href="#getatoms">GetAtoms</a>, <a href="#getbonds">GetBonds</a>, <a href="#getcharge">GetCharge</a> | 
|  | 44 , <a href="#getconnectedcomponents">GetConnectedComponents</a>, <a href="#getconnectedcomponentsatoms">GetConnectedComponentsAtoms</a>, <a href="#getdimensionality">GetDimensionality</a> | 
|  | 45 , <a href="#getelementalcomposition">GetElementalComposition</a>, <a href="#getelementsandnonelements">GetElementsAndNonElements</a>, <a href="#getexactmass">GetExactMass</a>, <a href="#getformalcharge">GetFormalCharge</a> | 
|  | 46 , <a href="#getfreeradicalelectrons">GetFreeRadicalElectrons</a>, <a href="#getfusedandnonfusedrings">GetFusedAndNonFusedRings</a>, <a href="#getlargestconnectedcomponent">GetLargestConnectedComponent</a> | 
|  | 47 , <a href="#getlargestconnectedcomponentatoms">GetLargestConnectedComponentAtoms</a>, <a href="#getlargestring">GetLargestRing</a>, <a href="#getmolecularformula">GetMolecularFormula</a> | 
|  | 48 , <a href="#getmolecularweight">GetMolecularWeight</a>, <a href="#getnumofaromaticrings">GetNumOfAromaticRings</a>, <a href="#getnumofatoms">GetNumOfAtoms</a>, <a href="#getnumofbonds">GetNumOfBonds</a> | 
|  | 49 , <a href="#getnumofconnectedcomponents">GetNumOfConnectedComponents</a>, <a href="#getnumofelementsandnonelements">GetNumOfElementsAndNonElements</a>, <a href="#getnumofheavyatoms">GetNumOfHeavyAtoms</a> | 
|  | 50 , <a href="#getnumofhydrogenatoms">GetNumOfHydrogenAtoms</a>, <a href="#getnumofmissinghydrogenatoms">GetNumOfMissingHydrogenAtoms</a>, <a href="#getnumofnonhydrogenatoms">GetNumOfNonHydrogenAtoms</a> | 
|  | 51 , <a href="#getnumofrings">GetNumOfRings</a>, <a href="#getnumofringswithevensize">GetNumOfRingsWithEvenSize</a>, <a href="#getnumofringswithoddsize">GetNumOfRingsWithOddSize</a> | 
|  | 52 , <a href="#getnumofringswithsize">GetNumOfRingsWithSize</a>, <a href="#getnumofringswithsizegreaterthan">GetNumOfRingsWithSizeGreaterThan</a> | 
|  | 53 , <a href="#getnumofringswithsizelessthan">GetNumOfRingsWithSizeLessThan</a>, <a href="#getringbonds">GetRingBonds</a>, <a href="#getringbondsfromrings">GetRingBondsFromRings</a>, <a href="#getrings">GetRings</a> | 
|  | 54 , <a href="#getringswithevensize">GetRingsWithEvenSize</a>, <a href="#getringswithoddsize">GetRingsWithOddSize</a>, <a href="#getringswithsize">GetRingsWithSize</a> | 
|  | 55 , <a href="#getringswithsizegreaterthan">GetRingsWithSizeGreaterThan</a>, <a href="#getringswithsizelessthan">GetRingsWithSizeLessThan</a>, <a href="#getsizeoflargestring">GetSizeOfLargestRing</a> | 
|  | 56 , <a href="#getsizeofsmallestring">GetSizeOfSmallestRing</a>, <a href="#getsmallestring">GetSmallestRing</a>, <a href="#getspinmultiplicity">GetSpinMultiplicity</a> | 
|  | 57 , <a href="#getsupportedaromaticitymodels">GetSupportedAromaticityModels</a>, <a href="#gettopologicallysortedatoms">GetTopologicallySortedAtoms</a>, <a href="#getvalencemodel">GetValenceModel</a> | 
|  | 58 , <a href="#hasaromaticatomsinrings">HasAromaticAtomsInRings</a>, <a href="#hasaromaticatomsnotinrings">HasAromaticAtomsNotInRings</a>, <a href="#hasaromaticrings">HasAromaticRings</a>, <a href="#hasatom">HasAtom</a> | 
|  | 59 , <a href="#hasbond">HasBond</a>, <a href="#hasfusedrings">HasFusedRings</a>, <a href="#hasnorings">HasNoRings</a>, <a href="#hasonlyonering">HasOnlyOneRing</a>, <a href="#hasrings">HasRings</a>, <a href="#isaromatic">IsAromatic</a> | 
|  | 60 , <a href="#ismolecule">IsMolecule</a>, <a href="#isringaromatic">IsRingAromatic</a>, <a href="#issupportedaromaticitymodel">IsSupportedAromaticityModel</a>, <a href="#isthreedimensional">IsThreeDimensional</a> | 
|  | 61 , <a href="#istwodimensional">IsTwoDimensional</a>, <a href="#keeplargestcomponent">KeepLargestComponent</a>, <a href="#kekulizearomaticatoms">KekulizeAromaticAtoms</a>, <a href="#newatom">NewAtom</a>, <a href="#newbond">NewBond</a> | 
|  | 62 , <a href="#setactiverings">SetActiveRings</a>, <a href="#setaromaticitymodel">SetAromaticityModel</a>, <a href="#setid">SetID</a>, <a href="#setvalencemodel">SetValenceModel</a>, <a href="#stringifymolecule">StringifyMolecule</a> | 
|  | 63 </p><p>The following methods can also be used as functions:</p> | 
|  | 64 <p>FormatElementalCompositionInformation, IsMolecule</p> | 
|  | 65 <p><strong>Molecule</strong> class is derived from <strong>ObjectProperty</strong> base class which provides methods not explicitly | 
|  | 66 defined in <strong>Molecule</strong> or <strong>ObjectProperty</strong> class using Perl's AUTOLOAD functionality. These methods | 
|  | 67 are generated on-the-fly for a specified object property:</p> | 
|  | 68 <div class="OptionsBox"> | 
|  | 69     Set<PropertyName>(<PropertyValue>); | 
|  | 70 <br/>    $PropertyValue = Get<PropertyName>(); | 
|  | 71 <br/>    Delete<PropertyName>();</div> | 
|  | 72 <p> | 
|  | 73 </p> | 
|  | 74 <h2>METHODS</h2> | 
|  | 75 <dl> | 
|  | 76 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt> | 
|  | 77 <dd> | 
|  | 78 <div class="OptionsBox"> | 
|  | 79     $NewMolecule = new Molecule([%PropertyNameAndValues]);</div> | 
|  | 80 <p>Using specified <em>Atom</em> property names and values hash, <strong>new</strong> method creates a new object | 
|  | 81 and returns a reference to newly created <strong>Atom</strong> object. By default, the following properties are | 
|  | 82 initialized:</p> | 
|  | 83 <div class="OptionsBox"> | 
|  | 84     ID = SequentialObjectID | 
|  | 85 <br/>    Name = "Molecule <SequentialObjectID>"</div> | 
|  | 86 <p>Examples:</p> | 
|  | 87 <div class="OptionsBox"> | 
|  | 88     $Molecule = new Molecule();</div> | 
|  | 89 <div class="OptionsBox"> | 
|  | 90     $WaterMolecule = new Molecule('Name' => 'Water');</div> | 
|  | 91 <div class="OptionsBox"> | 
|  | 92     $Oxygen = new Atom('AtomSymbol' => 'O', 'XYZ' => [0, 0, 0]); | 
|  | 93 <br/>    $Hydrogen1 = new Atom('AtomSymbol' => 'H', | 
|  | 94                           'XYZ' => [0.7144, 0.4125, 0]); | 
|  | 95 <br/>    $Hydrogen2 = new Atom('AtomSymbol' => 'H', | 
|  | 96                           'XYZ' => [1.1208, -0.2959, 0]); | 
|  | 97 <br/>    $WaterMolecule->AddAtoms($Oxygen, $Hydrogen1, $Hydrogen2);</div> | 
|  | 98 <div class="OptionsBox"> | 
|  | 99     $Bond1 = new Bond('Atoms' => [$Oxygen, $Hydrogen1], | 
|  | 100                       'BondOrder' => 1); | 
|  | 101 <br/>    $Bond2 = new Bond('Atoms' => [$Oxygen, $Hydrogen2], | 
|  | 102                       'BondOrder' => 1); | 
|  | 103 <br/>    $WaterMolecule->AddBonds($Bond1, $Bond2);</div> | 
|  | 104 </dd> | 
|  | 105 <dt><strong><a name="addatom" class="item"><strong>AddAtom</strong></a></strong></dt> | 
|  | 106 <dd> | 
|  | 107 <div class="OptionsBox"> | 
|  | 108     $Molecule->AddAtom($Atom);</div> | 
|  | 109 <p>Adds an <em>Atom</em> to a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 110 </dd> | 
|  | 111 <dt><strong><a name="addatoms" class="item"><strong>AddAtoms</strong></a></strong></dt> | 
|  | 112 <dd> | 
|  | 113 <div class="OptionsBox"> | 
|  | 114     $Molecule->AddAtoms(@Atoms);</div> | 
|  | 115 <p>Adds <em>Atoms</em> to a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 116 </dd> | 
|  | 117 <dt><strong><a name="addbond" class="item"><strong>AddBond</strong></a></strong></dt> | 
|  | 118 <dd> | 
|  | 119 <div class="OptionsBox"> | 
|  | 120     $Molecule->AddBond($Bond);</div> | 
|  | 121 <p>Adds a <em>Bond</em> to a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 122 </dd> | 
|  | 123 <dt><strong><a name="addbonds" class="item"><strong>AddBonds</strong></a></strong></dt> | 
|  | 124 <dd> | 
|  | 125 <div class="OptionsBox"> | 
|  | 126     $Molecule->AddBonds(@Bonds);</div> | 
|  | 127 <p>Adds <em>Bonds</em> to a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 128 </dd> | 
|  | 129 <dt><strong><a name="addhydrogens" class="item"><strong>AddHydrogens</strong></a></strong></dt> | 
|  | 130 <dd> | 
|  | 131 <div class="OptionsBox"> | 
|  | 132     $NumOfHydrogensAdded = $Molecule->AddHydrogens();</div> | 
|  | 133 <p>Adds hydrogens to each atom in a <em>Molecule</em> and returns total number of hydrogens | 
|  | 134 added. The current release of MayaChemTools doesn't assign hydrogen positions.</p> | 
|  | 135 </dd> | 
|  | 136 <dt><strong><a name="addpolarhydrogens" class="item"><strong>AddPolarHydrogens</strong></a></strong></dt> | 
|  | 137 <dd> | 
|  | 138 <div class="OptionsBox"> | 
|  | 139     $NumOfHydrogensAdded = $Molecule->AddPolarHydrogens();</div> | 
|  | 140 <p>Adds hydrogens to each polar atom - N, O, P or S - in a <em>Molecule</em> and returns total | 
|  | 141 number of polar hydrogens added. The current release of MayaChemTools doesn't | 
|  | 142 assign hydrogen positions.</p> | 
|  | 143 </dd> | 
|  | 144 <dt><strong><a name="clearrings" class="item"><strong>ClearRings</strong></a></strong></dt> | 
|  | 145 <dd> | 
|  | 146 <div class="OptionsBox"> | 
|  | 147     $Molecule->ClearRings();</div> | 
|  | 148 <p>Deletes all rings associated with <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 149 </dd> | 
|  | 150 <dt><strong><a name="copy" class="item"><strong>Copy</strong></a></strong></dt> | 
|  | 151 <dd> | 
|  | 152 <div class="OptionsBox"> | 
|  | 153     $MoleculeCopy = $Molecule->Copy();</div> | 
|  | 154 <p>Copies <em>Molecule</em> and its associated data using <strong>Storable::dclone</strong> and returns a new | 
|  | 155 <strong>Molecule</strong> object.</p> | 
|  | 156 </dd> | 
|  | 157 <dt><strong><a name="deletearomaticity" class="item"><strong>DeleteAromaticity</strong></a></strong></dt> | 
|  | 158 <dd> | 
|  | 159 <div class="OptionsBox"> | 
|  | 160     $Molecule->DeleteAromaticity();</div> | 
|  | 161 <p>Deletes aromatic property associated with all atoms and bonds in a <em>Molecule</em> and returns | 
|  | 162 <em>Molecule</em>.</p> | 
|  | 163 </dd> | 
|  | 164 <dt><strong><a name="deleteatom" class="item"><strong>DeleteAtom</strong></a></strong></dt> | 
|  | 165 <dd> | 
|  | 166 <div class="OptionsBox"> | 
|  | 167     $Molecule->DeleteAtom($Atom);</div> | 
|  | 168 <p>Deletes <em>Atom</em> from a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 169 </dd> | 
|  | 170 <dt><strong><a name="deleteatoms" class="item"><strong>DeleteAtoms</strong></a></strong></dt> | 
|  | 171 <dd> | 
|  | 172 <div class="OptionsBox"> | 
|  | 173     $Molecule->DeleteAtoms(@Atoms);</div> | 
|  | 174 <p>Deletes <em>Atoms</em> from a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 175 </dd> | 
|  | 176 <dt><strong><a name="deletebond" class="item"><strong>DeleteBond</strong></a></strong></dt> | 
|  | 177 <dd> | 
|  | 178 <div class="OptionsBox"> | 
|  | 179     $Molecule->DeleteBond($Bond);</div> | 
|  | 180 <p>Deletes <em>Bond</em> from a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 181 </dd> | 
|  | 182 <dt><strong><a name="deletebonds" class="item"><strong>DeleteBonds</strong></a></strong></dt> | 
|  | 183 <dd> | 
|  | 184 <div class="OptionsBox"> | 
|  | 185     $Molecule->DeleteBonds(@Bonds);</div> | 
|  | 186 <p>Deletes <em>Bonds</em> from a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 187 </dd> | 
|  | 188 <dt><strong><a name="deletehydrogens" class="item"><strong>DeleteHydrogens</strong></a></strong></dt> | 
|  | 189 <dd> | 
|  | 190 <div class="OptionsBox"> | 
|  | 191     $NumOfHydrogensDeleted = $Molecule->DeleteHydrogens();</div> | 
|  | 192 <p>Removes hydrogens from each atom in a <em>Molecule</em> and returns total number of hydrogens | 
|  | 193 deleted.</p> | 
|  | 194 </dd> | 
|  | 195 <dt><strong><a name="deletepolarhydrogens" class="item"><strong>DeletePolarHydrogens</strong></a></strong></dt> | 
|  | 196 <dd> | 
|  | 197 <div class="OptionsBox"> | 
|  | 198     $NumOfHydrogensDeleted = $Molecule->DeletePolarHydrogens();</div> | 
|  | 199 <p>Removes hydrogens to each polar atom - N, O, P or S - in a <em>Molecule</em> and returns total | 
|  | 200 number of polar hydrogens deleted.</p> | 
|  | 201 </dd> | 
|  | 202 <dt><strong><a name="detectaromaticity" class="item"><strong>DetectAromaticity</strong></a></strong></dt> | 
|  | 203 <dd> | 
|  | 204 <div class="OptionsBox"> | 
|  | 205     $Molecule->DetectAromaticity();</div> | 
|  | 206 <p>Associates <em>Aromatic</em> property to atoms and bonds involved in aromatic rings or ring | 
|  | 207 systems in a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 208 <p>This method assumes the ring detection has already been perfomed using <strong>DetectRings</strong>. | 
|  | 209 And any existing <em>Aromatic</em> property associated with atoms and bonds is deleted before | 
|  | 210 performing aromaticity detection.</p> | 
|  | 211 <p>What is aromaticity? [ Ref 124 ] It's in the code of the implementer, did you | 
|  | 212 say? Agree. The implementation of aromaticity varies widely across different | 
|  | 213 packages [ Ref 125 ]; additionally, the implementation details are not always | 
|  | 214 completely available, and it's not possible to figure out the exact implementation | 
|  | 215 of aromaticity across various packages. Using the publicly available information, | 
|  | 216 however, one can try to reproduce the available results to the extent possible, | 
|  | 217 along with parameterizing all the control parameters used to implement different | 
|  | 218 aromaticity models, and that's exactly what the current release of MayaChemTools | 
|  | 219 does.</p> | 
|  | 220 <p>The implementation of aromaticity corresponding to various aromaticity models in | 
|  | 221 MayaChemTools package is driven by an external CSV file AromaticityModelsData.csv, | 
|  | 222 which is distributed with the package and is available in lib/data directory. The CSV | 
|  | 223 files contains names of supported aromaticity models, along with various control | 
|  | 224 parameters and their values. This file is loaded and processed during instantiation | 
|  | 225 of Molecule class and data corresponding to specific aromaticity model are used | 
|  | 226 to detect aromaticity for that model. Any new aromaticity model added to the | 
|  | 227 aromaticity data file, using different combinations of values for existing control | 
|  | 228 parameters, would work without any changes to the code; the addition of any new | 
|  | 229 control parameters, however, requires its implementation in the code used to | 
|  | 230 calculate number of pi electrons available towards delocalization in a ring or ring | 
|  | 231 systems.</p> | 
|  | 232 <p>The current release of MayaChemTools package supports these aromaticity | 
|  | 233 models: MDLAromaticityModel, TriposAromaticityModel, MMFFAromaticityModel, | 
|  | 234 ChemAxonBasicAromaticityModel, ChemAxonGeneralAromaticityModel, | 
|  | 235 DaylightAromaticityModel, MayaChemToolsAromaticityModel.</p> | 
|  | 236 <p>The current list of control parameters available to detect aromaticity corresponding | 
|  | 237 to different aromaticity models are: AllowHeteroRingAtoms, HeteroRingAtomsList, | 
|  | 238 AllowExocyclicDoubleBonds, AllowHomoNuclearExocyclicDoubleBonds, | 
|  | 239 AllowElectronegativeRingAtomExocyclicDoubleBonds, AllowRingAtomFormalCharge, | 
|  | 240 AllowHeteroRingAtomFormalCharge, MinimumRingSize. The values for these control | 
|  | 241 parameters are specified in AromaticityModelsData.csv file.</p> | 
|  | 242 <p>Although definition of aromaticity differs across various aromaticity models, a ring | 
|  | 243 or a ring system containing 4n + 2 pi electrons (Huckel's rule) corresponding to | 
|  | 244 alternate single and double bonds, in general, is considered aromatic.</p> | 
|  | 245 <p>The available valence free electrons on heterocyclic ring atoms, involved in two single | 
|  | 246 ring bonds, are also allowed to participate in pi electron delocalizaiton for most of | 
|  | 247 the supported aromaticity models.</p> | 
|  | 248 <p>The presence of exocyclic terminal double bond on ring atoms involved in pi electron | 
|  | 249 delocalization is only allowed for some of the aromaticity models. Additionally, the type | 
|  | 250 atoms involved in exocyclic terminal double bonds may result in making a ring or ring | 
|  | 251 system non-aromatic.</p> | 
|  | 252 <p>For molecules containing fused rings, each fused ring set is considered as one aromatic | 
|  | 253 system for counting pi electrons to satisfy Huckel's rule; In case of a failure, rings in | 
|  | 254 fused set are treated individually for aromaticity detection. Additionally, non-fused | 
|  | 255 rings are handled on their own during aromaticity detection.</p> | 
|  | 256 </dd> | 
|  | 257 <dt><strong><a name="detectrings" class="item"><strong>DetectRings</strong></a></strong></dt> | 
|  | 258 <dd> | 
|  | 259 <div class="OptionsBox"> | 
|  | 260     $Molecule->DetectRings();</div> | 
|  | 261 <p>Detects rings in a <em>Molecule</em> and returns <em>Molecule</em>. Ring detection is performed using | 
|  | 262 <strong>DetectCycles</strong> method avaible in <strong>Graph</strong> class which in turn uses methods available | 
|  | 263 <strong>Graph::CyclesDetection</strong> class. <strong>Graph::CyclesDetection</strong> class implements collapsing path graph | 
|  | 264 [Ref 31] methodology to detect all cycles in a graph.</p> | 
|  | 265 </dd> | 
|  | 266 <dt><strong><a name="formatelementalcompositioninformation" class="item"><strong>FormatElementalCompositionInformation</strong></a></strong></dt> | 
|  | 267 <dd> | 
|  | 268 <div class="OptionsBox"> | 
|  | 269     $FormattedInfo = $Molecule->FormatElementalCompositionInformation( | 
|  | 270                      $ElementsRef, $ElementCompositionRef, | 
|  | 271                      [$Precision]); | 
|  | 272 <br/>    $FormattedInfo = Molecule::FormatElementalCompositionInformation( | 
|  | 273                      $ElementsRef, $ElementCompositionRef, | 
|  | 274                      [$Precision]);</div> | 
|  | 275 <p>Using <em>ElementsRef</em> and <em>ElementCompositionRef</em> arrays referneces containg informatio | 
|  | 276 about elements and their composition, formats elemental composition information and returns | 
|  | 277 a <em>FormattedInfo</em> string. Defaule <em>Precision</em> value: <em>2</em>.</p> | 
|  | 278 </dd> | 
|  | 279 <dt><strong><a name="getaromaticitymodel" class="item"><strong>GetAromaticityModel</strong></a></strong></dt> | 
|  | 280 <dd> | 
|  | 281 <div class="OptionsBox"> | 
|  | 282     $AromaticityModel = $Molecule->GetAromaticityModel();</div> | 
|  | 283 <p>Returns name of <strong>AromaticityModel</strong> set for <em>Molecule</em> corresponding to <strong>AromaticityModel</strong> | 
|  | 284 property or default model name of <strong>MayaChemToolsAromaticityModel</strong>.</p> | 
|  | 285 </dd> | 
|  | 286 <dt><strong><a name="getallatompaths" class="item"><strong>GetAllAtomPaths</strong></a></strong></dt> | 
|  | 287 <dd> | 
|  | 288 <div class="OptionsBox"> | 
|  | 289     $AtomPathsRef = $Molecule->GetAllAtomPaths([$AllowCycles]);</div> | 
|  | 290 <p>Returns all paths as a reference to an array containing reference to arrays with path | 
|  | 291 <strong>Atom</strong> objects.</p> | 
|  | 292 <p>Path atoms correspond to to all possible paths for each atom in molecule with all | 
|  | 293 possible lengths and sharing of bonds in paths traversed. By default, rings are | 
|  | 294 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 295 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 296 <strong>GetAtomPaths</strong> method.</p> | 
|  | 297 </dd> | 
|  | 298 <dt><strong><a name="getallatompathsstartingat" class="item"><strong>GetAllAtomPathsStartingAt</strong></a></strong></dt> | 
|  | 299 <dd> | 
|  | 300 <div class="OptionsBox"> | 
|  | 301     $AtomPathsRef = $Molecule->GetAllAtomPathsStartingAt($StartAtom, | 
|  | 302                     [$AllowCycles]);</div> | 
|  | 303 <p>Returns all atom paths starting from <em>StartAtom</em> as a reference to an array containing | 
|  | 304 reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 305 <p>Path atoms atoms correspond to to all possible paths for specified atom in molecule with all | 
|  | 306 possible lengths and sharing of bonds in paths traversed. By default, rings are | 
|  | 307 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 308 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 309 <strong>GetAtomPathsStartingAt</strong>  method.</p> | 
|  | 310 </dd> | 
|  | 311 <dt><strong><a name="getallatompathsstartingatwithlength" class="item"><strong>GetAllAtomPathsStartingAtWithLength</strong></a></strong></dt> | 
|  | 312 <dd> | 
|  | 313 <div class="OptionsBox"> | 
|  | 314     $AtomPathsRef = $Molecule->GetAllAtomPathsStartingAtWithLength( | 
|  | 315                     $StartAtom, $Length, [$AllowCycles]);</div> | 
|  | 316 <p>Returns all atom paths starting from <em>StartAtom</em> with specified <em>Length</em>as a reference | 
|  | 317 to an array containing reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 318 <p>Path atoms atoms correspond to to all possible paths for specified atom in molecule with all | 
|  | 319 possible lengths and sharing of bonds in paths traversed. By default, rings are | 
|  | 320 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 321 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 322 <strong>GetAtomPathsStartingAtWithLength</strong>  method.</p> | 
|  | 323 </dd> | 
|  | 324 <dt><strong><a name="getallatompathsstartingatwithlengthupto" class="item"><strong>GetAllAtomPathsStartingAtWithLengthUpto</strong></a></strong></dt> | 
|  | 325 <dd> | 
|  | 326 <div class="OptionsBox"> | 
|  | 327     $AtomPathsRef = $Molecule->GetAllAtomPathsStartingAtWithLengthUpto( | 
|  | 328                     $StartAtom, $Length, [$AllowCycles]);</div> | 
|  | 329 <p>Returns atom paths starting from <em>StartAtom</em> with length up to <em>Length</em> as a reference | 
|  | 330 to an array containing reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 331 <p>Path atoms atoms correspond to all possible paths for specified atom in molecule with length | 
|  | 332 up to a specified length and sharing of bonds in paths traversed. By default, rings are | 
|  | 333 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 334 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 335 <em>GetAtomPathsStartingAtWithLengthUpto</em> method.</p> | 
|  | 336 </dd> | 
|  | 337 <dt><strong><a name="getallatompathswithlength" class="item"><strong>GetAllAtomPathsWithLength</strong></a></strong></dt> | 
|  | 338 <dd> | 
|  | 339 <div class="OptionsBox"> | 
|  | 340     $AtomPathsRef = $Molecule->GetAllAtomPathsWithLength($Length, | 
|  | 341                     [$AllowCycles]);</div> | 
|  | 342 <p>Returns all atom paths with specified <em>Length</em> as a reference to an array containing | 
|  | 343 reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 344 <p>Path atoms correspond to to all possible paths for each atom in molecule with length | 
|  | 345 up to a specified length and sharing of bonds in paths traversed. By default, rings are | 
|  | 346 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 347 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 348 as <em>GetAtomPathsWithLength</em> method.</p> | 
|  | 349 </dd> | 
|  | 350 <dt><strong><a name="getallatompathswithlengthupto" class="item"><strong>GetAllAtomPathsWithLengthUpto</strong></a></strong></dt> | 
|  | 351 <dd> | 
|  | 352 <div class="OptionsBox"> | 
|  | 353     $AtomPathsRef = $Molecule->GetAllAtomPathsWithLengthUpto($Length, | 
|  | 354                     [$AllowCycles]);</div> | 
|  | 355 <p>Returns all atom paths with length up to <em>Length</em> as a reference to an array containing | 
|  | 356 reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 357 <p>Path atoms correspond to to all possible paths for each atom in molecule with length | 
|  | 358 up to a specified length and sharing of bonds in paths traversed. By default, rings are | 
|  | 359 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 360 <p>For molecule without any rings, this method returns the same set of atom paths as | 
|  | 361 as <em>GetAtomPathsWithLengthUpto</em> method.</p> | 
|  | 362 </dd> | 
|  | 363 <dt><strong><a name="getaromaticrings" class="item"><strong>GetAromaticRings</strong></a></strong></dt> | 
|  | 364 <dd> | 
|  | 365 <div class="OptionsBox"> | 
|  | 366     @AtomaticRings = $Molecule->GetAromaticRings();</div> | 
|  | 367 <p>Returns aromatic rings as an array containing references to arrays of ring <em>Atom</em> objects | 
|  | 368 in a <em>Molecule</em>.</p> | 
|  | 369 </dd> | 
|  | 370 <dt><strong><a name="getatomneighborhoods" class="item"><strong>GetAtomNeighborhoods</strong></a></strong></dt> | 
|  | 371 <dd> | 
|  | 372 <div class="OptionsBox"> | 
|  | 373     @Neighborhoods = $Molecule->GetAtomNeighborhoods($StartAtom);</div> | 
|  | 374 <p>Returns atom neighborhoods around a <em>StartAtom</em> as an array containing references | 
|  | 375 to arrays with neighborhood <em>Atom</em> objects at possible radii.</p> | 
|  | 376 </dd> | 
|  | 377 <dt><strong><a name="getatomneighborhoodswithradiusupto" class="item"><strong>GetAtomNeighborhoodsWithRadiusUpto</strong></a></strong></dt> | 
|  | 378 <dd> | 
|  | 379 <div class="OptionsBox"> | 
|  | 380     @Neighborhoods = $Molecule->GetAtomNeighborhoodsWithRadiusUpto($StartAtom, | 
|  | 381                      $Radius);</div> | 
|  | 382 <p>Returns atom neighborhoods around a <em>StartAtom</em> as an array containing references | 
|  | 383 to arrays with neighborhood <em>Atom</em> objects up to <em>Radius</em>.</p> | 
|  | 384 </dd> | 
|  | 385 <dt><strong><a name="getatomneighborhoodswithsuccessoratoms" class="item"><strong>GetAtomNeighborhoodsWithSuccessorAtoms</strong></a></strong></dt> | 
|  | 386 <dd> | 
|  | 387 <div class="OptionsBox"> | 
|  | 388     @Neighborhoods = $Molecule->GetAtomNeighborhoodsWithSuccessorAtoms( | 
|  | 389                      $StartAtom);</div> | 
|  | 390 <p>Returns atom neighborhood around a specified <em>StartAtom</em>, along with their successor | 
|  | 391 connected atoms, collected at all radii as an array containing references to arrays with first | 
|  | 392 value corresponding to neighborhood atom at a specific radius and second value as reference | 
|  | 393 to an array containing its successor connected atoms.</p> | 
|  | 394 <p>For a neighborhood atom at each radius level, the successor connected atoms correspond to the | 
|  | 395 neighborhood atoms at the next radius level. Consequently, the neighborhood atoms at the last | 
|  | 396 radius level don't contain any successor atoms which fall outside the range of specified radius.</p> | 
|  | 397 </dd> | 
|  | 398 <dt><strong><a name="getatomneighborhoodswithsuccessoratomsandradiusupto" class="item"><strong>GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto</strong></a></strong></dt> | 
|  | 399 <dd> | 
|  | 400 <div class="OptionsBox"> | 
|  | 401     @Neighborhoods = $Molecule->GetAtomNeighborhoodsWithSuccessorAtomsAndRadiusUpto( | 
|  | 402                      $StartAtom, $Radius);</div> | 
|  | 403 <p>Returns atom neighborhood around a specified <em>StartAtom</em>, along with their successor | 
|  | 404 connected atoms, collected upto specified <em>Radiud</em> as an array containing references to arrays | 
|  | 405 with first value corresponding to neighborhood atom at a specific radius and second value as | 
|  | 406 reference to an array containing its successor connected atoms.</p> | 
|  | 407 <p>For a neighborhood atom at each radius level, the successor connected atoms correspond to the | 
|  | 408 neighborhood atoms at the next radius level. Consequently, the neighborhood atoms at the last | 
|  | 409 radius level don't contain any successor atoms which fall outside the range of specified radius.</p> | 
|  | 410 </dd> | 
|  | 411 <dt><strong><a name="getatompathbonds" class="item"><strong>GetAtomPathBonds</strong></a></strong></dt> | 
|  | 412 <dd> | 
|  | 413 <div class="OptionsBox"> | 
|  | 414     $Return = $Molecule->GetAtomPathBonds(@PathAtoms);</div> | 
|  | 415 <p>Returns an array containing <strong>Bond</strong> objects corresponding to successive pair of | 
|  | 416 atoms in <em>PathAtoms</em></p> | 
|  | 417 </dd> | 
|  | 418 <dt><strong><a name="getatompaths" class="item"><strong>GetAtomPaths</strong></a></strong></dt> | 
|  | 419 <dd> | 
|  | 420 <div class="OptionsBox"> | 
|  | 421     $AtomPathsRef = $Molecule->GetAtomPaths([$AllowCycles]);</div> | 
|  | 422 <p>Returns all paths as a reference to an array containing reference to arrays with path | 
|  | 423 <strong>Atom</strong> objects.</p> | 
|  | 424 <p>Path atoms correspond to to all possible paths for each atom in molecule with all | 
|  | 425 possible lengths and no sharing of bonds in paths traversed. By default, rings are | 
|  | 426 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 427 </dd> | 
|  | 428 <dt><strong><a name="getatompathsbetween" class="item"><strong>GetAtomPathsBetween</strong></a></strong></dt> | 
|  | 429 <dd> | 
|  | 430 <div class="OptionsBox"> | 
|  | 431     $AtomPathsRef = $Molecule->GetAtomPathsBetween($StartAtom, $EndAtom);</div> | 
|  | 432 <p>Returns all paths as between <em>StartAtom</em> and <em>EndAtom</em> as a reference to an array | 
|  | 433 containing reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 434 <p>For molecules with rings, atom paths array contains may contain two paths.</p> | 
|  | 435 </dd> | 
|  | 436 <dt><strong><a name="getatompathsstartingat" class="item"><strong>GetAtomPathsStartingAt</strong></a></strong></dt> | 
|  | 437 <dd> | 
|  | 438 <div class="OptionsBox"> | 
|  | 439     $AtomPathsRef = $Molecule->GetAtomPathsStartingAt($StartAtom, [$AllowCycles]);</div> | 
|  | 440 <p>Returns paths starting at <em>StartAtom</em> as a reference to an array containing reference to | 
|  | 441 arrays with path <strong>Atom</strong> objects.</p> | 
|  | 442 <p>Path atoms correspond to all possible paths for specified atom in molecule with all | 
|  | 443 possible lengths and no sharing of bonds in paths traversed. By default, rings are | 
|  | 444 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 445 </dd> | 
|  | 446 <dt><strong><a name="getatompathsstartingatwithlength" class="item"><strong>GetAtomPathsStartingAtWithLength</strong></a></strong></dt> | 
|  | 447 <dd> | 
|  | 448 <div class="OptionsBox"> | 
|  | 449     $AtomPathsRef = $Molecule->GetAtomPathsStartingAtWithLength($StartAtom, | 
|  | 450                     $Length, [$AllowCycles]);</div> | 
|  | 451 <p>Returns paths starting at <em>StartAtom</em> with length  <em>Length</em> as a reference to an array | 
|  | 452 containing reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 453 <p>Path atoms correspond to all possible paths for specified atom in molecule with length | 
|  | 454 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | 
|  | 455 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 456 </dd> | 
|  | 457 <dt><strong><a name="getatompathsstartingatwithlengthupto" class="item"><strong>GetAtomPathsStartingAtWithLengthUpto</strong></a></strong></dt> | 
|  | 458 <dd> | 
|  | 459 <div class="OptionsBox"> | 
|  | 460     $AtomPathsRef = $Molecule->GetAtomPathsStartingAtWithLengthUpto($StartAtom, | 
|  | 461                     $Length, [$AllowCycles]);</div> | 
|  | 462 <p>Returns paths starting at <em>StartAtom</em> with length up to <em>Length</em> as a reference to an array | 
|  | 463 containing reference to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 464 <p>Path atoms correspond to all possible paths for specified atom in molecule with length | 
|  | 465 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | 
|  | 466 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 467 </dd> | 
|  | 468 <dt><strong><a name="getatompathswithlength" class="item"><strong>GetAtomPathsWithLength</strong></a></strong></dt> | 
|  | 469 <dd> | 
|  | 470 <div class="OptionsBox"> | 
|  | 471     $AtomPathsRef = $Molecule->GetAtomPathsWithLength($Length, [$AllowCycles]);</div> | 
|  | 472 <p>Returns all paths with specified <em>Length</em> as a reference to an array containing reference | 
|  | 473 to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 474 <p>Path atoms correspond to all possible paths for each atom in molecule with length | 
|  | 475 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | 
|  | 476 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 477 </dd> | 
|  | 478 <dt><strong><a name="getatompathswithlengthupto" class="item"><strong>GetAtomPathsWithLengthUpto</strong></a></strong></dt> | 
|  | 479 <dd> | 
|  | 480 <div class="OptionsBox"> | 
|  | 481     $AtomPathsRef = $Molecule->GetAtomPathsWithLengthUpto($Length, [$AllowCycles]);</div> | 
|  | 482 <p>Returns all paths with length up to <em>Length</em> as a reference to an array containing reference | 
|  | 483 to arrays with path <strong>Atom</strong> objects.</p> | 
|  | 484 <p>Path atoms correspond to all possible paths for each atom in molecule with length | 
|  | 485 upto a specified length and no sharing of bonds in paths traversed. By default, rings are | 
|  | 486 included in paths. A path containing a ring is terminated at an atom completing the ring.</p> | 
|  | 487 </dd> | 
|  | 488 <dt><strong><a name="getatoms" class="item"><strong>GetAtoms</strong></a></strong></dt> | 
|  | 489 <dd> | 
|  | 490 <div class="OptionsBox"> | 
|  | 491     @AllAtoms = $Molecule->GetAtoms(); | 
|  | 492 <br/>    @PolarAtoms = $Molecule->GetAtoms('IsPolarAtom');</div> | 
|  | 493 <div class="OptionsBox"> | 
|  | 494     $NegateMethodResult = 1; | 
|  | 495 <br/>    @NonHydrogenAtoms = $Molecule->GetAtoms('IsHydrogenAtom', | 
|  | 496                         $NegateMethodResult);</div> | 
|  | 497 <div class="OptionsBox"> | 
|  | 498     $AtomsCount = $Molecule->GetAtoms();</div> | 
|  | 499 <p>Returns an array of <em>Atoms</em> in a <em>Molecule</em>. In scalar context,  it returns number of atoms. | 
|  | 500 Additionally, <strong>Atoms</strong> array can be filtered by any user specifiable valid <strong>Atom</strong> class method | 
|  | 501 and the result of the <strong>Atom</strong> class method used to filter the atoms can also be negated by | 
|  | 502 an optional negate results flag as third parameter.</p> | 
|  | 503 </dd> | 
|  | 504 <dt><strong><a name="getbonds" class="item"><strong>GetBonds</strong></a></strong></dt> | 
|  | 505 <dd> | 
|  | 506 <div class="OptionsBox"> | 
|  | 507     @Bonds = $Molecule->GetBonds(); | 
|  | 508 <br/>    $BondsCount = $Molecule->GetBonds();</div> | 
|  | 509 <p>Returns an array of <em>Bonds</em> in a <em>Molecule</em>. In scalar context,  it returns number of bonds.</p> | 
|  | 510 </dd> | 
|  | 511 <dt><strong><a name="getcharge" class="item"><strong>GetCharge</strong></a></strong></dt> | 
|  | 512 <dd> | 
|  | 513 <div class="OptionsBox"> | 
|  | 514     $Charge = $Molecule->GetCharge();</div> | 
|  | 515 <p>Returns net charge on a <em>Molecule</em> using one of the following two methods: explicitly | 
|  | 516 set <strong>Charge</strong> property or sum of partial atomic charges on each atom.</p> | 
|  | 517 </dd> | 
|  | 518 <dt><strong><a name="getconnectedcomponents" class="item"><strong>GetConnectedComponents</strong></a></strong></dt> | 
|  | 519 <dd> | 
|  | 520 <div class="OptionsBox"> | 
|  | 521     @ConnectedComponents = $Molecule->GetConnectedComponents();</div> | 
|  | 522 <p>Returns a reference to an array containing <em>Molecule</em> objects corresponding | 
|  | 523 to connected components sorted in decreasing order of component size in a <em>Molecule</em>.</p> | 
|  | 524 </dd> | 
|  | 525 <dt><strong><a name="getconnectedcomponentsatoms" class="item"><strong>GetConnectedComponentsAtoms</strong></a></strong></dt> | 
|  | 526 <dd> | 
|  | 527 <div class="OptionsBox"> | 
|  | 528     @ConnectedComponentsAtoms = | 
|  | 529       $Molecule->GetConnectedComponentsAtoms();</div> | 
|  | 530 <p>Returns an array containing references to arrays with <em>Atom</em> objects corresponding to | 
|  | 531 atoms of connected components sorted in order of component decreasing size in a | 
|  | 532 <em>Molecule</em>.</p> | 
|  | 533 </dd> | 
|  | 534 <dt><strong><a name="getdimensionality" class="item"><strong>GetDimensionality</strong></a></strong></dt> | 
|  | 535 <dd> | 
|  | 536 <div class="OptionsBox"> | 
|  | 537     $Dimensionality = $Molecule->GetDimensionality();</div> | 
|  | 538 <p>Returns <em>Dimensionality</em> of a <em>Molecule</em> corresponding to explicitly set | 
|  | 539 <em>Dimensionality</em> property value or by processing atomic.</p> | 
|  | 540 <p>The <em>Dimensionality</em> value from atomic coordinates is calculated as follows:</p> | 
|  | 541 <div class="OptionsBox"> | 
|  | 542     3D - Three dimensional: One of X, Y or Z coordinate is non-zero | 
|  | 543 <br/>    2D - Two dimensional: One of X or Y coordinate is non-zero; All Z | 
|  | 544          coordinates are zero | 
|  | 545 <br/>    0D - Zero dimensional: All atomic coordinates are zero</div> | 
|  | 546 </dd> | 
|  | 547 <dt><strong><a name="getelementalcomposition" class="item"><strong>GetElementalComposition</strong></a></strong></dt> | 
|  | 548 <dd> | 
|  | 549 <div class="OptionsBox"> | 
|  | 550     ($ElementsRef, $CompositionRef) = | 
|  | 551       $Molecule->GetElementalComposition([$IncludeMissingHydrogens]);</div> | 
|  | 552 <p>Calculates elemental composition and returns references to arrays containing elements | 
|  | 553 and their percent composition in a <em>Molecule</em>. By default, missing hydrogens are included | 
|  | 554 during the calculation.</p> | 
|  | 555 </dd> | 
|  | 556 <dt><strong><a name="getelementsandnonelements" class="item"><strong>GetElementsAndNonElements</strong></a></strong></dt> | 
|  | 557 <dd> | 
|  | 558 <div class="OptionsBox"> | 
|  | 559     ($ElementsRef, $NonElementsRef) = | 
|  | 560      $Molecule->GetElementsAndNonElements([$IncludeMissingHydrogens]);</div> | 
|  | 561 <p>Counts elements and non-elements in a <em>Molecule</em> and returns references to hashes | 
|  | 562 containing element and non-element as hash keys with values corresponding to their | 
|  | 563 count. By default, missing hydrogens are not added to the element hash.</p> | 
|  | 564 </dd> | 
|  | 565 <dt><strong><a name="getexactmass" class="item"><strong>GetExactMass</strong></a></strong></dt> | 
|  | 566 <dd> | 
|  | 567 <div class="OptionsBox"> | 
|  | 568     $ExactMass = $Molecule->GetExactMass();</div> | 
|  | 569 <p>Returns exact mass of a <em>Molecule</em> corresponding to sum of exact masses of all | 
|  | 570 the atoms.</p> | 
|  | 571 </dd> | 
|  | 572 <dt><strong><a name="getformalcharge" class="item"><strong>GetFormalCharge</strong></a></strong></dt> | 
|  | 573 <dd> | 
|  | 574 <div class="OptionsBox"> | 
|  | 575     $FormalCharge = $Molecule->GetFormalCharge();</div> | 
|  | 576 <p>Returns net formal charge on a <em>Molecule</em> using one of the following two methods: explicitly | 
|  | 577 set <strong>FormalCharge</strong> property or sum of formal charges on each atom.</p> | 
|  | 578 <p><strong>FormalCharge</strong> is different from <strong>Charge</strong> property of the molecule which corresponds to | 
|  | 579 sum of partial atomic charges explicitly set for each atom using a specific methodology.</p> | 
|  | 580 </dd> | 
|  | 581 <dt><strong><a name="getfreeradicalelectrons" class="item"><strong>GetFreeRadicalElectrons</strong></a></strong></dt> | 
|  | 582 <dd> | 
|  | 583 <div class="OptionsBox"> | 
|  | 584     $FreeRadicalElectrons = $Molecule->GetFreeRadicalElectrons();</div> | 
|  | 585 <p>Returns total number of free radical electrons available in a <em>Molecule</em> using one of the | 
|  | 586 following two methods: explicitly set <strong>FreeRadicalElectrons</strong> property or sum of available | 
|  | 587 free radical electrons on each atom.</p> | 
|  | 588 </dd> | 
|  | 589 <dt><strong><a name="getfusedandnonfusedrings" class="item"><strong>GetFusedAndNonFusedRings</strong></a></strong></dt> | 
|  | 590 <dd> | 
|  | 591 <div class="OptionsBox"> | 
|  | 592     ($FusedRingSetRef, $NonFusedRingsRef) = | 
|  | 593        $Molecule->GetFusedAndNonFusedRings();</div> | 
|  | 594 <p>Returns references to array of fused ring sets and non-fused rings in a <em>Molecule</em>. Fused ring sets | 
|  | 595 array reference contains refernces to arrays of rings corresponding to ring <em>Atom</em> objects; | 
|  | 596 Non-fused rings array reference contains references to arrays of ring <em>Atom</em> objects.</p> | 
|  | 597 </dd> | 
|  | 598 <dt><strong><a name="getlargestconnectedcomponent" class="item"><strong>GetLargestConnectedComponent</strong></a></strong></dt> | 
|  | 599 <dd> | 
|  | 600 <div class="OptionsBox"> | 
|  | 601     $ComponentMolecule = $Molecule->GetLargestConnectedComponent();</div> | 
|  | 602 <p>Returns a reference to <strong>Molecule</strong> object corresponding to a largest connected component | 
|  | 603 in a <em>Molecule</em>.</p> | 
|  | 604 </dd> | 
|  | 605 <dt><strong><a name="getlargestconnectedcomponentatoms" class="item"><strong>GetLargestConnectedComponentAtoms</strong></a></strong></dt> | 
|  | 606 <dd> | 
|  | 607 <div class="OptionsBox"> | 
|  | 608     @ComponentAtoms = $Molecule->GetLargestConnectedComponentAtoms();</div> | 
|  | 609 <p>Returns a reference to an array of <strong>Atom</strong> objects corresponding to a largest connected | 
|  | 610 component in a <em>Molecule</em>.</p> | 
|  | 611 </dd> | 
|  | 612 <dt><strong><a name="getlargestring" class="item"><strong>GetLargestRing</strong></a></strong></dt> | 
|  | 613 <dd> | 
|  | 614 <div class="OptionsBox"> | 
|  | 615     @RingAtoms = $Molecule->GetLargestRing();</div> | 
|  | 616 <p>Returns an array of <em>Atoms</em> objects corresponding to a largest ring in a <em>Molecule</em>.</p> | 
|  | 617 </dd> | 
|  | 618 <dt><strong><a name="getmolecularformula" class="item"><strong>GetMolecularFormula</strong></a></strong></dt> | 
|  | 619 <dd> | 
|  | 620 <div class="OptionsBox"> | 
|  | 621     $FormulaString = $Molecule->GetMolecularFormula( | 
|  | 622                      [$IncludeMissingHydrogens, | 
|  | 623                      $IncludeNonElements]);</div> | 
|  | 624 <p>Returns molecular formula of a <em>Molecule</em> by collecting information about all atoms in | 
|  | 625 the molecule and composing the formula using Hills ordering system:</p> | 
|  | 626 <div class="OptionsBox"> | 
|  | 627     o C shows up first and H follows assuming C is present. | 
|  | 628 <br/>    o All other standard elements are sorted alphanumerically. | 
|  | 629 <br/>    o All other non-stanard atom symbols are also sorted | 
|  | 630       alphanumerically and follow standard elements.</div> | 
|  | 631 <p>Notes:</p> | 
|  | 632 <div class="OptionsBox"> | 
|  | 633     o By default, missing hydrogens and nonelements are also included. | 
|  | 634 <br/>    o Elements for disconnected fragments are combined into the same | 
|  | 635       formula. | 
|  | 636 <br/>    o Formal charge is also used during compoisiton of molecular formula.</div> | 
|  | 637 </dd> | 
|  | 638 <dt><strong><a name="getmolecularweight" class="item"><strong>GetMolecularWeight</strong></a></strong></dt> | 
|  | 639 <dd> | 
|  | 640 <div class="OptionsBox"> | 
|  | 641     $MolWeight = $Molecule->GetMolecularWeight();</div> | 
|  | 642 <p>Returns molecular weight of a <em>Molecule</em> corresponding to sum of atomic weights of all | 
|  | 643 the atoms.</p> | 
|  | 644 </dd> | 
|  | 645 <dt><strong><a name="getnumofaromaticrings" class="item"><strong>GetNumOfAromaticRings</strong></a></strong></dt> | 
|  | 646 <dd> | 
|  | 647 <div class="OptionsBox"> | 
|  | 648     $NumOfAromaticRings = $Molecule->GetNumOfAromaticRings();</div> | 
|  | 649 <p>Returns number of aromatic rings in a <em>Molecule</em>.</p> | 
|  | 650 </dd> | 
|  | 651 <dt><strong><a name="getnumofatoms" class="item"><strong>GetNumOfAtoms</strong></a></strong></dt> | 
|  | 652 <dd> | 
|  | 653 <div class="OptionsBox"> | 
|  | 654     $NumOfAtoms = $Molecule->GetNumOfAtoms();</div> | 
|  | 655 <p>Returns number of atoms in a <em>Molecule</em>.</p> | 
|  | 656 </dd> | 
|  | 657 <dt><strong><a name="getnumofbonds" class="item"><strong>GetNumOfBonds</strong></a></strong></dt> | 
|  | 658 <dd> | 
|  | 659 <div class="OptionsBox"> | 
|  | 660     $NumOfBonds = $Molecule->GetNumOfBonds();</div> | 
|  | 661 <p>Returns number of bonds in a <em>Molecule</em>.</p> | 
|  | 662 </dd> | 
|  | 663 <dt><strong><a name="getnumofconnectedcomponents" class="item"><strong>GetNumOfConnectedComponents</strong></a></strong></dt> | 
|  | 664 <dd> | 
|  | 665 <div class="OptionsBox"> | 
|  | 666     $NumOfComponents = $Molecule->GetNumOfConnectedComponents();</div> | 
|  | 667 <p>Returns number of connected components in a <em>Molecule</em>.</p> | 
|  | 668 </dd> | 
|  | 669 <dt><strong><a name="getnumofelementsandnonelements" class="item"><strong>GetNumOfElementsAndNonElements</strong></a></strong></dt> | 
|  | 670 <dd> | 
|  | 671 <div class="OptionsBox"> | 
|  | 672     ($NumOfElements, $NumOfNonElements) = $Molecule-> | 
|  | 673                               GetNumOfElementsAndNonElements(); | 
|  | 674 <br/>    ($NumOfElements, $NumOfNonElements) = $Molecule-> | 
|  | 675                    GetNumOfElementsAndNonElements($IncludeMissingHydrogens);</div> | 
|  | 676 <p>Returns number of elements and non-elements in a <em>Molecule</em>. By default, missing | 
|  | 677 hydrogens are not added to element count.</p> | 
|  | 678 </dd> | 
|  | 679 <dt><strong><a name="getnumofheavyatoms" class="item"><strong>GetNumOfHeavyAtoms</strong></a></strong></dt> | 
|  | 680 <dd> | 
|  | 681 <div class="OptionsBox"> | 
|  | 682     $NumOfHeavyAtoms = $Molecule->GetNumOfHeavyAtoms();</div> | 
|  | 683 <p>Returns number of heavy atoms, non-hydrogen atoms, in a <em>Molecule</em>.</p> | 
|  | 684 </dd> | 
|  | 685 <dt><strong><a name="getnumofhydrogenatoms" class="item"><strong>GetNumOfHydrogenAtoms</strong></a></strong></dt> | 
|  | 686 <dd> | 
|  | 687 <div class="OptionsBox"> | 
|  | 688     $NumOfHydrogenAtoms = $Molecule->GetNumOfHydrogenAtoms();</div> | 
|  | 689 <p>Returns number of hydrogen atoms in a <em>Molecule</em>.</p> | 
|  | 690 </dd> | 
|  | 691 <dt><strong><a name="getnumofmissinghydrogenatoms" class="item"><strong>GetNumOfMissingHydrogenAtoms</strong></a></strong></dt> | 
|  | 692 <dd> | 
|  | 693 <div class="OptionsBox"> | 
|  | 694     $NumOfMissingHydrogenAtoms = $Molecule->GetNumOfMissingHydrogenAtoms();</div> | 
|  | 695 <p>Returns number of hydrogen atoms in a <em>Molecule</em>.</p> | 
|  | 696 </dd> | 
|  | 697 <dt><strong><a name="getnumofnonhydrogenatoms" class="item"><strong>GetNumOfNonHydrogenAtoms</strong></a></strong></dt> | 
|  | 698 <dd> | 
|  | 699 <div class="OptionsBox"> | 
|  | 700     $NumOfNonHydrogenAtoms = $Molecule->GetNumOfNonHydrogenAtoms();</div> | 
|  | 701 <p>Returns number of non-hydrogen atoms in a <em>Molecule</em>.</p> | 
|  | 702 </dd> | 
|  | 703 <dt><strong><a name="getnumofrings" class="item"><strong>GetNumOfRings</strong></a></strong></dt> | 
|  | 704 <dd> | 
|  | 705 <div class="OptionsBox"> | 
|  | 706     $RingCount = $Molecule->GetNumOfRings();</div> | 
|  | 707 <p>Returns number of rings in a <em>Molecule</em>.</p> | 
|  | 708 </dd> | 
|  | 709 <dt><strong><a name="getnumofringswithevensize" class="item"><strong>GetNumOfRingsWithEvenSize</strong></a></strong></dt> | 
|  | 710 <dd> | 
|  | 711 <div class="OptionsBox"> | 
|  | 712     $RingCount = $Molecule->GetNumOfRingsWithEvenSize();</div> | 
|  | 713 <p>Returns number of rings with even size in a <em>Molecule</em>.</p> | 
|  | 714 </dd> | 
|  | 715 <dt><strong><a name="getnumofringswithoddsize" class="item"><strong>GetNumOfRingsWithOddSize</strong></a></strong></dt> | 
|  | 716 <dd> | 
|  | 717 <div class="OptionsBox"> | 
|  | 718     $RingCount = $Molecule->GetNumOfRingsWithOddSize();</div> | 
|  | 719 <p>Returns number of rings with odd size in a <em>Molecule</em>.</p> | 
|  | 720 </dd> | 
|  | 721 <dt><strong><a name="getnumofringswithsize" class="item"><strong>GetNumOfRingsWithSize</strong></a></strong></dt> | 
|  | 722 <dd> | 
|  | 723 <div class="OptionsBox"> | 
|  | 724     $RingCount = $Molecule->GetNumOfRingsWithSize($Size);</div> | 
|  | 725 <p>Returns number of rings with <em>Size</em> in a <em>Molecule</em>.</p> | 
|  | 726 </dd> | 
|  | 727 <dt><strong><a name="getnumofringswithsizegreaterthan" class="item"><strong>GetNumOfRingsWithSizeGreaterThan</strong></a></strong></dt> | 
|  | 728 <dd> | 
|  | 729 <div class="OptionsBox"> | 
|  | 730     $RingCount = $Molecule->GetNumOfRingsWithSizeGreaterThan($Size);</div> | 
|  | 731 <p>Returns number of rings with size greater than <em>Size</em> in a <em>Molecule</em>.</p> | 
|  | 732 </dd> | 
|  | 733 <dt><strong><a name="getnumofringswithsizelessthan" class="item"><strong>GetNumOfRingsWithSizeLessThan</strong></a></strong></dt> | 
|  | 734 <dd> | 
|  | 735 <div class="OptionsBox"> | 
|  | 736     $RingCount = $Molecule->GetNumOfRingsWithSizeLessThan($Size);</div> | 
|  | 737 <p>Returns number of rings with size less than <em>Size</em> in a <em>Molecule</em>.</p> | 
|  | 738 </dd> | 
|  | 739 <dt><strong><a name="getringbonds" class="item"><strong>GetRingBonds</strong></a></strong></dt> | 
|  | 740 <dd> | 
|  | 741 <div class="OptionsBox"> | 
|  | 742     @RingBonds = $Molecule->GetRingBonds(@RingAtoms);</div> | 
|  | 743 <p>Returns an array of ring <strong>Bond</strong> objects correponding to an array of ring <em>Atoms</em> in a | 
|  | 744 <em>Molecule</em>.</p> | 
|  | 745 </dd> | 
|  | 746 <dt><strong><a name="getringbondsfromrings" class="item"><strong>GetRingBondsFromRings</strong></a></strong></dt> | 
|  | 747 <dd> | 
|  | 748 <div class="OptionsBox"> | 
|  | 749     @RingBondsSets = $Molecule->GetRingBondsFromRings(@RingAtomsSets);</div> | 
|  | 750 <p>Returns an array containing references to arrays of ring <strong>Bond</strong> objects for rings specified | 
|  | 751 in an array of references to ring <em>Atom</em> objects.</p> | 
|  | 752 </dd> | 
|  | 753 <dt><strong><a name="getrings" class="item"><strong>GetRings</strong></a></strong></dt> | 
|  | 754 <dd> | 
|  | 755 <div class="OptionsBox"> | 
|  | 756     @Rings = $Molecule->GetRings();</div> | 
|  | 757 <p>Returns rings as an array containing references to arrays of ring <em>Atom</em> objects in a <em>Molecule</em>.</p> | 
|  | 758 </dd> | 
|  | 759 <dt><strong><a name="getringswithevensize" class="item"><strong>GetRingsWithEvenSize</strong></a></strong></dt> | 
|  | 760 <dd> | 
|  | 761 <div class="OptionsBox"> | 
|  | 762     @Rings = $Molecule->GetRingsWithEvenSize();</div> | 
|  | 763 <p>Returns even size rings as an array containing references to arrays of ring <em>Atom</em> objects in | 
|  | 764 a <em>Molecule</em>.</p> | 
|  | 765 </dd> | 
|  | 766 <dt><strong><a name="getringswithoddsize" class="item"><strong>GetRingsWithOddSize</strong></a></strong></dt> | 
|  | 767 <dd> | 
|  | 768 <div class="OptionsBox"> | 
|  | 769     @Rings = $Molecule->GetRingsWithOddSize();</div> | 
|  | 770 <p>Returns odd size rings as an array containing references to arrays of ring <em>Atom</em> objects in | 
|  | 771 a <em>Molecule</em>.</p> | 
|  | 772 </dd> | 
|  | 773 <dt><strong><a name="getringswithsize" class="item"><strong>GetRingsWithSize</strong></a></strong></dt> | 
|  | 774 <dd> | 
|  | 775 <div class="OptionsBox"> | 
|  | 776     @Rings = $Molecule->GetRingsWithSize($Size);</div> | 
|  | 777 <p>Returns rings with <em>Size</em> as an array containing references to arrays of ring <em>Atom</em> objects in | 
|  | 778 a <em>Molecule</em>.</p> | 
|  | 779 </dd> | 
|  | 780 <dt><strong><a name="getringswithsizegreaterthan" class="item"><strong>GetRingsWithSizeGreaterThan</strong></a></strong></dt> | 
|  | 781 <dd> | 
|  | 782 <div class="OptionsBox"> | 
|  | 783     @Rings = $Molecule->GetRingsWithSizeGreaterThan($Size);</div> | 
|  | 784 <p>Returns rings with size greater than <em>Size</em> as an array containing references to arrays of | 
|  | 785 ring <em>Atom</em> objects in a <em>Molecule</em>.</p> | 
|  | 786 </dd> | 
|  | 787 <dt><strong><a name="getringswithsizelessthan" class="item"><strong>GetRingsWithSizeLessThan</strong></a></strong></dt> | 
|  | 788 <dd> | 
|  | 789 <div class="OptionsBox"> | 
|  | 790     @Rings = $Molecule->GetRingsWithSizeLessThan($Size);</div> | 
|  | 791 <p>Returns rings with size less than <em>Size</em> as an array containing references to arrays of | 
|  | 792 ring <em>Atom</em> objects in a <em>Molecule</em>.</p> | 
|  | 793 </dd> | 
|  | 794 <dt><strong><a name="getsizeoflargestring" class="item"><strong>GetSizeOfLargestRing</strong></a></strong></dt> | 
|  | 795 <dd> | 
|  | 796 <div class="OptionsBox"> | 
|  | 797     $Size = $Molecule->GetSizeOfLargestRing();</div> | 
|  | 798 <p>Returns size of the largest ring in a <em>Molecule</em>.</p> | 
|  | 799 </dd> | 
|  | 800 <dt><strong><a name="getsizeofsmallestring" class="item"><strong>GetSizeOfSmallestRing</strong></a></strong></dt> | 
|  | 801 <dd> | 
|  | 802 <div class="OptionsBox"> | 
|  | 803     $Size = $Molecule->GetSizeOfSmallestRing();</div> | 
|  | 804 <p>Returns size of the smalles ring in a <em>Molecule</em>.</p> | 
|  | 805 </dd> | 
|  | 806 <dt><strong><a name="getsmallestring" class="item"><strong>GetSmallestRing</strong></a></strong></dt> | 
|  | 807 <dd> | 
|  | 808 <div class="OptionsBox"> | 
|  | 809     @RingAtoms = $Molecule->GetSmallestRing();</div> | 
|  | 810 <p>Returns an array containing <em>Atom</em> objects corresponding to the smallest ring in | 
|  | 811 a <em>Molecule</em>.</p> | 
|  | 812 </dd> | 
|  | 813 <dt><strong><a name="getspinmultiplicity" class="item"><strong>GetSpinMultiplicity</strong></a></strong></dt> | 
|  | 814 <dd> | 
|  | 815 <div class="OptionsBox"> | 
|  | 816     $SpinMultiplicity = $Molecule->GetSpinMultiplicity();</div> | 
|  | 817 <p>Returns net spin multiplicity of a <em>Molecule</em> using one of the following two methods: explicitly | 
|  | 818 set <strong>SpinMultiplicity</strong> property or sum of spin multiplicity on each atom.</p> | 
|  | 819 </dd> | 
|  | 820 <dt><strong><a name="getsupportedaromaticitymodels" class="item"><strong>GetSupportedAromaticityModels</strong></a></strong></dt> | 
|  | 821 <dd> | 
|  | 822 <div class="OptionsBox"> | 
|  | 823     @SupportedModels = $Molecule->GetSupportedAromaticityModels();</div> | 
|  | 824 <p>Returns an array containing a list of supported aromaticity models.</p> | 
|  | 825 </dd> | 
|  | 826 <dt><strong><a name="getvalencemodel" class="item"><strong>GetValenceModel</strong></a></strong></dt> | 
|  | 827 <dd> | 
|  | 828 <div class="OptionsBox"> | 
|  | 829     $ValenceModel = $Molecule->GetValenceModel();</div> | 
|  | 830 <p>Returns valence model for <em>Molecule</em> using one of the following two methods: explicitly | 
|  | 831 set <strong>ValenceModel</strong> property or defaul value of <em>InternalValenceModel</em>.</p> | 
|  | 832 </dd> | 
|  | 833 <dt><strong><a name="gettopologicallysortedatoms" class="item"><strong>GetTopologicallySortedAtoms</strong></a></strong></dt> | 
|  | 834 <dd> | 
|  | 835 <div class="OptionsBox"> | 
|  | 836     @SortedAtoms = $Molecule->GetTopologicallySortedAtoms([$StartAtom]);</div> | 
|  | 837 <p>Returns an array of topologically sorted <em>Atom</em> objects starting from <em>StartAtom</em> or | 
|  | 838 an arbitrary atom in a <em>Molecule</em>.</p> | 
|  | 839 </dd> | 
|  | 840 <dt><strong><a name="hasaromaticrings" class="item"><strong>HasAromaticRings</strong></a></strong></dt> | 
|  | 841 <dd> | 
|  | 842 <div class="OptionsBox"> | 
|  | 843     $Status = $Molecule->HasAromaticRings();</div> | 
|  | 844 <p>Returns 1 or 0 based on whether any aromatic ring is present in a <em>Molecule</em>.</p> | 
|  | 845 </dd> | 
|  | 846 <dt><strong><a name="hasaromaticatomsinrings" class="item"><strong>HasAromaticAtomsInRings</strong></a></strong></dt> | 
|  | 847 <dd> | 
|  | 848 <div class="OptionsBox"> | 
|  | 849     $Status = $Molecule->HasAromaticAtomsInRings();</div> | 
|  | 850 <p>Returns 1 or 0 based on whether any aromatic ring atom is present in a <em>Molecule</em>.</p> | 
|  | 851 </dd> | 
|  | 852 <dt><strong><a name="hasaromaticatomsnotinrings" class="item"><strong>HasAromaticAtomsNotInRings</strong></a></strong></dt> | 
|  | 853 <dd> | 
|  | 854 <div class="OptionsBox"> | 
|  | 855     $Status = $Molecule->HasAromaticAtomsNotInRings();</div> | 
|  | 856 <p>Returns 1 or 0 based on whether any non-ring atom is marked aromatic in a <em>Molecule</em>.</p> | 
|  | 857 </dd> | 
|  | 858 <dt><strong><a name="hasatom" class="item"><strong>HasAtom</strong></a></strong></dt> | 
|  | 859 <dd> | 
|  | 860 <div class="OptionsBox"> | 
|  | 861     $Status = $Molecule->HasAtom($Atom);</div> | 
|  | 862 <p>Returns 1 or 0 based on whether <em>Atom</em> is present in a <em>Molecule</em>.</p> | 
|  | 863 </dd> | 
|  | 864 <dt><strong><a name="hasbond" class="item"><strong>HasBond</strong></a></strong></dt> | 
|  | 865 <dd> | 
|  | 866 <div class="OptionsBox"> | 
|  | 867     $Status = $Molecule->HasBond($Bond);</div> | 
|  | 868 <p>Returns 1 or 0 based on whether <em>Bond</em> is present in a <em>Molecule</em>.</p> | 
|  | 869 </dd> | 
|  | 870 <dt><strong><a name="hasfusedrings" class="item"><strong>HasFusedRings</strong></a></strong></dt> | 
|  | 871 <dd> | 
|  | 872 <div class="OptionsBox"> | 
|  | 873     $Status = $Molecule->HasFusedRings();</div> | 
|  | 874 <p>Returns 1 or 0 based on whether any fused rings set is present in a <em>Molecule</em>.</p> | 
|  | 875 </dd> | 
|  | 876 <dt><strong><a name="hasnorings" class="item"><strong>HasNoRings</strong></a></strong></dt> | 
|  | 877 <dd> | 
|  | 878 <div class="OptionsBox"> | 
|  | 879     $Status = $Molecule->HasNoRings();</div> | 
|  | 880 <p>Returns 0 or 1 based on whether any ring is present in a <em>Molecule</em>.</p> | 
|  | 881 </dd> | 
|  | 882 <dt><strong><a name="hasonlyonering" class="item"><strong>HasOnlyOneRing</strong></a></strong></dt> | 
|  | 883 <dd> | 
|  | 884 <div class="OptionsBox"> | 
|  | 885     $Status = $Molecule->HasOnlyOneRing();</div> | 
|  | 886 <p>Returns 1 or 0 based on whether only one ring is present in a <em>Molecule</em>.</p> | 
|  | 887 </dd> | 
|  | 888 <dt><strong><a name="hasrings" class="item"><strong>HasRings</strong></a></strong></dt> | 
|  | 889 <dd> | 
|  | 890 <div class="OptionsBox"> | 
|  | 891     $Status = $Molecule->HasRings();</div> | 
|  | 892 <p>Returns 1 or 0 based on whether rings are present in a <em>Molecule</em>.</p> | 
|  | 893 </dd> | 
|  | 894 <dt><strong><a name="isaromatic" class="item"><strong>IsAromatic</strong></a></strong></dt> | 
|  | 895 <dd> | 
|  | 896 <div class="OptionsBox"> | 
|  | 897     $Status = $Molecule->IsAromatic();</div> | 
|  | 898 <p>Returns 1 or 0 based on whether <em>Molecule</em> is aromatic.</p> | 
|  | 899 </dd> | 
|  | 900 <dt><strong><a name="ismolecule" class="item"><strong>IsMolecule</strong></a></strong></dt> | 
|  | 901 <dd> | 
|  | 902 <div class="OptionsBox"> | 
|  | 903     $Status = Molecule::IsMolecule();</div> | 
|  | 904 <p>Returns 1 or 0 based on whether <em>Object</em> is a <strong>Molecule</strong> object.</p> | 
|  | 905 </dd> | 
|  | 906 <dt><strong><a name="isringaromatic" class="item"><strong>IsRingAromatic</strong></a></strong></dt> | 
|  | 907 <dd> | 
|  | 908 <div class="OptionsBox"> | 
|  | 909     $Status = $Molecule->IsRingAromatic(@RingAtoms);</div> | 
|  | 910 <p>Returns 1 or 0 based on whether all <em>RingAtoms</em> are aromatic.</p> | 
|  | 911 </dd> | 
|  | 912 <dt><strong><a name="issupportedaromaticitymodel" class="item"><strong>IsSupportedAromaticityModel</strong></a></strong></dt> | 
|  | 913 <dd> | 
|  | 914 <div class="OptionsBox"> | 
|  | 915     $Status = $Molecule->IsSupportedAromaticityModel($AromaticityModel); | 
|  | 916 <br/>    $Status = Molecule::IsSupportedAromaticityModel($AromaticityModel);</div> | 
|  | 917 <p>Returns 1 or 0 based on whether specified <em>AromaticityModel</em> is supported.</p> | 
|  | 918 </dd> | 
|  | 919 <dt><strong><a name="istwodimensional" class="item"><strong>IsTwoDimensional</strong></a></strong></dt> | 
|  | 920 <dd> | 
|  | 921 <div class="OptionsBox"> | 
|  | 922     $Status = $Molecule->IsTwoDimensional();</div> | 
|  | 923 <p>Returns 1 or 0 based on whether any atom in <em>Molecule</em> has a non-zero value | 
|  | 924 for X or Y coordinate and all atoms have zero value for Z coordinates.</p> | 
|  | 925 </dd> | 
|  | 926 <dt><strong><a name="isthreedimensional" class="item"><strong>IsThreeDimensional</strong></a></strong></dt> | 
|  | 927 <dd> | 
|  | 928 <div class="OptionsBox"> | 
|  | 929     $Status = $Molecule->IsThreeDimensional();</div> | 
|  | 930 <p>Returns 1 or 0 based on whether any atom in <em>Molecule</em> has a non-zero value | 
|  | 931 for Z coordinate.</p> | 
|  | 932 </dd> | 
|  | 933 <dt><strong><a name="keeplargestcomponent" class="item"><strong>KeepLargestComponent</strong></a></strong></dt> | 
|  | 934 <dd> | 
|  | 935 <div class="OptionsBox"> | 
|  | 936     $Molecule->KeepLargestComponent();</div> | 
|  | 937 <p>Deletes atoms corresponding to all other connected components Except for the largest | 
|  | 938 connected component in a <em>Molecule</em> and returns <em>Molecule</em>.</p> | 
|  | 939 </dd> | 
|  | 940 <dt><strong><a name="kekulizearomaticatoms" class="item"><strong>KekulizeAromaticAtoms</strong></a></strong></dt> | 
|  | 941 <dd> | 
|  | 942 <div class="OptionsBox"> | 
|  | 943     $Status = $Molecule->KekulizeAromaticAtoms();</div> | 
|  | 944 <p>Kekulize marked ring and non-ring aromatic atoms in a molecule and return 1 or 1 based | 
|  | 945 on whether the kekulization succeeded.</p> | 
|  | 946 </dd> | 
|  | 947 <dt><strong><a name="newatom" class="item"><strong>NewAtom</strong></a></strong></dt> | 
|  | 948 <dd> | 
|  | 949 <div class="OptionsBox"> | 
|  | 950     $NewAtom = $Molecule->NewAtom(%AtomPropertyNamesAndValues);</div> | 
|  | 951 <p>Creates a new atom using <em>AtomPropertyNamesAndValues</em>, add its to <em>Molecule</em>, and returns | 
|  | 952 new <strong>Atom</strong> object.</p> | 
|  | 953 </dd> | 
|  | 954 <dt><strong><a name="newbond" class="item"><strong>NewBond</strong></a></strong></dt> | 
|  | 955 <dd> | 
|  | 956 <div class="OptionsBox"> | 
|  | 957     $NewBond = $Molecule->NewBond(%BondPropertyNamesAndValues);</div> | 
|  | 958 <p>Creates a new bond using <em>AtomPropertyNamesAndValues</em>, add its to <em>Molecule</em>, and returns | 
|  | 959 new <strong>Bond</strong> object.</p> | 
|  | 960 </dd> | 
|  | 961 <dt><strong><a name="setactiverings" class="item"><strong>SetActiveRings</strong></a></strong></dt> | 
|  | 962 <dd> | 
|  | 963 <div class="OptionsBox"> | 
|  | 964     $Molecule->SetActiveRings($RingsType);</div> | 
|  | 965 <p>Sets up type of detected ring sets to use during all ring related methods and returns <em>Molecule</em>. | 
|  | 966 Possible <em>RingType</em> values: <em>Independent or All</em>. By default, <em>Independent</em> ring set is used | 
|  | 967 during all ring methods.</p> | 
|  | 968 </dd> | 
|  | 969 <dt><strong><a name="setaromaticitymodel" class="item"><strong>SetAromaticityModel</strong></a></strong></dt> | 
|  | 970 <dd> | 
|  | 971 <div class="OptionsBox"> | 
|  | 972     $Molecule = $Molecule->SetAromaticityModel($AromaticityModel);</div> | 
|  | 973 <p>Sets up <em>AromaticityModel</em> property value for <em>Molecule</em> and retrurns <em>Molecule</em>.</p> | 
|  | 974 </dd> | 
|  | 975 <dt><strong><a name="setvalencemodel" class="item"><strong>SetValenceModel</strong></a></strong></dt> | 
|  | 976 <dd> | 
|  | 977 <div class="OptionsBox"> | 
|  | 978     $Molecule = $Molecule->SetValenceModel(ValenceModel);</div> | 
|  | 979 <p>Sets up <em>ValenceModel</em> property value for <em>Molecule</em> and retrurns <em>Molecule</em>.</p> | 
|  | 980 </dd> | 
|  | 981 <dt><strong><a name="stringifymolecule" class="item"><strong>StringifyMolecule</strong></a></strong></dt> | 
|  | 982 <dd> | 
|  | 983 <div class="OptionsBox"> | 
|  | 984     $MoleculeString = $Molecule->StringifyMolecule();</div> | 
|  | 985 <p>Returns a string containing information about <em>Molecule</em> object</p> | 
|  | 986 </dd> | 
|  | 987 </dl> | 
|  | 988 <p> | 
|  | 989 </p> | 
|  | 990 <h2>AUTHOR</h2> | 
|  | 991 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p> | 
|  | 992 <p> | 
|  | 993 </p> | 
|  | 994 <h2>SEE ALSO</h2> | 
|  | 995 <p><a href="./Atom.html">Atom.pm</a>, <a href="./Bond.html">Bond.pm</a>, <a href="./MoleculeFileIO.html">MoleculeFileIO.pm</a>, <a href="./MolecularFormula.html">MolecularFormula.pm</a> | 
|  | 996 </p> | 
|  | 997 <p> | 
|  | 998 </p> | 
|  | 999 <h2>COPYRIGHT</h2> | 
|  | 1000 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p> | 
|  | 1001 <p>This file is part of MayaChemTools.</p> | 
|  | 1002 <p>MayaChemTools is free software; you can redistribute it and/or modify it under | 
|  | 1003 the terms of the GNU Lesser General Public License as published by the Free | 
|  | 1004 Software Foundation; either version 3 of the License, or (at your option) | 
|  | 1005 any later version.</p> | 
|  | 1006 <p> </p><p> </p><div class="DocNav"> | 
|  | 1007 <table width="100%" border=0 cellpadding=0 cellspacing=2> | 
|  | 1008 <tr align="left" valign="top"><td width="33%" align="left"><a href="./MolecularFormula.html" title="MolecularFormula.html">Previous</a>  <a href="./index.html" title="Table of Contents">TOC</a>  <a href="./MoleculeFileIO.html" title="MoleculeFileIO.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>Molecule.pm</strong></td></tr> | 
|  | 1009 </table> | 
|  | 1010 </div> | 
|  | 1011 <br /> | 
|  | 1012 <center> | 
|  | 1013 <img src="../../images/h2o2.png"> | 
|  | 1014 </center> | 
|  | 1015 </body> | 
|  | 1016 </html> |