comparison mayachemtools/docs/modules/html/MolecularDescriptorsGenerator.html @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:73ae111cf86f
1 <html>
2 <head>
3 <title>MayaChemTools:Documentation:MolecularDescriptors::MolecularDescriptorsGenerator.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="./MolecularDescriptors.html" title="MolecularDescriptors.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./MolecularVolumeDescriptors.html" title="MolecularVolumeDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>MolecularDescriptors::MolecularDescriptorsGenerator.pm</strong></td><td width="33%" align="right"><a href="././code/MolecularDescriptorsGenerator.html" title="View source code">Code</a>&nbsp;|&nbsp;<a href="./../pdf/MolecularDescriptorsGenerator.pdf" title="PDF US Letter Size">PDF</a>&nbsp;|&nbsp;<a href="./../pdfgreen/MolecularDescriptorsGenerator.pdf" title="PDF US Letter Size with narrow margins: www.changethemargins.com">PDFGreen</a>&nbsp;|&nbsp;<a href="./../pdfa4/MolecularDescriptorsGenerator.pdf" title="PDF A4 Size">PDFA4</a>&nbsp;|&nbsp;<a href="./../pdfa4green/MolecularDescriptorsGenerator.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>MolecularDescriptorsGenerator</p>
22 <p>
23 </p>
24 <h2>SYNOPSIS</h2>
25 <p>use MolecularDescriptors::MolecularDescriptorsGenerator;</p>
26 <p>use MolecularDescriptors::MolecularDescriptorsGenerator qw(:all);</p>
27 <p>
28 </p>
29 <h2>DESCRIPTION</h2>
30 <p><strong>MolecularDescriptorsGenerator</strong> class provides the following methods:</p>
31 <p> <a href="#new">new</a>, <a href="#generatedescriptors">GenerateDescriptors</a>, <a href="#getavailableclassanddescriptornames">GetAvailableClassAndDescriptorNames</a>
32 , <a href="#getavailableclassnamefordescriptorname">GetAvailableClassNameForDescriptorName</a>, <a href="#getavailabledescriptorclassnames">GetAvailableDescriptorClassNames</a>
33 , <a href="#getavailabledescriptornames">GetAvailableDescriptorNames</a>, <a href="#getavailabledescriptornamesfordescriptorclass">GetAvailableDescriptorNamesForDescriptorClass</a>
34 , <a href="#getdescriptorclassparameters">GetDescriptorClassParameters</a>, <a href="#getdescriptornames">GetDescriptorNames</a>, <a href="#getdescriptornamesandvalues">GetDescriptorNamesAndValues</a>
35 , <a href="#getdescriptorvaluebyname">GetDescriptorValueByName</a>, <a href="#getdescriptorvalues">GetDescriptorValues</a>, <a href="#getruleof3descriptornames">GetRuleOf3DescriptorNames</a>
36 , <a href="#getruleof5descriptornames">GetRuleOf5DescriptorNames</a>, <a href="#isdescriptorclassnameavailable">IsDescriptorClassNameAvailable</a>
37 , <a href="#isdescriptornameavailable">IsDescriptorNameAvailable</a>, <a href="#isdescriptorsgenerationsuccessful">IsDescriptorsGenerationSuccessful</a>
38 , <a href="#setdescriptorclassparameters">SetDescriptorClassParameters</a>, <a href="#setdescriptornames">SetDescriptorNames</a>, <a href="#setmode">SetMode</a>, <a href="#setmolecule">SetMolecule</a>
39 , <a href="#stringifymoleculardescriptorsgenerator">StringifyMolecularDescriptorsGenerator</a>
40 </p><p><strong>MolecularDescriptorsGenerator</strong> is derived from is derived from <strong>ObjectProperty</strong>
41 base class that provides methods not explicitly defined in <strong>MolecularDescriptorsGenerator</strong>
42 or <strong>ObjectProperty</strong> classes using Perl's AUTOLOAD functionality. These methods are
43 generated on-the-fly for a specified object property:</p>
44 <div class="OptionsBox">
45 Set&lt;PropertyName&gt;(&lt;PropertyValue&gt;);
46 <br/> $PropertyValue = Get&lt;PropertyName&gt;();
47 <br/> Delete&lt;PropertyName&gt;();</div>
48 <p><strong>MolecularDescriptorsGenerator</strong> is designed to provide a plug-in environment for
49 molecular descriptors development. The molecular descriptor class modules available
50 in <strong>MolecularDescriptors</strong> directory under <strong>MayaChemTools/lib</strong> directory are
51 automatically detected and loaded into the system. The descriptor names provided
52 by each descriptor class module through its <strong>GetDescriptorNames</strong> function are
53 retrieved and are made available for calculations of their values for a specified
54 molecule.</p>
55 <p>Any combination of available descriptor names can be specified during calculation
56 of descriptor values using <strong>GenerateDescriptors</strong> method. The current release of
57 MayaChemTools supports generation of four sets of descriptors: All available
58 descriptors, rule of 5 or 3 descriptors, or a specified set of descriptor names.</p>
59 <p>RuleOf5 [ Ref 91 ] descriptor names are: MolecularWeight, HydrogenBondDonors,
60 HydrogenBondAcceptors, SLogP. RuleOf5 states: MolecularWeight &lt;= 500,
61 HydrogenBondDonors &lt;= 5, HydrogenBondAcceptors &lt;= 10, and logP &lt;= 5.</p>
62 <p>RuleOf3 [ Ref 92 ] descriptor names are: MolecularWeight, RotatableBonds,
63 HydrogenBondDonors, HydrogenBondAcceptors, SLogP, TPSA. RuleOf3 states:
64 MolecularWeight &lt;= 300, RotatableBonds &lt;= 3, HydrogenBondDonors &lt;= 3,
65 HydrogenBondAcceptors &lt;= 3, logP &lt;= 3, and TPSA &lt;= 60.</p>
66 <p>Before calculation of a specified set of descriptors by <strong>GenerateDescriptors</strong>
67 method, a set of descriptor calculation control parameters for a specific descriptor
68 class name can be set using <strong>SetDescriptorClassParameters</strong> method. The specified
69 control parameter names and values are simply passed on to specified descriptor
70 class during instantiation of descriptor class object without performing any validation
71 of parameter names and associated values. It's up to the appropriate descriptor class methods
72 to validate these parameters and values. In addition to specified parameter names and
73 values, the parameter hash must also contain descriptor class name as key and
74 value pair with DescriptorClassName as key with class name as value.</p>
75 <p>
76 </p>
77 <h2>METHODS</h2>
78 <dl>
79 <dt><strong><a name="new" class="item"><strong>new</strong></a></strong></dt>
80 <dd>
81 <div class="OptionsBox">
82 $NewMolecularDescriptorsGenerator = new MolecularDescriptors::
83 MolecularDescriptorsGenerator(
84 %NamesAndValues);</div>
85 <p>Using specified <em>MolecularDescriptorsGenerator</em> property names and values hash, <strong>new</strong>
86 method creates a new object and returns a reference to newly created <strong>MolecularDescriptorsGenerator</strong>
87 object. By default, the following properties are initialized:</p>
88 <div class="OptionsBox">
89 Mode = 'All'
90 <br/> @{$This-&gt;{DescriptorNames}} = ()
91 <br/> %{$This-&gt;{DescriptorClassParameters}} = ()
92 <br/> @{$This-&gt;{DescriptorClassNames}} = ()
93 <br/> %{$This-&gt;{DescriptorClassObjects}} = ()
94 <br/> @{$This-&gt;{DescriptorValues}} = ()</div>
95 <p>Examples:</p>
96 <div class="OptionsBox">
97 $MolecularDescriptorsGenerator = new MolecularDescriptors::
98 MolecularDescriptorsGenerator(
99 'Molecule' =&gt; $Molecule);</div>
100 <div class="OptionsBox">
101 @DescriptorNames = qw(MolecularWeight HydrogenBondDonors Fsp3Carbons)
102 <br/> $MolecularDescriptorsGenerator = new MolecularDescriptors::
103 MolecularDescriptorsGenerator(
104 'Mode' =&gt; 'Specify',
105 'DescriptorNames' =&gt; \@DescriptorNames);</div>
106 <div class="OptionsBox">
107 $MolecularDescriptorsGenerator-&gt;SetDescriptorClassParameters(
108 'DescriptorClassName' =&gt; 'WeightAndMassDescriptors',
109 'WeightPrecision' =&gt; 2,
110 'MassPrecision' =&gt; 2);</div>
111 <div class="OptionsBox">
112 $MolecularDescriptorsGenerator-&gt;SetDescriptorClassParameters(
113 'DescriptorClassName' =&gt; 'HydrogenBondsDescriptors',
114 'HydrogenBondsType' =&gt; 'HBondsType1');</div>
115 <div class="OptionsBox">
116 $MolecularDescriptorsGenerator-&gt;SetMolecule($Molecule);
117 <br/> $MolecularDescriptorsGenerator-&gt;GenerateDescriptors();
118 <br/> print &quot;MolecularDescriptorsGenerator: $MolecularDescriptorsGenerator\n&quot;;</div>
119 </dd>
120 <dt><strong><a name="generatedescriptors" class="item"><strong>GenerateDescriptors</strong></a></strong></dt>
121 <dd>
122 <div class="OptionsBox">
123 $MolecularDescriptorsGenerator-&gt;GenerateDescriptors();</div>
124 <p>Calculates descriptor values for specified descriptors and returns <em>MolecularDescriptorsGenerator</em>.</p>
125 <p>Descriptor class objects are instantiated only once at first invocation. During
126 subsequent calls to <strong>GenerateDescriptors</strong> method, descriptor values are
127 initialized and <strong>GenerateDescriptors</strong> method provided by descriptor class is
128 used to calculate descriptor values for specified descriptors.</p>
129 </dd>
130 <dt><strong><a name="getavailableclassanddescriptornames" class="item"><strong>GetAvailableClassAndDescriptorNames</strong></a></strong></dt>
131 <dd>
132 <div class="OptionsBox">
133 %ClassAndDescriptorNames = $MolecularDescriptorsGenerator-&gt;
134 GetAvailableClassAndDescriptorNames();
135 <br/> %ClassAndDescriptorNames = MolecularDescriptors::
136 MolecularDescriptorsGenerator::
137 GetAvailableClassAndDescriptorNames();</div>
138 <p>Returns available descriptors class and descriptors names as a hash containing key
139 and value pairs corresponding to class name and an array of descriptor names
140 available for the class.</p>
141 </dd>
142 <dt><strong><a name="getavailableclassnamefordescriptorname" class="item"><strong>GetAvailableClassNameForDescriptorName</strong></a></strong></dt>
143 <dd>
144 <div class="OptionsBox">
145 $DescriptorClassName = $MolecularDescriptorsGenerator-&gt;
146 GetAvailableClassNameForDescriptorName($DescriptorName);</div>
147 <div class="OptionsBox">
148 $DescriptorClassName = MolecularDescriptors::MolecularDescriptorsGenerator::
149 GetAvailableClassNameForDescriptorName($DescriptorName);</div>
150 <p>Returns available descriptor class name for a descriptor name.</p>
151 </dd>
152 <dt><strong><a name="getavailabledescriptorclassnames" class="item"><strong>GetAvailableDescriptorClassNames</strong></a></strong></dt>
153 <dd>
154 <div class="OptionsBox">
155 $Return = $MolecularDescriptorsGenerator-&gt;GetAvailableDescriptorClassNames();</div>
156 <div class="OptionsBox">
157 @DescriptorClassNames = $MolecularDescriptorsGenerator-&gt;
158 GetAvailableDescriptorClassNames();
159 <br/> @DescriptorClassNames = MolecularDescriptors::
160 MolecularDescriptorsGenerator::
161 GetAvailableDescriptorClassNames();</div>
162 <p>Returns available descriptor class names as an array or number of available descriptor
163 class names in scalar context.</p>
164 </dd>
165 <dt><strong><a name="getavailabledescriptornames" class="item"><strong>GetAvailableDescriptorNames</strong></a></strong></dt>
166 <dd>
167 <div class="OptionsBox">
168 @DescriptorNames = $MolecularDescriptorsGenerator-&gt;
169 GetAvailableDescriptorNames();
170 <br/> @DescriptorNames = MolecularDescriptors::
171 MolecularDescriptorsGenerator::
172 GetAvailableDescriptorNames();</div>
173 <p>Returns available descriptor names as an array or number of available descriptor
174 names in scalar context.</p>
175 </dd>
176 <dt><strong><a name="getavailabledescriptornamesfordescriptorclass" class="item"><strong>GetAvailableDescriptorNamesForDescriptorClass</strong></a></strong></dt>
177 <dd>
178 <div class="OptionsBox">
179 @DescriptorNames = $MolecularDescriptorsGenerator-&gt;
180 GetAvailableDescriptorNamesForDescriptorClass($DescriptorClassName);
181 <br/> @DescriptorNames = MolecularDescriptors::
182 MolecularDescriptorsGenerator::
183 GetAvailableDescriptorNamesForDescriptorClass($DescriptorClassName);</div>
184 <p>Returns available descriptors names for a descriptor class as an array or number
185 of available descriptor names in scalar context.</p>
186 </dd>
187 <dt><strong><a name="getdescriptorclassparameters" class="item"><strong>GetDescriptorClassParameters</strong></a></strong></dt>
188 <dd>
189 <div class="OptionsBox">
190 $DescriptorClassParametersRef = $MolecularDescriptorsGenerator-&gt;
191 GetDescriptorClassParameters();
192 <br/> $DescriptorClassParametersRef = MolecularDescriptors::
193 MolecularDescriptorsGenerator::
194 GetDescriptorClassParameters();</div>
195 <p>Returns descriptor name parameters as a reference to hash of hashes with hash
196 keys corresponding to class name and class parameter name with hash value
197 as class parameter value.</p>
198 </dd>
199 <dt><strong><a name="getdescriptornames" class="item"><strong>GetDescriptorNames</strong></a></strong></dt>
200 <dd>
201 <div class="OptionsBox">
202 @DescriptorNames = $MolecularDescriptorsGenerator-&gt;GetDescriptorNames();
203 <br/> @DescriptorNames = MolecularDescriptors::MolecularDescriptorsGenerator::
204 GetDescriptorNames();</div>
205 <p>Returns all available descriptor names as an array or number of available descriptors
206 in scalar context.</p>
207 </dd>
208 <dt><strong><a name="getdescriptornamesandvalues" class="item"><strong>GetDescriptorNamesAndValues</strong></a></strong></dt>
209 <dd>
210 <div class="OptionsBox">
211 %NamesAndValues = $MolecularDescriptorsGenerator-&gt;
212 GetDescriptorNamesAndValues();</div>
213 <p>Returns calculated molecular descriptor names and values as a hash with descriptor
214 names and values as hash key and value pairs.</p>
215 </dd>
216 <dt><strong><a name="getdescriptorvaluebyname" class="item"><strong>GetDescriptorValueByName</strong></a></strong></dt>
217 <dd>
218 <div class="OptionsBox">
219 $Value = $MolecularDescriptorsGenerator-&gt;
220 GetDescriptorValueByName($Name);</div>
221 <p>Returns calculated descriptor values for a specified descriptor name.</p>
222 </dd>
223 <dt><strong><a name="getdescriptorvalues" class="item"><strong>GetDescriptorValues</strong></a></strong></dt>
224 <dd>
225 <div class="OptionsBox">
226 @DescriptorValues = $MolecularDescriptorsGenerator-&gt;GetDescriptorValues();</div>
227 <p>Returns all calculated descriptor values as an array corresponding to specified
228 descriptor names.</p>
229 </dd>
230 <dt><strong><a name="getruleof3descriptornames" class="item"><strong>GetRuleOf3DescriptorNames</strong></a></strong></dt>
231 <dd>
232 <div class="OptionsBox">
233 @DescriptorNames = $MolecularDescriptorsGenerator-&gt;
234 GetRuleOf3DescriptorNames();
235 <br/> @DescriptorNames = MolecularDescriptors::
236 MolecularDescriptorsGenerator::
237 GetRuleOf3DescriptorNames();</div>
238 <p>Returns rule of 3 descriptor names as an array or number of rule of 3 descriptors in scalar
239 context.</p>
240 <p>RuleOf3 [ Ref 92 ] descriptor names are: MolecularWeight, RotatableBonds,
241 HydrogenBondDonors, HydrogenBondAcceptors, SLogP, TPSA. RuleOf3 states:
242 MolecularWeight &lt;= 300, RotatableBonds &lt;= 3, HydrogenBondDonors &lt;= 3,
243 HydrogenBondAcceptors &lt;= 3, logP &lt;= 3, and TPSA &lt;= 60.</p>
244 </dd>
245 <dt><strong><a name="getruleof5descriptornames" class="item"><strong>GetRuleOf5DescriptorNames</strong></a></strong></dt>
246 <dd>
247 <div class="OptionsBox">
248 @DescriptorNames = $MolecularDescriptorsGenerator-&gt;
249 GetRuleOf5DescriptorNames();
250 <br/> @DescriptorNames = $MolecularDescriptorsGenerator::
251 GetRuleOf5DescriptorNames();</div>
252 <p>Returns rule of 5 descriptor names as an array or number of rule of 4 descriptors in scalar
253 context.</p>
254 <p>RuleOf5 [ Ref 91 ] descriptor names are: MolecularWeight, HydrogenBondDonors,
255 HydrogenBondAcceptors, SLogP. RuleOf5 states: MolecularWeight &lt;= 500,
256 HydrogenBondDonors &lt;= 5, HydrogenBondAcceptors &lt;= 10, and logP &lt;= 5.</p>
257 </dd>
258 <dt><strong><a name="isdescriptorclassnameavailable" class="item"><strong>IsDescriptorClassNameAvailable</strong></a></strong></dt>
259 <dd>
260 <div class="OptionsBox">
261 $Status = $MolecularDescriptorsGenerator-&gt;
262 IsDescriptorClassNameAvailable($ClassName);
263 <br/> $Status = MolecularDescriptors::
264 MolecularDescriptorsGenerator::
265 IsDescriptorClassNameAvailable($ClassName);</div>
266 <p>Returns 1 or 0 based on whether specified descriptor class name is available.</p>
267 </dd>
268 <dt><strong><a name="isdescriptornameavailable" class="item"><strong>IsDescriptorNameAvailable</strong></a></strong></dt>
269 <dd>
270 <div class="OptionsBox">
271 $Status = $MolecularDescriptorsGenerator-&gt;
272 IsDescriptorNameAvailable($DescriptorName);
273 <br/> $Status = MolecularDescriptors::
274 MolecularDescriptorsGenerator::
275 IsDescriptorNameAvailable($DescriptorName);</div>
276 <p>Returns 1 or 0 based on whether specified descriptor name is available.</p>
277 </dd>
278 <dt><strong><a name="isdescriptorsgenerationsuccessful" class="item"><strong>IsDescriptorsGenerationSuccessful</strong></a></strong></dt>
279 <dd>
280 <div class="OptionsBox">
281 $Status = $MolecularDescriptorsGenerator-&gt;
282 IsDescriptorsGenerationSuccessful();</div>
283 <p>Returns 1 or 0 based on whether descriptors generation is successful.</p>
284 </dd>
285 <dt><strong><a name="setdescriptorclassparameters" class="item"><strong>SetDescriptorClassParameters</strong></a></strong></dt>
286 <dd>
287 <div class="OptionsBox">
288 $MolecularDescriptorsGenerator-&gt;SetDescriptorClassParameters(
289 %NamesAndValues);</div>
290 <p>Sets descriptor calculation control parameters for a specified descriptor class name
291 and returns <em>MolecularDescriptorsGenerator</em>.</p>
292 <p>The specified parameter names and values are simply passed on to specified descriptor
293 class during instantiation of descriptor class object without any performing any validation
294 of parameter names and associated values. It's up to the appropriate descriptor class methods
295 to validate these parameters and values.</p>
296 <p>In addition to specified parameter names and values, the parameter hash must also contain
297 descriptor class name as key and value pair with DescriptorClassName as key with class
298 name as value.</p>
299 </dd>
300 <dt><strong><a name="setdescriptornames" class="item"><strong>SetDescriptorNames</strong></a></strong></dt>
301 <dd>
302 <div class="OptionsBox">
303 $MolecularDescriptorsGenerator-&gt;SetDescriptorNames(@Names);
304 <br/> $MolecularDescriptorsGenerator-&gt;SetDescriptorNames(\@Names);</div>
305 <p>Sets descriptor names to use for generating descriptor values using an array
306 or reference to an array and returns <em>MolecularDescriptorsGenerator</em>.</p>
307 </dd>
308 <dt><strong><a name="setmode" class="item"><strong>SetMode</strong></a></strong></dt>
309 <dd>
310 <div class="OptionsBox">
311 $MolecularDescriptorsGenerator-&gt;SetMode($Mode);</div>
312 <p>Sets descriptors generation mode and returns <em>MolecularDescriptorsGenerator</em>.
313 Possible <em>Mode</em> values: <em>All, RuleOf5, RuleOf3, Specify</em>.</p>
314 </dd>
315 <dt><strong><a name="setmolecule" class="item"><strong>SetMolecule</strong></a></strong></dt>
316 <dd>
317 <div class="OptionsBox">
318 $MolecularDescriptorsGenerator-&gt;SetMolecule($Molecule);</div>
319 <p>Sets molecule to use during calculation of molecular descriptors and returns
320 <em>MolecularDescriptorsGenerator</em>.</p>
321 </dd>
322 <dt><strong><a name="stringifymoleculardescriptorsgenerator" class="item"><strong>StringifyMolecularDescriptorsGenerator</strong></a></strong></dt>
323 <dd>
324 <div class="OptionsBox">
325 $String = $MolecularDescriptorsGenerator-&gt;StringifyMolecularDescriptorsGenerator();</div>
326 <p>Returns a string containing information about <em>MolecularDescriptorsGenerator</em> object.</p>
327 </dd>
328 </dl>
329 <p>
330 </p>
331 <h2>AUTHOR</h2>
332 <p><a href="mailto:msud@san.rr.com">Manish Sud</a></p>
333 <p>
334 </p>
335 <h2>SEE ALSO</h2>
336 <p><a href="./MolecularDescriptors.html">MolecularDescriptors.pm</a>
337 </p>
338 <p>
339 </p>
340 <h2>COPYRIGHT</h2>
341 <p>Copyright (C) 2015 Manish Sud. All rights reserved.</p>
342 <p>This file is part of MayaChemTools.</p>
343 <p>MayaChemTools is free software; you can redistribute it and/or modify it under
344 the terms of the GNU Lesser General Public License as published by the Free
345 Software Foundation; either version 3 of the License, or (at your option)
346 any later version.</p>
347 <p>&nbsp</p><p>&nbsp</p><div class="DocNav">
348 <table width="100%" border=0 cellpadding=0 cellspacing=2>
349 <tr align="left" valign="top"><td width="33%" align="left"><a href="./MolecularDescriptors.html" title="MolecularDescriptors.html">Previous</a>&nbsp;&nbsp;<a href="./index.html" title="Table of Contents">TOC</a>&nbsp;&nbsp;<a href="./MolecularVolumeDescriptors.html" title="MolecularVolumeDescriptors.html">Next</a></td><td width="34%" align="middle"><strong>March 29, 2015</strong></td><td width="33%" align="right"><strong>MolecularDescriptors::MolecularDescriptorsGenerator.pm</strong></td></tr>
350 </table>
351 </div>
352 <br />
353 <center>
354 <img src="../../images/h2o2.png">
355 </center>
356 </body>
357 </html>