0
|
1 package Fingerprints::Fingerprints;
|
|
2 #
|
|
3 # $RCSfile: Fingerprints.pm,v $
|
|
4 # $Date: 2015/02/28 20:48:54 $
|
|
5 # $Revision: 1.33 $
|
|
6 #
|
|
7 # Author: Manish Sud <msud@san.rr.com>
|
|
8 #
|
|
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
|
|
10 #
|
|
11 # This file is part of MayaChemTools.
|
|
12 #
|
|
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
|
|
14 # the terms of the GNU Lesser General Public License as published by the Free
|
|
15 # Software Foundation; either version 3 of the License, or (at your option) any
|
|
16 # later version.
|
|
17 #
|
|
18 # MayaChemTools is distributed in the hope that it will be useful, but without
|
|
19 # any warranty; without even the implied warranty of merchantability of fitness
|
|
20 # for a particular purpose. See the GNU Lesser General Public License for more
|
|
21 # details.
|
|
22 #
|
|
23 # You should have received a copy of the GNU Lesser General Public License
|
|
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
|
|
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
|
|
26 # Boston, MA, 02111-1307, USA.
|
|
27 #
|
|
28
|
|
29 use strict;
|
|
30 use Carp;
|
|
31 use Exporter;
|
|
32 use Scalar::Util ();
|
|
33 use ObjectProperty;
|
|
34 use MathUtil ();
|
|
35 use TextUtil ();
|
|
36 use Fingerprints::FingerprintsBitVector;
|
|
37 use Fingerprints::FingerprintsVector;
|
|
38
|
|
39 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
|
|
40
|
|
41 @ISA = qw(ObjectProperty Exporter);
|
|
42 @EXPORT = qw();
|
|
43 @EXPORT_OK = qw();
|
|
44
|
|
45 %EXPORT_TAGS = (all => [@EXPORT, @EXPORT_OK]);
|
|
46
|
|
47 # Setup class variables...
|
|
48 my($ClassName);
|
|
49 _InitializeClass();
|
|
50
|
|
51 # Class constructor...
|
|
52 sub new {
|
|
53 my($Class, %NamesAndValues) = @_;
|
|
54
|
|
55 # Initialize object...
|
|
56 my $This = {};
|
|
57 bless $This, ref($Class) || $Class;
|
|
58 $This->_InitializeFingerprints();
|
|
59
|
|
60 $This->_InitializeFingerprintsProperties(%NamesAndValues);
|
|
61
|
|
62 return $This;
|
|
63 }
|
|
64
|
|
65 # Initialize object data...
|
|
66 #
|
|
67 sub _InitializeFingerprints {
|
|
68 my($This) = @_;
|
|
69
|
|
70 # Molecule object...
|
|
71 $This->{Molecule} = '';
|
|
72
|
|
73 # Type of fingerprints...
|
|
74 $This->{Type} = '';
|
|
75
|
|
76 # Type of fingerprints vector: FingerprintsBitVector or FingerprintsVector...
|
|
77 $This->{VectorType} = '';
|
|
78
|
|
79 # Marks successful generation of fingerprints...
|
|
80 $This->{FingerprintsGenerated} = 0;
|
|
81
|
|
82 # Initialize values for FingerprintsBitVector...
|
|
83 _InitializeClassValuesForFingerprintsBitVector();
|
|
84
|
|
85 # Initialize values for FingerprintsVector...
|
|
86 _InitializeClassValuesForFingerprintsVector();
|
|
87 }
|
|
88
|
|
89 # Initialize class ...
|
|
90 sub _InitializeClass {
|
|
91 #Class name...
|
|
92 $ClassName = __PACKAGE__;
|
|
93 }
|
|
94
|
|
95 # Initialize class values specific to FingerprintsBitVector...
|
|
96 #
|
|
97 sub _InitializeClassValuesForFingerprintsBitVector {
|
|
98 my($This) = @_;
|
|
99
|
|
100 # Size of FingerprintsBitVector...
|
|
101 $This->{Size} = '';
|
|
102
|
|
103 # Min/Max sizes used for folding FingerprintsBitVector...
|
|
104 $This->{MinSize} = '';
|
|
105 $This->{MaxSize} = '';
|
|
106
|
|
107 # FingerprintsBitVector...
|
|
108 $This->{FingerprintsBitVector} = '';
|
|
109 }
|
|
110
|
|
111 # Initialize class values specific to FingerprintsVector...
|
|
112 #
|
|
113 sub _InitializeClassValuesForFingerprintsVector {
|
|
114 my($This) = @_;
|
|
115
|
|
116 # Types of FingerprintsVector values: OrderedNumericalValues, NumericalValues or AlphaNumericalValues.
|
|
117 $This->{FingerprintsVectorType} = '';
|
|
118
|
|
119 # Fingerprints vector...
|
|
120 $This->{FingerprintsVector} = '';
|
|
121 }
|
|
122
|
|
123 # Initialize object properties....
|
|
124 sub _InitializeFingerprintsProperties {
|
|
125 my($This, %NamesAndValues) = @_;
|
|
126
|
|
127 my($Name, $Value, $MethodName);
|
|
128 while (($Name, $Value) = each %NamesAndValues) {
|
|
129 $MethodName = "Set${Name}";
|
|
130 $This->$MethodName($Value);
|
|
131 }
|
|
132
|
|
133 return $This;
|
|
134 }
|
|
135
|
|
136 # Set molecule object and make sure it's not already set...
|
|
137 #
|
|
138 sub SetMolecule {
|
|
139 my($This, $Molecule) = @_;
|
|
140
|
|
141 if ($This->{Molecule}) {
|
|
142 croak "Error: ${ClassName}->SetMolecule: Can't change molecule object: It's already set...";
|
|
143 }
|
|
144 $This->{Molecule} = $Molecule;
|
|
145
|
|
146 # Weaken the reference to disable increment of reference count...
|
|
147 Scalar::Util::weaken($This->{Molecule});
|
|
148
|
|
149 return $This;
|
|
150 }
|
|
151
|
|
152 # Set type and make sure it's not already set...
|
|
153 #
|
|
154 sub SetType {
|
|
155 my($This, $Type) = @_;
|
|
156
|
|
157 if ($This->{Type}) {
|
|
158 croak "Error: ${ClassName}->SetType: Can't change fingerprint type: It's already set...";
|
|
159 }
|
|
160 $This->{Type} = $Type;
|
|
161
|
|
162 return $This;
|
|
163 }
|
|
164
|
|
165 # Is fingerprints generation successful?
|
|
166 #
|
|
167 # Notes:
|
|
168 # . The specific fingerprints generation class sets the value of FingerprinsGenerated
|
|
169 # to 1 after the successful generation of fingerprints; otherwise, it's set to 0.
|
|
170 #
|
|
171 sub IsFingerprintsGenerationSuccessful {
|
|
172 my($This) = @_;
|
|
173
|
|
174 return $This->{FingerprintsGenerated} ? 1 : 0;
|
|
175 }
|
|
176
|
|
177 # Set vector type and make sure it's not already set...
|
|
178 #
|
|
179 sub SetVectorType {
|
|
180 my($This, $VectorType) = @_;
|
|
181
|
|
182 if ($This->{VectorType}) {
|
|
183 croak "Error: ${ClassName}->SetVectorType: Can't change fingerprint vector type: It's already set...";
|
|
184 }
|
|
185 if ($VectorType !~ /^(FingerprintsBitVector|FingerprintsVector)$/i) {
|
|
186 croak "Error: ${ClassName}->SetVectorType: Specified value, $VectorType, for Type is not vaild. Supported types in current release of MayaChemTools: FingerprintsBitVector and FingerprintsVector...";
|
|
187 }
|
|
188 $This->{VectorType} = $VectorType;
|
|
189
|
|
190 return $This;
|
|
191 }
|
|
192
|
|
193 #
|
|
194 # Methods/functions for FingerprintsBitVector...
|
|
195 #
|
|
196
|
|
197 # Initialize fingerprint bit vector...
|
|
198 sub _InitializeFingerprintsBitVector {
|
|
199 my($This) = @_;
|
|
200
|
|
201 if ($This->{VectorType} !~ /^FingerprintsBitVector$/i) {
|
|
202 croak "Error: ${ClassName}->_InitializeFingerprintsBitVector: Can't initialize fingerprints bit vector: VectorType must be FingerprintsBitVector...";
|
|
203 }
|
|
204
|
|
205 if ($This->{Size}) {
|
|
206 $This->{FingerprintsBitVector} = new Fingerprints::FingerprintsBitVector($This->{Size});
|
|
207 }
|
|
208 return $This;
|
|
209 }
|
|
210
|
|
211 # Set size...
|
|
212 #
|
|
213 sub SetSize {
|
|
214 my($This, $Size) = @_;
|
|
215
|
|
216 if ($This->{MinSize} && $Size < $This->{MinSize}) {
|
|
217 croak "Error: ${ClassName}->SetSize: Fingerprint size value, $Size, is not valid : It must be >= $This->{MinSize}...";
|
|
218 }
|
|
219 if ($This->{MaxSize} && $Size > $This->{MaxSize}) {
|
|
220 croak "Error: ${ClassName}->SetSize: Fingerprint size value, $Size, is not valid: It must be <= $This->{MaxSize}...";
|
|
221 }
|
|
222
|
|
223 $This->{Size} = $Size;
|
|
224
|
|
225 return $This;
|
|
226 }
|
|
227
|
|
228 # Set FingerprintsBitVector object and make sure it's not already set...
|
|
229 #
|
|
230 sub SetFingerprintsBitVector {
|
|
231 my($This, $FingerprintsBitVector) = @_;
|
|
232
|
|
233 if ($This->{FingerprintsBitVector}) {
|
|
234 croak "Error: ${ClassName}->SetFingerprintsBitVector: Can't change FingerprintsBitVector object: It's already set...";
|
|
235 }
|
|
236 $This->{FingerprintsBitVector} = $FingerprintsBitVector;
|
|
237
|
|
238 return $This;
|
|
239 }
|
|
240
|
|
241 # Fold fingerprints by recursively reducing its size by half untill bit density is greater than or equal to
|
|
242 # specified bit density...
|
|
243 #
|
|
244 sub FoldFingerprintsByBitDensity {
|
|
245 my($This, $BitDensity) = @_;
|
|
246
|
|
247 if (!($BitDensity >= 0 && $BitDensity <= 1)) {
|
|
248 croak "Error: ${ClassName}->FoldFingerprintsByBitDensity: Specified bit density, $BitDensity, is not valid: It must be > 0 && <= 1 ...";
|
|
249 }
|
|
250
|
|
251 return $This->_FoldFingerprintsBitVector('ByDensity', $BitDensity);
|
|
252 }
|
|
253
|
|
254 # Fold fingerprints by recursively reducing its size by half untill size is less than or equal to
|
|
255 # specified size...
|
|
256 #
|
|
257 sub FoldFingerprintsBySize {
|
|
258 my($This, $Size, $CheckSizeValue) = @_;
|
|
259
|
|
260 if (!defined $CheckSizeValue) {
|
|
261 $CheckSizeValue = 1;
|
|
262 }
|
|
263
|
|
264 if ($CheckSizeValue) {
|
|
265 if (!TextUtil::IsPositiveInteger($Size)) {
|
|
266 croak "Error: ${ClassName}->FoldFingerprintsBySize: Specified size, $Size, is not valid: It must be a positive integer";
|
|
267 }
|
|
268 if (!($Size >= $This->{MinSize} && $Size < $This->{Size})) {
|
|
269 croak "Error: ${ClassName}->FoldFingerprintsBySize: Specified size, $Size, is not valid: It must be greater than or equal to minimum size of $This->{MinSize} and less than current size of $This->{Size}...";
|
|
270 }
|
|
271 if (!TextUtil::IsNumberPowerOfNumber($Size, 2)) {
|
|
272 croak "Error: ${ClassName}->FoldFingerprintsBySize: Specified size value, $Size, must be power of 2...";
|
|
273 }
|
|
274 }
|
|
275
|
|
276 return $This->_FoldFingerprintsBitVector('BySize', $Size);
|
|
277 }
|
|
278
|
|
279 # Fold fingerprints bit vector using specified size of bit density...
|
|
280 #
|
|
281 sub _FoldFingerprintsBitVector {
|
|
282 my($This, $Mode, $Value) = @_;
|
|
283
|
|
284 if (!$This->{FingerprintsBitVector}) {
|
|
285 return $This;
|
|
286 }
|
|
287 my($FingerprintsBitVector, $FoldedFingerprintsBitVector);
|
|
288
|
|
289 $FoldedFingerprintsBitVector = '';
|
|
290 $FingerprintsBitVector = $This->{FingerprintsBitVector};
|
|
291 MODE: {
|
|
292 if ($Mode =~ /^BySize$/i) { $FoldedFingerprintsBitVector = $FingerprintsBitVector->FoldFingerprintsBitVectorBySize($Value); last MODE; }
|
|
293 if ($Mode =~ /^ByDensity$/i) { $FoldedFingerprintsBitVector = $FingerprintsBitVector->FoldFingerprintsBitVectorByDensity($Value); last MODE; }
|
|
294 $FoldedFingerprintsBitVector = '';
|
|
295 }
|
|
296 if ($FoldedFingerprintsBitVector) {
|
|
297 $This->{FingerprintsBitVector} = $FoldedFingerprintsBitVector;
|
|
298 $This->{Size} = $FoldedFingerprintsBitVector->GetSize();
|
|
299 }
|
|
300 return $This;
|
|
301 }
|
|
302
|
|
303 # Get fingerprints as a binary ascii string containing 0s and 1s...
|
|
304 #
|
|
305 sub GetFingerprintBitsAsBinaryString {
|
|
306 my($This, $BitOrder) = @_;
|
|
307
|
|
308 return $This->_GetFingerprintBitsAsString('Binary', $BitOrder);
|
|
309 }
|
|
310
|
|
311 # Get fingerprints as a hexadecimal string...
|
|
312 #
|
|
313 sub GetFingerprintBitsAsHexadecimalString {
|
|
314 my($This, $BitOrder) = @_;
|
|
315
|
|
316 return $This->_GetFingerprintBitsAsString('Hexadecimal', $BitOrder);
|
|
317 }
|
|
318
|
|
319 # Get fingerprints as a raw binary string containing packed bit values for each
|
|
320 # byte...
|
|
321 #
|
|
322 sub GetFingerprintBitsAsRawBinaryString {
|
|
323 my($This, $BitOrder) = @_;
|
|
324
|
|
325 return $This->_GetFingerprintBitsAsString('RawBinary', $BitOrder);
|
|
326 }
|
|
327
|
|
328 # Get fingerprint bits as a string...
|
|
329 #
|
|
330 sub _GetFingerprintBitsAsString {
|
|
331 my($This, $Format) = @_;
|
|
332
|
|
333 if (!$This->{FingerprintsBitVector}) {
|
|
334 return undef;
|
|
335 }
|
|
336 FORMAT : {
|
|
337 if ($Format =~ /^(Binary|Bin|BinaryString)$/i) { return $This->{FingerprintsBitVector}->GetBitsAsBinaryString(); last FORMAT; }
|
|
338 if ($Format =~ /^(Hexadecimal|Hex|HexadecimalString)$/i) { return $This->{FingerprintsBitVector}->GetBitsAsHexadecimalString(); last FORMAT; }
|
|
339 if ($Format =~ /^(RawBinary|RawBin|RawBinaryString)$/i) { return $This->{FingerprintsBitVector}->GetBitsAsRawBinaryString(); last FORMAT; }
|
|
340 croak "Error: ${ClassName}->_GetFingerprintBitsAsString: Specified bit vector string format, $Format, is not supported. Value values: Binary, Bin, BinaryString, Hexdecimal, Hex, HexadecimalString, RawBinary, RawBin, RawBinaryString...";
|
|
341 }
|
|
342 return undef;
|
|
343 }
|
|
344
|
|
345 #
|
|
346 # Methods/functions for FingerprintsVector...
|
|
347 #
|
|
348
|
|
349 # Initialize fingerprint vector...
|
|
350 sub _InitializeFingerprintsVector {
|
|
351 my($This) = @_;
|
|
352
|
|
353 if ($This->{VectorType} !~ /^FingerprintsVector$/i) {
|
|
354 croak "Error: ${ClassName}->_InitializeFingerprintsVector: Can't initialize fingerprints vector: VectorType must be FingerprintsVector...";
|
|
355 }
|
|
356
|
|
357 if ($This->{FingerprintsVectorType}) {
|
|
358 $This->{FingerprintsVector} = new Fingerprints::FingerprintsVector('Type' => $This->{FingerprintsVectorType});
|
|
359 }
|
|
360 return $This;
|
|
361 }
|
|
362
|
|
363 # Set FingerprintsVector object and make sure it's not already set...
|
|
364 #
|
|
365 sub SetFingerprintsVector {
|
|
366 my($This, $FingerprintsVector) = @_;
|
|
367
|
|
368 if ($This->{FingerprintsVector}) {
|
|
369 croak "Error: ${ClassName}->SetFingerprintsVector: Can't change FingerprintsVector object: It's already set...";
|
|
370 }
|
|
371 $This->{FingerprintsVector} = $FingerprintsVector;
|
|
372
|
|
373 return $This;
|
|
374 }
|
|
375
|
|
376 # Types of FingerprintsVector values: OrderedNumericalValues, NumericalValues or AlphaNumericalValues.
|
|
377 #
|
|
378 sub SetFingerprintsVectorType {
|
|
379 my($This, $FingerprintsVectorType) = @_;
|
|
380
|
|
381 if ($This->{FingerprintsVectorType}) {
|
|
382 croak "Error: ${ClassName}->SetFingerprintsVector: Can't change FingerprintsVectorType: It's already set...";
|
|
383 }
|
|
384 if ($FingerprintsVectorType !~ /^(OrderedNumericalValues|NumericalValues|AlphaNumericalValues)$/i) {
|
|
385 croak "Error: ${ClassName}->SetFingerprintsVectorType: Specified value, $FingerprintsVectorType, for Type is not vaild. Supported types in current release of MayaChemTools: OrderedNumericalValues, NumericalValues or AlphaNumericalValues";
|
|
386 }
|
|
387 $This->{FingerprintsVectorType} = $FingerprintsVectorType;
|
|
388
|
|
389 return $This;
|
|
390 }
|
|
391
|
|
392 # Get fingerprints vector values as an array or reference to an array...
|
|
393 #
|
|
394 sub GetFingerprintsVectorValues {
|
|
395 my($This) = @_;
|
|
396
|
|
397 if (!$This->{FingerprintsVector}) {
|
|
398 return undef;
|
|
399 }
|
|
400 return $This->{FingerprintsVector}->GetValues();
|
|
401 }
|
|
402
|
|
403 # Get fingerprints vector value IDs as an array or reference to an array...
|
|
404 #
|
|
405 sub GetFingerprintsVectorValueIDs {
|
|
406 my($This) = @_;
|
|
407
|
|
408 if (!$This->{FingerprintsVector}) {
|
|
409 return undef;
|
|
410 }
|
|
411 return $This->{FingerprintsVector}->GetValueIDs();
|
|
412 }
|
|
413
|
|
414 1;
|
|
415
|
|
416 __END__
|
|
417
|
|
418 =head1 NAME
|
|
419
|
|
420 Fingerprints - Fingerprints class
|
|
421
|
|
422 =head1 SYNOPSIS
|
|
423
|
|
424 use Fingerprints::Fingerprints;
|
|
425
|
|
426 use Fingerprints::Fingerprints qw(:all);
|
|
427
|
|
428 =head1 DESCRIPTION
|
|
429
|
|
430 B<Fingerprints> class provides the following methods:
|
|
431
|
|
432 new, FoldFingerprintsByBitDensity, FoldFingerprintsBySize,
|
|
433 GetFingerprintBitsAsBinaryString, GetFingerprintBitsAsHexadecimalString,
|
|
434 GetFingerprintBitsAsRawBinaryString, GetFingerprintsVectorValueIDs,
|
|
435 GetFingerprintsVectorValues, IsFingerprintsGenerationSuccessful,
|
|
436 SetFingerprintsBitVector, SetFingerprintsVector, SetFingerprintsVectorType,
|
|
437 SetMolecule, SetSize, SetType, SetVectorType
|
|
438
|
|
439 B<Fingerprints> class is used as a base class for various specific fingerprint classes such as
|
|
440 B<AtomNeighborhoodsFingerprints>, B<AtomTypesFingerprints>, B<EStateIndiciesFingerprints>,
|
|
441 B<PathLengthFingerprints>, B<ExtendedConnectivityFingerprints>, B<MACCSKeys> and so on.
|
|
442 It implements functionality common to fingerprint classes.
|
|
443
|
|
444 B<Fingerprints> class is derived from B<ObjectProperty> base class which provides methods not
|
|
445 explicitly defined in B<Fingerprints> or B<ObjectProperty> classes using Perl's AUTOLOAD functionality.
|
|
446 These methods are generated on-the-fly for a specified object property:
|
|
447
|
|
448 Set<PropertyName>(<PropertyValue>);
|
|
449 $PropertyValue = Get<PropertyName>();
|
|
450 Delete<PropertyName>();
|
|
451
|
|
452 B<Fingerprints> class uses B<FingerprintsBitVector> class to provide bits manipulation functionality.
|
|
453
|
|
454 =head2 METHODS
|
|
455
|
|
456 =over 4
|
|
457
|
|
458 =item B<new>
|
|
459
|
|
460 $NewFingerprints = new Fingerprints(%NamesAndValues);
|
|
461
|
|
462 Using specified I<Fingerprints> property names and values hash, B<new> method creates a new object
|
|
463 and returns a reference to newly created B<Fingerprints> object. By default, following properties are
|
|
464 initialized:
|
|
465
|
|
466 Molecule = '';
|
|
467 Type = '';
|
|
468 VectorType = '';
|
|
469 Size = '';
|
|
470 MinSize = '';
|
|
471 MaxSize = '';
|
|
472 FingerprintsBitVector = '';
|
|
473 FingerprintsVectorType = '';
|
|
474 FingerprintsVector = '';
|
|
475
|
|
476 =item B<FoldFingerprintsByBitDensity>
|
|
477
|
|
478 $Fingerprints->FoldFingerprintsByBitDensity($BitDensity);
|
|
479
|
|
480 Folds fingerprints by recursively reducing its size by half until bit density is greater than or equal to
|
|
481 specified I<BitDensity> and returns I<Fingerprints>.
|
|
482
|
|
483 =item B<FoldFingerprintsBySize>
|
|
484
|
|
485 $Fingerprints->FoldFingerprintsBySize($Size, [$CheckSizeValue]);
|
|
486
|
|
487 Fold fingerprints by recursively reducing its size by half until size is less than or equal to specified
|
|
488 I<Size> and returns I<Fingerprints>. By default, value I<Size> is checked to make sure it's:
|
|
489
|
|
490 >= MinSize and < Size and IsPowerOfTwo
|
|
491
|
|
492 =item B<GetFingerprintBitsAsBinaryString>
|
|
493
|
|
494 $BinaryASCIIString =
|
|
495 $Fingerprints->GetFingerprintBitsAsBinaryString();
|
|
496
|
|
497 Returns fingerprints as a binary ASCII string containing 0s and 1s.
|
|
498
|
|
499 =item B<GetFingerprintBitsAsHexadecimalString>
|
|
500
|
|
501 $HexadecimalString =
|
|
502 $Fingerprints->GetFingerprintBitsAsHexadecimalString();
|
|
503
|
|
504 Returns fingerprints as a hexadecimal string
|
|
505
|
|
506 =item B<GetFingerprintBitsAsRawBinaryString>
|
|
507
|
|
508 $RawBinaryString =
|
|
509 $Fingerprints->GetFingerprintBitsAsRawBinaryString();
|
|
510
|
|
511 Returns fingerprints as a raw binary string containing packed bit values for each byte.
|
|
512
|
|
513 =item B<GetFingerprintsVectorValueIDs>
|
|
514
|
|
515 $ValueIDsRef = $Fingerprints->GetFingerprintsVectorValueIDs();
|
|
516 @ValueIDs = $Fingerprints->GetFingerprintsVectorValueIDs();
|
|
517
|
|
518 Returns fingerprints vector value IDs as an array or reference to an array.
|
|
519
|
|
520 =item B<GetFingerprintsVectorValues>
|
|
521
|
|
522 $ValuesRef = $Fingerprints->GetFingerprintsVectorValues();
|
|
523 @Values = $Fingerprints->GetFingerprintsVectorValues();
|
|
524
|
|
525 Returns fingerprints vector values as an array or reference to an array.
|
|
526
|
|
527 =item B<IsFingerprintsGenerationSuccessful>
|
|
528
|
|
529 $Return = $Fingerprints->IsFingerprintsGenerationSuccessful();
|
|
530
|
|
531 Returns 1 or 0 based on whether fingerprints were successfully generated.
|
|
532
|
|
533 =item B<SetFingerprintsBitVector>
|
|
534
|
|
535 $Fingerprints->SetFingerprintsBitVector($FingerprintsBitVector);
|
|
536
|
|
537 Sets I<FingerprintsBitVector> object for I<Fingerprints> and returns I<Fingerprints>.
|
|
538
|
|
539 =item B<SetFingerprintsVector>
|
|
540
|
|
541 $Fingerprints->SetFingerprintsVector();
|
|
542
|
|
543 Sets I<FingerprintsVector> object for I<Fingerprints> and returns I<Fingerprints>.
|
|
544
|
|
545 =item B<SetFingerprintsVectorType>
|
|
546
|
|
547 $Fingerprints->SetFingerprintsVectorType($VectorType);
|
|
548
|
|
549 Sets I<FingerprintsVector> type for I<Fingerprints> and returns I<Fingerprints>. Possible
|
|
550 I<VectorType> values: I<OrderedNumericalValues, NumericalValues or AlphaNumericalValues>.
|
|
551
|
|
552 =item B<SetMolecule>
|
|
553
|
|
554 $Fingerprints->SetMolecule($Molecule);
|
|
555
|
|
556 Sets I<Molecule> object for I<Fingerprints> and returns I<Fingerprints>.
|
|
557
|
|
558 =item B<SetSize>
|
|
559
|
|
560 $Fingerprints->SetSize($Size);
|
|
561
|
|
562 Sets I<Size> of fingerprints and returns I<Fingerprints>.
|
|
563
|
|
564 =item B<SetType>
|
|
565
|
|
566 $Fingerprints->SetType($Type);
|
|
567
|
|
568 Sets I<Type> of fingerprints and returns I<Fingerprints>.
|
|
569
|
|
570 =item B<SetVectorType>
|
|
571
|
|
572 $Fingerprints->SetVectorType($Type);
|
|
573
|
|
574 Sets I<Type> of fingerprints vector and returns I<Fingerprints>. Possible I<Type> values:
|
|
575 I<FingerprintsBitVector or FingerprintsVector>.
|
|
576
|
|
577 =back
|
|
578
|
|
579 =head1 AUTHOR
|
|
580
|
|
581 Manish Sud <msud@san.rr.com>
|
|
582
|
|
583 =head1 SEE ALSO
|
|
584
|
|
585 FingerprintsStringUtil.pm, AtomNeighborhoodsFingerprints.pm, AtomTypesFingerprints.pm,
|
|
586 EStateIndiciesFingerprints.pm, ExtendedConnectivityFingerprints.pm, MACCSKeys.pm,
|
|
587 PathLengthFingerprints.pm, TopologicalAtomPairsFingerprints.pm, TopologicalAtomTripletsFingerprints.pm,
|
|
588 TopologicalAtomTorsionsFingerprints.pm, TopologicalPharmacophoreAtomPairsFingerprints.pm,
|
|
589 TopologicalPharmacophoreAtomTripletsFingerprints.pm
|
|
590
|
|
591 =head1 COPYRIGHT
|
|
592
|
|
593 Copyright (C) 2015 Manish Sud. All rights reserved.
|
|
594
|
|
595 This file is part of MayaChemTools.
|
|
596
|
|
597 MayaChemTools is free software; you can redistribute it and/or modify it under
|
|
598 the terms of the GNU Lesser General Public License as published by the Free
|
|
599 Software Foundation; either version 3 of the License, or (at your option)
|
|
600 any later version.
|
|
601
|
|
602 =cut
|