0
|
1 NAME
|
|
2 RingsCountDescriptors
|
|
3
|
|
4 SYNOPSIS
|
|
5 use MolecularDescriptors::RingsCountDescriptors;
|
|
6
|
|
7 use MolecularDescriptors::RingsCountDescriptors qw(:all);
|
|
8
|
|
9 DESCRIPTION
|
|
10 RingsCountDescriptors class provides the following methods:
|
|
11
|
|
12 new, GenerateDescriptors, GetDescriptorNames,
|
|
13 StringifyRingsCountDescriptors
|
|
14
|
|
15 RingsCountDescriptors is derived from MolecularDescriptors class which
|
|
16 in turn is derived from ObjectProperty base class that provides methods
|
|
17 not explicitly defined in RingsCountDescriptors, MolecularDescriptors or
|
|
18 ObjectProperty classes using Perl's AUTOLOAD functionality. These
|
|
19 methods are generated on-the-fly for a specified object property:
|
|
20
|
|
21 Set<PropertyName>(<PropertyValue>);
|
|
22 $PropertyValue = Get<PropertyName>();
|
|
23 Delete<PropertyName>();
|
|
24
|
|
25 RingsCountDescriptors class doesn't perform any ring or aromaticity
|
|
26 detection before counting their number in a molecule. Instead, it
|
|
27 assumes ring and aromaticity detection have been performed by caller
|
|
28 using DetectRings [Ref 31] and DetectAromaticity methods available in
|
|
29 Molecule.
|
|
30
|
|
31 DetectAromaticity method available in Molecule class assigns aromaticity
|
|
32 to rings using Huckel rule as explained below:
|
|
33
|
|
34 o Ring aromaticity is determined using Huckel's rule: a ring containing
|
|
35 4n + 2 pi electrons is considered aromatic.
|
|
36
|
|
37 o Hetrocyclic rings containing N, O and S atoms fall into two classes:
|
|
38 Basic aromatic and Non-basic aromatic. In Basic aromatic hetrocyclic
|
|
39 rings, heteroatom itself is involved in a double bond. (e.g. Pyridine)
|
|
40 However, in non-basic hetrocyclic rings, heteroatom might have an
|
|
41 attached hydrogen atom and the remaining lone pair contribute to
|
|
42 electron delocalization and contributes to 4n + 2 electrons. (e.g.
|
|
43 Pyrrole, Furan)
|
|
44
|
|
45 o For molecules containing fused rings, each fused ring set is
|
|
46 considered as one aromatic system for counting pi electrons to satisfy
|
|
47 Huckel's rule; In case of a failure, rings in fused set are treated
|
|
48 individually for aromaticity detection. Additionally, non-fused rings
|
|
49 are handled on their own during aromaticity detection.
|
|
50
|
|
51 METHODS
|
|
52 new
|
|
53 $NewRingsCountDescriptors = new MolecularDescriptors::
|
|
54 RingsCountDescriptors(
|
|
55 %NamesAndValues);
|
|
56
|
|
57 Using specified *RingsCountDescriptors* property names and values
|
|
58 hash, new method creates a new object and returns a reference to
|
|
59 newly created RingsCountDescriptors object. By default, the
|
|
60 following properties are initialized:
|
|
61
|
|
62 Molecule = ''
|
|
63 Type = 'RingsCount'
|
|
64
|
|
65 @DescriptorNames = ('Rings', 'AromaticRings')
|
|
66 @DescriptorValues = ('None', 'None')
|
|
67
|
|
68 Examples:
|
|
69
|
|
70 $RingsCountDescriptors = new MolecularDescriptors::RingsCountDescriptors(
|
|
71 'Molecule' => $Molecule);
|
|
72
|
|
73 $RingsCountDescriptors = new MolecularDescriptors::RingsCountDescriptors();
|
|
74
|
|
75 $RingsCountDescriptors->SetMolecule($Molecule);
|
|
76 $RingsCountDescriptors->GenerateDescriptors();
|
|
77 print "RingsCountDescriptors: $RingsCountDescriptors\n";
|
|
78
|
|
79 GenerateDescriptors
|
|
80 $RingsCountDescriptors->GenerateDescriptors();
|
|
81
|
|
82 Calculate number of rings and aromatic rings in a molecule and
|
|
83 returns *RingsCountDescriptors*.
|
|
84
|
|
85 GetDescriptorNames
|
|
86 @DescriptorNames = $RingsCountDescriptors->GetDescriptorNames();
|
|
87 @DescriptorNames = MolecularDescriptors::RingsCountDescriptors::
|
|
88 GetDescriptorNames();
|
|
89
|
|
90 Returns all available descriptor names as an array.
|
|
91
|
|
92 StringifyRingsCountDescriptors
|
|
93 $String = $RingsCountDescriptors->
|
|
94 StringifyRingsCountDescriptors();
|
|
95
|
|
96 Returns a string containing information about
|
|
97 *RingsCountDescriptors* object.
|
|
98
|
|
99 AUTHOR
|
|
100 Manish Sud <msud@san.rr.com>
|
|
101
|
|
102 SEE ALSO
|
|
103 MolecularDescriptors.pm, MolecularDescriptorsGenerator.pm
|
|
104
|
|
105 COPYRIGHT
|
|
106 Copyright (C) 2015 Manish Sud. All rights reserved.
|
|
107
|
|
108 This file is part of MayaChemTools.
|
|
109
|
|
110 MayaChemTools is free software; you can redistribute it and/or modify it
|
|
111 under the terms of the GNU Lesser General Public License as published by
|
|
112 the Free Software Foundation; either version 3 of the License, or (at
|
|
113 your option) any later version.
|
|
114
|