Mercurial > repos > deepakjadmin > mayatool3_test3
comparison mayachemtools/lib/Fingerprints/FingerprintsStringUtil.pm @ 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 package Fingerprints::FingerprintsStringUtil; | |
2 # | |
3 # $RCSfile: FingerprintsStringUtil.pm,v $ | |
4 # $Date: 2015/02/28 20:48:54 $ | |
5 # $Revision: 1.24 $ | |
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 Exporter; | |
31 use Carp; | |
32 use TextUtil (); | |
33 use Fingerprints::FingerprintsBitVector; | |
34 use Fingerprints::FingerprintsVector; | |
35 | |
36 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS); | |
37 | |
38 @ISA = qw(Exporter); | |
39 @EXPORT = qw(); | |
40 @EXPORT_OK = qw(AreFingerprintsStringValuesValid GenerateFingerprintsString GenerateFingerprintsBitVectorString GenerateFingerprintsVectorString GetFingerprintsStringTypeAndDescription GetDefaultBitsOrder GetDefaultBitStringFormat GetDefaultVectorStringFormat GetFingeprintsStringDelimiter GetFingerprintsStringValues ParseFingerprintsString ParseFingerprintsBitVectorString ParseFingerprintsVectorString); | |
41 | |
42 %EXPORT_TAGS = (all => [@EXPORT, @EXPORT_OK]); | |
43 | |
44 # Fingerprint string values delimiter... | |
45 my($FPStringDelim) = ';'; | |
46 | |
47 # Generate fingerprints string... | |
48 # | |
49 sub GenerateFingerprintsString { | |
50 my($FingerprintsObject) = @_; | |
51 my($VectorType); | |
52 | |
53 $VectorType = $FingerprintsObject->GetVectorType(); | |
54 | |
55 VECTORTYPE : { | |
56 if ($VectorType =~ /^FingerprintsBitVector$/i) { return GenerateFingerprintsBitVectorString(@_); last VECTORTYPE; } | |
57 if ($VectorType =~ /^FingerprintsVector$/i) { return GenerateFingerprintsVectorString(@_); last VECTORTYPE; } | |
58 croak "Error: FingerprintsStringUtil::GenerateFingerprintsString: Fingerprints object vector type, $VectorType, is not supported. Valid values: FingerprintsBitVector or FingerprintsVector..."; | |
59 } | |
60 return ''; | |
61 } | |
62 | |
63 # Generate fingerprints bit vector string... | |
64 # | |
65 sub GenerateFingerprintsBitVectorString { | |
66 my($FingerprintsObject, $BitStringFormat, $BitsOrder) = @_; | |
67 my($FingerprintsString, $FingerprintsBitVector, @FingerprintsStringValues); | |
68 | |
69 if (!$BitStringFormat) { $BitStringFormat = GetDefaultBitStringFormat(); } | |
70 if (!$BitsOrder) {$BitsOrder = GetDefaultBitsOrder(); } | |
71 | |
72 $FingerprintsString = ''; | |
73 $FingerprintsBitVector = Fingerprints::FingerprintsBitVector::IsFingerprintsBitVector($FingerprintsObject) ? $FingerprintsObject : $FingerprintsObject->GetFingerprintsBitVector(); | |
74 | |
75 # Use specified size instead of size: it corresponds to actual size of the fingerprints bit vector; | |
76 # size reflects actual internal size including any padding. | |
77 # | |
78 | |
79 @FingerprintsStringValues = (); | |
80 push @FingerprintsStringValues, ($FingerprintsObject->GetVectorType(), _GetFingerprintsDescription($FingerprintsObject), $FingerprintsBitVector->GetSpecifiedSize(), $BitStringFormat, $BitsOrder); | |
81 | |
82 $FingerprintsString = join("${FPStringDelim}", @FingerprintsStringValues) . "${FPStringDelim}" . _GetFingerprintBitVectorString($FingerprintsBitVector, $BitStringFormat, $BitsOrder); | |
83 | |
84 return $FingerprintsString; | |
85 } | |
86 | |
87 # Get fingerprint bit vector string... | |
88 # | |
89 sub _GetFingerprintBitVectorString { | |
90 my($FingerprintsBitVector, $BitStringFormat, $BitsOrder) = @_; | |
91 my($FingerprintBitString); | |
92 | |
93 if (!$BitStringFormat) { $BitStringFormat = GetDefaultBitStringFormat(); } | |
94 if (!$BitsOrder) {$BitsOrder = GetDefaultBitsOrder(); } | |
95 | |
96 $FingerprintBitString = ''; | |
97 if (!$FingerprintsBitVector) {return $FingerprintBitString;} | |
98 | |
99 BITSTRINGFORMAT : { | |
100 if ($BitStringFormat =~ /^(BinaryString|Binary|Bin)$/i) { return $FingerprintsBitVector->GetBitsAsBinaryString($BitsOrder); last BITSTRINGFORMAT; } | |
101 if ($BitStringFormat =~ /^(HexadecimalString|Hexadecimal|Hex)$/i) { return $FingerprintsBitVector->GetBitsAsHexadecimalString($BitsOrder); last BITSTRINGFORMAT; } | |
102 croak "Error: FingerprintsStringUtil::_GetFingerprintBitsAsString: Specified bit vector string format, $BitStringFormat, is not supported. Value values: Binary, Bin, BinaryString, Hexdecimal, Hex, HexadecimalString..."; | |
103 } | |
104 return $FingerprintBitString; | |
105 } | |
106 | |
107 # Generate fingerprints vector string... | |
108 # | |
109 sub GenerateFingerprintsVectorString { | |
110 my($FingerprintsObject, $VectorStringFormat) = @_; | |
111 my($FingerprintsString, $FingerprintsVector, @FingerprintsStringValues); | |
112 | |
113 $FingerprintsString = ''; | |
114 $FingerprintsVector = Fingerprints::FingerprintsVector::IsFingerprintsVector($FingerprintsObject) ? $FingerprintsObject : $FingerprintsObject->GetFingerprintsVector(); | |
115 | |
116 if (!$VectorStringFormat) { $VectorStringFormat = _GetDefaultVectorStringFormat($FingerprintsVector); } | |
117 | |
118 @FingerprintsStringValues = (); | |
119 push @FingerprintsStringValues, ($FingerprintsObject->GetVectorType(), _GetFingerprintsDescription($FingerprintsObject), $FingerprintsVector->GetNumOfValues(), $FingerprintsVector->GetType(), $VectorStringFormat); | |
120 | |
121 $FingerprintsString = join("${FPStringDelim}", @FingerprintsStringValues) . "${FPStringDelim}" . _GetFingerprintVectorString($FingerprintsVector, $VectorStringFormat); | |
122 | |
123 return $FingerprintsString; | |
124 } | |
125 | |
126 # Get fingerprint vector string... | |
127 # | |
128 sub _GetFingerprintVectorString { | |
129 my($FingerprintsVector, $VectorStringFormat) = @_; | |
130 my($FingerprintString); | |
131 | |
132 if (!$VectorStringFormat) { $VectorStringFormat = _GetDefaultVectorStringFormat($FingerprintsVector);} | |
133 | |
134 $FingerprintString = ''; | |
135 if (!$FingerprintsVector) {return $FingerprintString;} | |
136 | |
137 VECTORSTRINGFORMAT : { | |
138 if ($VectorStringFormat =~ /^(IDsAndValuesString|IDsAndValues)$/i) { return $FingerprintsVector->GetIDsAndValuesString(); last VECTORSTRINGFORMAT; } | |
139 if ($VectorStringFormat =~ /^(IDsAndValuesPairsString|IDsAndValuesPairs)$/i) { return $FingerprintsVector->GetIDsAndValuesPairsString(); last VECTORSTRINGFORMAT; } | |
140 if ($VectorStringFormat =~ /^(ValuesAndIDsString|ValuesAndIDs)$/i) { return $FingerprintsVector->GetValuesAndIDsString(); last VECTORSTRINGFORMAT; } | |
141 if ($VectorStringFormat =~ /^(ValuesAndIDsPairsString|ValuesAndIDsPairs)$/i) { return $FingerprintsVector->GetValuesAndIDsPairsString(); last VECTORSTRINGFORMAT; } | |
142 if ($VectorStringFormat =~ /^(ValuesString|Values)$/i) { return $FingerprintsVector->GetValuesString(); last VECTORSTRINGFORMAT; } | |
143 croak "Error: FingerprintsStringUtil::_GetFingerprintVectorString: Specified vector string format, $VectorStringFormat, is not supported. Value values: IDsAndValuesString, IDsAndValues, IDsAndValuesPairsString, IDsAndValuesPairs, ValuesAndIDsString, ValuesAndIDs, ValuesAndIDsPairsString, ValuesAndIDsPairs, ValuesString, Values..."; | |
144 } | |
145 return $FingerprintString; | |
146 } | |
147 | |
148 # Get fingerprints string type and description... | |
149 sub GetFingerprintsStringTypeAndDescription { | |
150 my($FingerprintsString) = @_; | |
151 my($Type, $Description); | |
152 | |
153 ($Type, $Description) = _ParseFingerprintsStringValues($FingerprintsString); | |
154 | |
155 return ($Type, $Description); | |
156 } | |
157 | |
158 # Get all fingerprints string values... | |
159 sub GetFingerprintsStringValues { | |
160 my($FingerprintsString) = @_; | |
161 | |
162 return _ParseFingerprintsStringValues($FingerprintsString); | |
163 } | |
164 | |
165 # Parse fingerprints string and return FingerprintsBitVector or FingerprintsVector object... | |
166 # | |
167 sub ParseFingerprintsString { | |
168 my($FingerprintsString) = @_; | |
169 | |
170 VECTORTYPE : { | |
171 if ($FingerprintsString =~ /^FingerprintsBitVector/i) { return ParseFingerprintsBitVectorString(@_); last VECTORTYPE; } | |
172 if ($FingerprintsString =~ /^FingerprintsVector/i) { return ParseFingerprintsVectorString(@_); last VECTORTYPE; } | |
173 croak "Error: FingerprintsStringUtil::ParseFingerprintsString: Fingerprints string vector type is not supported. Valid values: FingerprintsBitVector or FingerprintsVector..."; | |
174 } | |
175 return undef; | |
176 } | |
177 | |
178 # Parse fingerprints bit vector string and retrun bit vector... | |
179 # | |
180 sub ParseFingerprintsBitVectorString { | |
181 my($FingerprintsString, $ValidateValues) = @_; | |
182 my($ErrorMsgPrefix, $VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString); | |
183 | |
184 $ErrorMsgPrefix = "Error: ParsePathLengthFingerprintsBitVectorString"; | |
185 ($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString) = _ParseFingerprintsStringValues($FingerprintsString); | |
186 if ($ValidateValues) { | |
187 _ValidateFingerprintsStringValues($ErrorMsgPrefix, $VectorType, $Size, $BitStringFormat, $BitsOrder, $BitVectorString); | |
188 } | |
189 | |
190 return _GenerateFingerprintBitVector($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString); | |
191 } | |
192 | |
193 # Generate fingerints bit vector... | |
194 # | |
195 sub _GenerateFingerprintBitVector { | |
196 my($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString) = @_; | |
197 my($FingerprintsBitVector); | |
198 | |
199 $FingerprintsBitVector = undef; | |
200 | |
201 BITSTRINGFORMAT : { | |
202 if ($BitStringFormat =~ /^(BinaryString|Binary|Bin)$/i) { | |
203 $FingerprintsBitVector = Fingerprints::FingerprintsBitVector::NewFromBinaryString($BitVectorString, $BitsOrder); | |
204 last BITSTRINGFORMAT; | |
205 } | |
206 if ($BitStringFormat =~ /^(HexadecimalString|Hexadecimal|Hex)$/i) { | |
207 $FingerprintsBitVector = Fingerprints::FingerprintsBitVector::NewFromHexadecimalString($BitVectorString, $BitsOrder); | |
208 last BITSTRINGFORMAT; | |
209 } | |
210 croak "Error: FingerprintsStringUtil::_GenerateFingerprintBitVector: Specified bit vector string format, $BitStringFormat, is not supported. Value values: Binary, Bin, BinaryString, Hexdecimal, Hex, HexadecimalString..."; | |
211 } | |
212 | |
213 if (defined $FingerprintsBitVector) { | |
214 # Set fingerints vector type and description... | |
215 $FingerprintsBitVector->SetVectorType($VectorType); | |
216 $FingerprintsBitVector->SetDescription($Description); | |
217 | |
218 # Set specified size which might be different from the bit string size due to padding | |
219 # used by Perl vec function to handle bit vectors in BitVectot class... | |
220 # | |
221 $FingerprintsBitVector->SetSpecifiedSize($Size); | |
222 } | |
223 | |
224 return $FingerprintsBitVector; | |
225 } | |
226 | |
227 # Parse fingerprints vector string and retrun vector... | |
228 # | |
229 sub ParseFingerprintsVectorString { | |
230 my($FingerprintsString, $ValidateValues) = @_; | |
231 my($ErrorMsgPrefix, $VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2); | |
232 | |
233 $ErrorMsgPrefix = "Error: ParseFingerprintsVectorString"; | |
234 ($VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2) = _ParseFingerprintsStringValues($FingerprintsString); | |
235 | |
236 # No need to check $VectorString1 and $VectorString2 values as they would be | |
237 # checked later during the creation of FingerprintsVector... | |
238 # | |
239 if ($ValidateValues) { | |
240 _ValidateFingerprintsStringValues($ErrorMsgPrefix, $VectorType, $NumOfValues, $VectorValuesType, $VectorStringFormat); | |
241 } | |
242 | |
243 return _GenerateFingerprintVector($VectorType, $Description, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2); | |
244 } | |
245 | |
246 # Generate fingerints vector... | |
247 # | |
248 sub _GenerateFingerprintVector { | |
249 my($VectorType, $Description, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2) = @_; | |
250 my($FingerprintsVector, $VectorString); | |
251 | |
252 $VectorString = TextUtil::IsEmpty($VectorString2) ? $VectorString1 : "${VectorString1};${VectorString2}"; | |
253 $FingerprintsVector = undef; | |
254 | |
255 VECTORSTRINGFORMAT : { | |
256 if ($VectorStringFormat =~ /^(ValuesString|Values)$/i) { | |
257 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesString($VectorValuesType, $VectorString); | |
258 last VECTORSTRINGFORMAT; | |
259 } | |
260 if ($VectorStringFormat =~ /^(IDsAndValuesString|IDsAndValues)$/i) { | |
261 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesString($VectorValuesType, $VectorString); | |
262 last VECTORSTRINGFORMAT; | |
263 } | |
264 if ($VectorStringFormat =~ /^(IDsAndValuesPairsString|IDsAndValuesPairs)$/i) { | |
265 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromIDsAndValuesPairsString($VectorValuesType, $VectorString); | |
266 last VECTORSTRINGFORMAT; | |
267 } | |
268 if ($VectorStringFormat =~ /^(ValuesAndIDsString|ValuesAndIDs)$/i) { | |
269 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsString($VectorValuesType, $VectorString); | |
270 last VECTORSTRINGFORMAT; | |
271 } | |
272 if ($VectorStringFormat =~ /^(ValuesAndIDsPairsString|ValuesAndIDsPairs)$/i) { | |
273 $FingerprintsVector = Fingerprints::FingerprintsVector::NewFromValuesAndIDsPairsString($VectorValuesType, $VectorString); | |
274 last VECTORSTRINGFORMAT; | |
275 } | |
276 croak "Error: FingerprintsStringUtil::_GenerateFingerprintVector: Specified vector string format, $VectorStringFormat, is not supported. Value values: IDsAndValuesString, IDsAndValues, IDsAndValuesPairsString, IDsAndValuesPairs, ValuesAndIDsString, ValuesAndIDs, ValuesAndIDsPairsString, ValuesAndIDsPairs, ValuesString, Values..."; | |
277 } | |
278 | |
279 if (defined $FingerprintsVector) { | |
280 # Set fingerints vector type and description... | |
281 $FingerprintsVector->SetVectorType($VectorType); | |
282 $FingerprintsVector->SetDescription($Description); | |
283 } | |
284 | |
285 return $FingerprintsVector; | |
286 } | |
287 | |
288 # Validate fingerint string values... | |
289 # | |
290 sub AreFingerprintsStringValuesValid { | |
291 my($FingerprintsString) = @_; | |
292 my($Value); | |
293 | |
294 for $Value (_ParseFingerprintsStringValues($FingerprintsString)) { | |
295 if (TextUtil::IsEmpty($Value)) { | |
296 return 0; | |
297 } | |
298 } | |
299 return 1; | |
300 } | |
301 | |
302 # Get fingerprints description... | |
303 # | |
304 sub _GetFingerprintsDescription { | |
305 my($FingerprintsObject) = @_; | |
306 my($Description); | |
307 | |
308 $Description = $FingerprintsObject->GetDescription(); | |
309 | |
310 return TextUtil::IsEmpty($Description) ? 'No description available for fingerprints' : $Description; | |
311 } | |
312 | |
313 # Parse fingerprints string values... | |
314 # | |
315 sub _ParseFingerprintsStringValues { | |
316 my($FingerprintsString) = @_; | |
317 | |
318 return split "${FPStringDelim}", $FingerprintsString; | |
319 } | |
320 | |
321 # Check to make sure already parsed fingerprints string values are valid.... | |
322 # | |
323 sub _ValidateFingerprintsStringValues { | |
324 my($ErrorMsgPrefix, @Values) = @_; | |
325 my($Value); | |
326 | |
327 for $Value (@Values) { | |
328 if (TextUtil::IsEmpty($Value)) { | |
329 croak("${ErrorMsgPrefix}: _ValidateFingerprintsStringValues: Fingerprints string format is not valid: An empty value found..."); | |
330 } | |
331 } | |
332 } | |
333 | |
334 # Default bit string format... | |
335 # | |
336 sub GetDefaultBitStringFormat { | |
337 return 'HexadecimalString'; | |
338 } | |
339 | |
340 # Default bit order... | |
341 # | |
342 sub GetDefaultBitsOrder { | |
343 return 'Ascending'; | |
344 } | |
345 | |
346 # Default vector string format using fingerprints or fingerprints vector object... | |
347 # | |
348 sub GetDefaultVectorStringFormat { | |
349 my($FingerprintsObject) = @_; | |
350 my($FingerprintsVector); | |
351 | |
352 $FingerprintsVector = Fingerprints::FingerprintsVector::IsFingerprintsVector($FingerprintsObject) ? $FingerprintsObject : $FingerprintsObject->GetFingerprintsVector(); | |
353 | |
354 return _GetDefaultVectorStringFormat($FingerprintsVector); | |
355 } | |
356 | |
357 # Default vector string format using fingerprits vector object... | |
358 # | |
359 sub _GetDefaultVectorStringFormat { | |
360 my($FingerprintsVector) = @_; | |
361 my($Type); | |
362 | |
363 $Type = $FingerprintsVector->GetType(); | |
364 | |
365 return ($Type =~ /^NumericalValues$/i) ? 'IDsAndValuesString' : 'ValuesString'; | |
366 } | |
367 | |
368 # Fingerprints string delimiter... | |
369 # | |
370 sub GetFingeprintsStringDelimiter { | |
371 return $FPStringDelim; | |
372 } | |
373 | |
374 1; | |
375 | |
376 __END__ | |
377 | |
378 =head1 NAME | |
379 | |
380 FingerprintsStringUtil | |
381 | |
382 =head1 SYNOPSIS | |
383 | |
384 use Fingerprints::FingerprintsStringUtil; | |
385 | |
386 use Fingerprints::FingerprintsStringUtil qw(:all); | |
387 | |
388 =head1 DESCRIPTION | |
389 | |
390 B<FingerprintsStringUtil> module provides the following functions: | |
391 | |
392 AreFingerprintsStringValuesValid, GenerateFingerprintsBitVectorString, | |
393 GenerateFingerprintsString, GenerateFingerprintsVectorString, | |
394 GetDefaultBitStringFormat, GetDefaultBitsOrder, GetDefaultVectorStringFormat, | |
395 GetFingeprintsStringDelimiter, GetFingerprintsStringTypeAndDescription, | |
396 GetFingerprintsStringValues, ParseFingerprintsBitVectorString, | |
397 ParseFingerprintsString, ParseFingerprintsVectorString | |
398 | |
399 The current release of MayaChemTools supports the following types of fingerprint | |
400 bit-vector and vector strings: | |
401 | |
402 FingerprintsVector;AtomNeighborhoods:AtomicInvariantsAtomTypes:MinRadi | |
403 us0:MaxRadius2;41;AlphaNumericalValues;ValuesString;NR0-C.X1.BO1.H3-AT | |
404 C1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-ATC1 NR0-C.X | |
405 1.BO1.H3-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-A | |
406 TC1 NR0-C.X2.BO2.H2-ATC1:NR1-C.X2.BO2.H2-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2 | |
407 -C.X2.BO2.H2-ATC1:NR2-N.X3.BO3-ATC1:NR2-O.X1.BO1.H1-ATC1 NR0-C.X2.B... | |
408 | |
409 FingerprintsVector;AtomTypesCount:AtomicInvariantsAtomTypes:ArbitraryS | |
410 ize;10;NumericalValues;IDsAndValuesString;C.X1.BO1.H3 C.X2.BO2.H2 C.X2 | |
411 .BO3.H1 C.X3.BO3.H1 C.X3.BO4 F.X1.BO1 N.X2.BO2.H1 N.X3.BO3 O.X1.BO1.H1 | |
412 O.X1.BO2;2 4 14 3 10 1 1 1 3 2 | |
413 | |
414 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:ArbitrarySize;16;Nume | |
415 ricalValues;IDsAndValuesString;C1 C10 C11 C14 C18 C20 C21 C22 C5 CS F | |
416 N11 N4 O10 O2 O9;5 1 1 1 14 4 2 1 2 2 1 1 1 1 3 1 | |
417 | |
418 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:FixedSize;67;OrderedN | |
419 umericalValues;IDsAndValuesString;C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C | |
420 12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27 CS N1 N | |
421 2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 NS O1 O2 O3 O4 O5 O6 O7 O8 | |
422 O9 O10 O11 O12 OS F Cl Br I Hal P S1 S2 S3 Me1 Me2;5 0 0 0 2 0 0 0 0 1 | |
423 1 0 0 1 0 0 0 14 0 4 2 1 0 0 0 0 0 2 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0... | |
424 | |
425 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs | |
426 AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN | |
427 H SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0.073 3 | |
428 .024 -2.270 | |
429 | |
430 FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues; | |
431 ValuesString;0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435 | |
432 4.387 0 0 0 0 0 0 3.024 0 0 0 0 0 0 0 1.993 0 29.759 25.023 0 0 0 0 1 | |
433 4.006 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
434 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
435 | |
436 FingerprintsVector;ExtendedConnectivity:AtomicInvariantsAtomTypes:Radi | |
437 us2;60;AlphaNumericalValues;ValuesString;73555770 333564680 352413391 | |
438 666191900 1001270906 1371674323 1481469939 1977749791 2006158649 21414 | |
439 08799 49532520 64643108 79385615 96062769 273726379 564565671 85514103 | |
440 5 906706094 988546669 1018231313 1032696425 1197507444 1331250018 1338 | |
441 532734 1455473691 1607485225 1609687129 1631614296 1670251330 17303... | |
442 | |
443 FingerprintsVector;ExtendedConnectivityCount:AtomicInvariantsAtomTypes | |
444 :Radius2;60;NumericalValues;IDsAndValuesString;73555770 333564680 3524 | |
445 13391 666191900 1001270906 1371674323 1481469939 1977749791 2006158649 | |
446 2141408799 49532520 64643108 79385615 96062769 273726379 564565671...; | |
447 3 2 1 1 14 1 2 10 4 3 1 1 1 1 2 1 2 1 1 1 2 3 1 1 2 1 3 3 8 2 2 2 6 2 | |
448 1 2 1 1 2 1 1 1 2 1 1 2 1 2 1 1 1 1 1 1 1 1 1 2 1 1 | |
449 | |
450 FingerprintsBitVector;ExtendedConnectivityBits:AtomicInvariantsAtomTyp | |
451 es:Radius2;1024;BinaryString;Ascending;0000000000000000000000000000100 | |
452 0000000001010000000110000011000000000000100000000000000000000000100001 | |
453 1000000110000000000000000000000000010011000000000000000000000000010000 | |
454 0000000000000000000000000010000000000000000001000000000000000000000000 | |
455 0000000000010000100001000000000000101000000000000000100000000000000... | |
456 | |
457 FingerprintsVector;ExtendedConnectivity:FunctionalClassAtomTypes:Radiu | |
458 s2;57;AlphaNumericalValues;ValuesString;24769214 508787397 850393286 8 | |
459 62102353 981185303 1231636850 1649386610 1941540674 263599683 32920567 | |
460 1 571109041 639579325 683993318 723853089 810600886 885767127 90326012 | |
461 7 958841485 981022393 1126908698 1152248391 1317567065 1421489994 1455 | |
462 632544 1557272891 1826413669 1983319256 2015750777 2029559552 20404... | |
463 | |
464 FingerprintsVector;ExtendedConnectivity:EStateAtomTypes:Radius2;62;Alp | |
465 haNumericalValues;ValuesString;25189973 528584866 662581668 671034184 | |
466 926543080 1347067490 1738510057 1759600920 2034425745 2097234755 21450 | |
467 44754 96779665 180364292 341712110 345278822 386540408 387387308 50430 | |
468 1706 617094135 771528807 957666640 997798220 1158349170 1291258082 134 | |
469 1138533 1395329837 1420277211 1479584608 1486476397 1487556246 1566... | |
470 | |
471 FingerprintsBitVector;MACCSKeyBits;166;BinaryString;Ascending;00000000 | |
472 0000000000000000000000000000000001001000010010000000010010000000011100 | |
473 0100101010111100011011000100110110000011011110100110111111111111011111 | |
474 11111111111110111000 | |
475 | |
476 FingerprintsBitVector;MACCSKeyBits;322;BinaryString;Ascending;11101011 | |
477 1110011111100101111111000111101100110000000000000011100010000000000000 | |
478 0000000000000000000000000000000000000000000000101000000000000000000000 | |
479 0000000000000000000000000000000000000000000000000000000000000000000000 | |
480 0000000000000000000000000000000000000011000000000000000000000000000000 | |
481 0000000000000000000000000000000000000000 | |
482 | |
483 FingerprintsVector;MACCSKeyCount;166;OrderedNumericalValues;ValuesStri | |
484 ng;0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
485 0 0 0 0 0 0 0 1 0 0 3 0 0 0 0 4 0 0 2 0 0 0 0 0 0 0 0 2 0 0 2 0 0 0 0 | |
486 0 0 0 0 1 1 8 0 0 0 1 0 0 1 0 1 0 1 0 3 1 3 1 0 0 0 1 2 0 11 1 0 0 0 | |
487 5 0 0 1 2 0 1 1 0 0 0 0 0 1 1 0 1 1 1 1 0 4 0 0 1 1 0 4 6 1 1 1 2 1 1 | |
488 3 5 2 2 0 5 3 5 1 1 2 5 1 2 1 2 4 8 3 5 5 2 2 0 3 5 4 1 | |
489 | |
490 FingerprintsVector;MACCSKeyCount;322;OrderedNumericalValues;ValuesStri | |
491 ng;14 8 2 0 2 0 4 4 2 1 4 0 0 2 5 10 5 2 1 0 0 2 0 5 13 3 28 5 5 3 0 0 | |
492 0 4 2 1 1 0 1 1 0 0 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 22 5 3 0 0 0 1 0 | |
493 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 | |
494 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 11 0 2 0 0 0 0 0 0 0 0 0 | |
495 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ... | |
496 | |
497 FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng | |
498 th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110 | |
499 0100010101011000101001011100110001000010001001101000001001001001001000 | |
500 0010110100000111001001000001001010100100100000000011000000101001011100 | |
501 0010000001000101010100000100111100110111011011011000000010110111001101 | |
502 0101100011000000010001000011000010100011101100001000001000100000000... | |
503 | |
504 FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength | |
505 1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2 | |
506 C.X2.BO2.H2 4 C.X2.BO3.H1 14 C.X3.BO3.H1 3 C.X3.BO4 10 F.X1.BO1 1 N.X | |
507 2.BO2.H1 1 N.X3.BO3 1 O.X1.BO1.H1 3 O.X1.BO2 2 C.X1.BO1.H3C.X3.BO3.H1 | |
508 2 C.X2.BO2.H2C.X2.BO2.H2 1 C.X2.BO2.H2C.X3.BO3.H1 4 C.X2.BO2.H2C.X3.BO | |
509 4 1 C.X2.BO2.H2N.X3.BO3 1 C.X2.BO3.H1:C.X2.BO3.H1 10 C.X2.BO3.H1:C.... | |
510 | |
511 FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt | |
512 h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1 | |
513 8 COO 1 CR 9 F 1 N5 1 NC=O 1 O=CN 1 O=CO 1 OC=O 1 OR 2 C5A:C5B 2 C5A:N | |
514 5 2 C5ACB 1 C5ACR 1 C5B:C5B 1 C5BC=ON 1 C5BCB 1 C=ON=O=CN 1 C=ONNC=O 1 | |
515 CB:CB 18 CBF 1 CBNC=O 1 COO=O=CO 1 COOCR 1 COOOC=O 1 CRCR 7 CRN5 1 CR | |
516 OR 2 C5A:C5B:C5B 2 C5A:C5BC=ON 1 C5A:C5BCB 1 C5A:N5:C5A 1 C5A:N5CR ... | |
517 | |
518 FingerprintsVector;TopologicalAtomPairs:AtomicInvariantsAtomTypes:MinD | |
519 istance1:MaxDistance10;223;NumericalValues;IDsAndValuesString;C.X1.BO1 | |
520 .H3-D1-C.X3.BO3.H1 C.X2.BO2.H2-D1-C.X2.BO2.H2 C.X2.BO2.H2-D1-C.X3.BO3. | |
521 H1 C.X2.BO2.H2-D1-C.X3.BO4 C.X2.BO2.H2-D1-N.X3.BO3 C.X2.BO3.H1-D1-...; | |
522 2 1 4 1 1 10 8 1 2 6 1 2 2 1 2 1 2 2 1 2 1 5 1 10 12 2 2 1 2 1 9 1 3 1 | |
523 1 1 2 2 1 3 6 1 6 14 2 2 2 3 1 3 1 8 2 2 1 3 2 6 1 2 2 5 1 3 1 23 1... | |
524 | |
525 FingerprintsVector;TopologicalAtomPairs:FunctionalClassAtomTypes:MinDi | |
526 stance1:MaxDistance10;144;NumericalValues;IDsAndValuesString;Ar-D1-Ar | |
527 Ar-D1-Ar.HBA Ar-D1-HBD Ar-D1-Hal Ar-D1-None Ar.HBA-D1-None HBA-D1-NI H | |
528 BA-D1-None HBA.HBD-D1-NI HBA.HBD-D1-None HBD-D1-None NI-D1-None No...; | |
529 23 2 1 1 2 1 1 1 1 2 1 1 7 28 3 1 3 2 8 2 1 1 1 5 1 5 24 3 3 4 2 13 4 | |
530 1 1 4 1 5 22 4 4 3 1 19 1 1 1 1 1 2 2 3 1 1 8 25 4 5 2 3 1 26 1 4 1 ... | |
531 | |
532 FingerprintsVector;TopologicalAtomTorsions:AtomicInvariantsAtomTypes;3 | |
533 3;NumericalValues;IDsAndValuesString;C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4- | |
534 C.X3.BO4 C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4-N.X3.BO3 C.X2.BO2.H2-C.X2.BO | |
535 2.H2-C.X3.BO3.H1-C.X2.BO2.H2 C.X2.BO2.H2-C.X2.BO2.H2-C.X3.BO3.H1-O...; | |
536 2 2 1 1 2 2 1 1 3 4 4 8 4 2 2 6 2 2 1 2 1 1 2 1 1 2 6 2 4 2 1 3 1 | |
537 | |
538 FingerprintsVector;TopologicalAtomTorsions:EStateAtomTypes;36;Numerica | |
539 lValues;IDsAndValuesString;aaCH-aaCH-aaCH-aaCH aaCH-aaCH-aaCH-aasC aaC | |
540 H-aaCH-aasC-aaCH aaCH-aaCH-aasC-aasC aaCH-aaCH-aasC-sF aaCH-aaCH-aasC- | |
541 ssNH aaCH-aasC-aasC-aasC aaCH-aasC-aasC-aasN aaCH-aasC-ssNH-dssC a...; | |
542 4 4 8 4 2 2 6 2 2 2 4 3 2 1 3 3 2 2 2 1 2 1 1 1 2 1 1 1 1 1 1 1 2 1 1 2 | |
543 | |
544 FingerprintsVector;TopologicalAtomTriplets:AtomicInvariantsAtomTypes:M | |
545 inDistance1:MaxDistance10;3096;NumericalValues;IDsAndValuesString;C.X1 | |
546 .BO1.H3-D1-C.X1.BO1.H3-D1-C.X3.BO3.H1-D2 C.X1.BO1.H3-D1-C.X2.BO2.H2-D1 | |
547 0-C.X3.BO4-D9 C.X1.BO1.H3-D1-C.X2.BO2.H2-D3-N.X3.BO3-D4 C.X1.BO1.H3-D1 | |
548 -C.X2.BO2.H2-D4-C.X2.BO2.H2-D5 C.X1.BO1.H3-D1-C.X2.BO2.H2-D6-C.X3....; | |
549 1 2 2 2 2 2 2 2 8 8 4 8 4 4 2 2 2 2 4 2 2 2 4 2 2 2 2 1 2 2 4 4 4 2 2 | |
550 2 4 4 4 8 4 4 2 4 4 4 2 4 4 2 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 8... | |
551 | |
552 FingerprintsVector;TopologicalAtomTriplets:SYBYLAtomTypes:MinDistance1 | |
553 :MaxDistance10;2332;NumericalValues;IDsAndValuesString;C.2-D1-C.2-D9-C | |
554 .3-D10 C.2-D1-C.2-D9-C.ar-D10 C.2-D1-C.3-D1-C.3-D2 C.2-D1-C.3-D10-C.3- | |
555 D9 C.2-D1-C.3-D2-C.3-D3 C.2-D1-C.3-D2-C.ar-D3 C.2-D1-C.3-D3-C.3-D4 C.2 | |
556 -D1-C.3-D3-N.ar-D4 C.2-D1-C.3-D3-O.3-D2 C.2-D1-C.3-D4-C.3-D5 C.2-D1-C. | |
557 3-D5-C.3-D6 C.2-D1-C.3-D5-O.3-D4 C.2-D1-C.3-D6-C.3-D7 C.2-D1-C.3-D7... | |
558 | |
559 FingerprintsVector;TopologicalPharmacophoreAtomPairs:ArbitrarySize:Min | |
560 Distance1:MaxDistance10;54;NumericalValues;IDsAndValuesString;H-D1-H H | |
561 -D1-NI HBA-D1-NI HBD-D1-NI H-D2-H H-D2-HBA H-D2-HBD HBA-D2-HBA HBA-D2- | |
562 HBD H-D3-H H-D3-HBA H-D3-HBD H-D3-NI HBA-D3-NI HBD-D3-NI H-D4-H H-D4-H | |
563 BA H-D4-HBD HBA-D4-HBA HBA-D4-HBD HBD-D4-HBD H-D5-H H-D5-HBA H-D5-...; | |
564 18 1 2 1 22 12 8 1 2 18 6 3 1 1 1 22 13 6 5 7 2 28 9 5 1 1 1 36 16 10 | |
565 3 4 1 37 10 8 1 35 10 9 3 3 1 28 7 7 4 18 16 12 5 1 2 1 | |
566 | |
567 FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist | |
568 ance1:MaxDistance10;150;OrderedNumericalValues;ValuesString;18 0 0 1 0 | |
569 0 0 2 0 0 1 0 0 0 0 22 12 8 0 0 1 2 0 0 0 0 0 0 0 0 18 6 3 1 0 0 0 1 | |
570 0 0 1 0 0 0 0 22 13 6 0 0 5 7 0 0 2 0 0 0 0 0 28 9 5 1 0 0 0 1 0 0 1 0 | |
571 0 0 0 36 16 10 0 0 3 4 0 0 1 0 0 0 0 0 37 10 8 0 0 0 0 1 0 0 0 0 0 0 | |
572 0 35 10 9 0 0 3 3 0 0 1 0 0 0 0 0 28 7 7 4 0 0 0 0 0 0 0 0 0 0 0 18... | |
573 | |
574 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:ArbitrarySize: | |
575 MinDistance1:MaxDistance10;696;NumericalValues;IDsAndValuesString;Ar1- | |
576 Ar1-Ar1 Ar1-Ar1-H1 Ar1-Ar1-HBA1 Ar1-Ar1-HBD1 Ar1-H1-H1 Ar1-H1-HBA1 Ar1 | |
577 -H1-HBD1 Ar1-HBA1-HBD1 H1-H1-H1 H1-H1-HBA1 H1-H1-HBD1 H1-HBA1-HBA1 H1- | |
578 HBA1-HBD1 H1-HBA1-NI1 H1-HBD1-NI1 HBA1-HBA1-NI1 HBA1-HBD1-NI1 Ar1-...; | |
579 46 106 8 3 83 11 4 1 21 5 3 1 2 2 1 1 1 100 101 18 11 145 132 26 14 23 | |
580 28 3 3 5 4 61 45 10 4 16 20 7 5 1 3 4 5 3 1 1 1 1 5 4 2 1 2 2 2 1 1 1 | |
581 119 123 24 15 185 202 41 25 22 17 3 5 85 95 18 11 23 17 3 1 1 6 4 ... | |
582 | |
583 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:FixedSize:MinD | |
584 istance1:MaxDistance10;2692;OrderedNumericalValues;ValuesString;46 106 | |
585 8 3 0 0 83 11 4 0 0 0 1 0 0 0 0 0 0 0 0 21 5 3 0 0 1 2 2 0 0 1 0 0 0 | |
586 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 100 101 18 11 0 0 145 132 26 | |
587 14 0 0 23 28 3 3 0 0 5 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 61 45 10 4 0 | |
588 0 16 20 7 5 1 0 3 4 5 3 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 5 ... | |
589 | |
590 =head1 FUNCTIONS | |
591 | |
592 =over 4 | |
593 | |
594 =item B<AreFingerprintsStringValuesValid> | |
595 | |
596 $Status = AreFingerprintsStringValuesValid($FPString); | |
597 | |
598 Returns 0 or 1 based on whether I<FingerprintsString> contains valid values. | |
599 | |
600 =item B<GetDefaultBitStringFormat> | |
601 | |
602 $BitStringFormat = GetDefaultBitStringFormat(); | |
603 | |
604 Returns default B<BitStringFormat> for fingerprints bit-vector strings. | |
605 | |
606 =item B<GetDefaultBitsOrder> | |
607 | |
608 $BitsOrder = GetDefaultBitsOrder(); | |
609 | |
610 Returns default B<BitsOrder> for fingerprints bit-vector fingerprints. | |
611 | |
612 =item B<GetDefaultVectorStringFormat> | |
613 | |
614 $StringFormat = GetDefaultVectorStringFormat(); | |
615 | |
616 Returns default B<VectorStringFormat> for fingerprints vector strings. | |
617 | |
618 =item B<GetFingeprintsStringDelimiter> | |
619 | |
620 $Delimiter = GetFingeprintsStringDelimiter(); | |
621 | |
622 Returns string B<Delimiter> used to generate fingerprints bit-vector and vector strings. | |
623 | |
624 =item B<GenerateFingerprintsBitVectorString> | |
625 | |
626 $FPString = GenerateFingerprintsBitVectorString($FPBitVectorObject, | |
627 [$BitStringFormat, $BitsOrder]); | |
628 | |
629 Returns a B<FingerprintsString> generated using I<FingerprintsBitVectorObject> and | |
630 optionally specified I<BitStringFormat> and I<BitsOrder> values. | |
631 | |
632 Possible I<BitStringFormat> values: I<BinaryString, Binary, Bin, HexadecimalString, | |
633 Hexadecimal, or Hex>. Default I<BitStringFormat> value: I<BinaryString>. | |
634 | |
635 Possible I<BitsOrder> values: I<Ascending or Descending>. Default I<BitsOrder> value: | |
636 I<Ascending>. | |
637 | |
638 =item B<GenerateFingerprintsVectorString> | |
639 | |
640 $FPString = GenerateFingerprintsVectorString($FPVectorObject, | |
641 [$VectorStringFormat]); | |
642 | |
643 Returns a B<FingerprintsString> generated using I<FingerprintsVectorObject> and optionally | |
644 specified I<VectorStringFormat>. | |
645 | |
646 Possible I<VectorStringFormat> values: I<IDsAndValuesString, IDsAndValues, | |
647 IDsAndValuesPairsString, IDsAndValuesPairs, ValuesAndIDsString, ValuesAndIDs, | |
648 ValuesAndIDsPairsString, ValuesAndIDsPairs, ValuesString, Values>. | |
649 | |
650 Default I<VectorStringFormat> value: for I<NumericalValues> I<FPVectorType> - | |
651 I<IDsAndValuesString>; for all other I<FPVectorType>s - I<ValuesString>. | |
652 | |
653 =item B<GenerateFingerprintsString> | |
654 | |
655 $FPString = GenerateFingerprintsBitVectorString($FPBitVectorObject, | |
656 [$BitStringFormat, $BitsOrder]); | |
657 | |
658 $FPString = GenerateFingerprintsVectorString($FPVectorObject, | |
659 [$VectorStringFormat]); | |
660 | |
661 Returns a B<FingerprintsString> generated using I<FingerprintsBitVectorObject> or | |
662 I<FingerprintsVectorObject> and optionally specified parameters. | |
663 | |
664 =item B<GetFingerprintsStringTypeAndDescription> | |
665 | |
666 ($FPType, $FPDescription) = GetFingerprintsStringTypeAndDescription( | |
667 $FPString); | |
668 | |
669 Returns B<FingerprintsStringType> and I<FingerprintsStringDescription> strings for | |
670 B<FingerprintsString> corresponding to B<FingerprintsBitVectorObject> or | |
671 B<FingerprintsVectorObject>. | |
672 | |
673 =item B<GetFingerprintsStringValues> | |
674 | |
675 @FPStringValues = GetFingerprintsStringValues($FPString); | |
676 | |
677 Parses B<FingerprintsString> corresponding to B<FingerprintsBitVectorObject> or | |
678 B<FingerprintsVectorObject> and returns its individual component values as an | |
679 array. | |
680 | |
681 =item B<ParseFingerprintsBitVectorString> | |
682 | |
683 $FPBitVectorObject = ParseFingerprintsBitVectorString($FPBitVectorString, | |
684 [$ValidateValues]); | |
685 | |
686 Returns B<FingerprintsBitVectorObject> generated by parsing I<FingerprintsBitVectorString> | |
687 with optional validation of its component values. | |
688 | |
689 =item B<ParseFingerprintsString> | |
690 | |
691 $FPBitVectorObject = ParseFingerprintsBitVectorString($FPBitVectorString, | |
692 [$ValidateValues]); | |
693 | |
694 $FPVectorObject = ParseFingerprintsVectorString($FPVectorString, | |
695 [$ValidateValues]); | |
696 | |
697 Returns B<FingerprintsBitVectorObject> or I<B<FingerprintsVectorObject>> generated | |
698 by parsing I<FingerprintsBitVectorString> or I<FingerprintsVectorString> with | |
699 optional validation of its component values. | |
700 | |
701 =item B<ParseFingerprintsVectorString> | |
702 | |
703 $FPVectorObject = ParseFingerprintsVectorString($FPVectorString, | |
704 [$ValidateValues]); | |
705 | |
706 Returns B<FingerprintsVectorObject> generated by parsing I<FingerprintsVectorString> | |
707 with optional validation of its component values. | |
708 | |
709 =back | |
710 | |
711 =head1 AUTHOR | |
712 | |
713 Manish Sud <msud@san.rr.com> | |
714 | |
715 =head1 SEE ALSO | |
716 | |
717 BitVector.pm, FingerprintsBitVector.pm, FingerprintsVector.pm, Vector.pm | |
718 | |
719 =head1 COPYRIGHT | |
720 | |
721 Copyright (C) 2015 Manish Sud. All rights reserved. | |
722 | |
723 This file is part of MayaChemTools. | |
724 | |
725 MayaChemTools is free software; you can redistribute it and/or modify it under | |
726 the terms of the GNU Lesser General Public License as published by the Free | |
727 Software Foundation; either version 3 of the License, or (at your option) | |
728 any later version. | |
729 | |
730 =cut |