annotate lib/FileIO/FingerprintsFPFileIO.pm @ 0:4816e4a8ae95 draft default tip

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 09:23:18 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1 package FileIO::FingerprintsFPFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: FingerprintsFPFileIO.pm,v $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:48:43 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.19 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
6 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
7 # Author: Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
8 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
10 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
11 # This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
12 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
14 # the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
15 # Software Foundation; either version 3 of the License, or (at your option) any
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
16 # later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
17 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
18 # MayaChemTools is distributed in the hope that it will be useful, but without
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
19 # any warranty; without even the implied warranty of merchantability of fitness
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
20 # for a particular purpose. See the GNU Lesser General Public License for more
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
21 # details.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
22 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
23 # You should have received a copy of the GNU Lesser General Public License
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
26 # Boston, MA, 02111-1307, USA.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
27 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
28
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
29 use strict;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
30 use Carp;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 use Exporter;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 use Scalar::Util ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33 use TextUtil ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34 use FileUtil ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35 use TimeUtil ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 use Fingerprints::FingerprintsStringUtil ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37 use PackageInfo ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38 use FileIO::FileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 @ISA = qw(FileIO::FileIO Exporter);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43 @EXPORT = qw();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 @EXPORT_OK = qw(IsFingerprintsFPFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46 %EXPORT_TAGS = (all => [@EXPORT, @EXPORT_OK]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 # Setup class variables...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49 my($ClassName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 _InitializeClass();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 # Class constructor...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53 sub new {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54 my($Class, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 # Initialize object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 my $This = $Class->SUPER::new();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58 bless $This, ref($Class) || $Class;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 $This->_InitializeFingerprintsFPFileIO();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 $This->_InitializeFingerprintsFPFileIOProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 # Initialize object data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68 sub _InitializeFingerprintsFPFileIO {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 # Fingerprints string data format during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 # For file read:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75 # AutoDetect - automatically detect format of fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 # Default value: AutoDetect
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 # For file write:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86 # Default value: undef
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88 $This->{FingerprintsStringMode} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 # For file read:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92 # o Fingerprints bit-vector and vector object for current fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 # For file write:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 # o Fingerprints bit-vector and vector object for current fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 # o Any supported fingerprints object: PathLengthFingerprints, ExtendedConnectivity, and so on.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101 # Fingeprints string for current line during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104 # Partial fingeprints string corresponding to what's on the current line for current
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 # line during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 $This->{PartialFingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 # Required header data keys and values during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 @{$This->{RequiredHeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110 %{$This->{RequiredHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 # First data line read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113 $This->{FirstDataLineIO} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115 # Current fingerprints string data line number during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 $This->{LineNum} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 # FP line data during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121 # Initialize parameters for read...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 $This->_InitializeFingerprintsFPFileIORead();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124 # Initialize parameters for write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 $This->_InitializeFingerprintsFPFileIOWrite();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 # Initialize class ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 sub _InitializeClass {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132 #Class name...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133 $ClassName = __PACKAGE__;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137 # Initialize object data for reading fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139 sub _InitializeFingerprintsFPFileIORead {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142 # Header data keys and values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 @{$This->{HeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145 %{$This->{HeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146 %{$This->{CannonicalHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148 # By default, the fingerprints data is assumed to be valid and no validation is
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 # performed before generating fingerprints objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 $This->{ValidateData} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 # Level of detail to print during validation of data for invalid or missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154 $This->{DetailLevel} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 # Number of missing and invalid fingerprints string data lines...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157 $This->{NumOfLinesWithMissingData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 $This->{NumOfLinesWithInvalidData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160 # Compound ID for current fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 $This->{CompoundID} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 # Status of data in fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 $This->{ValidFileData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165 $This->{ValidRequiredHeaderDataKeys} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 # Initialize object data for writing fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173 sub _InitializeFingerprintsFPFileIOWrite {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 # Fingerprints bit vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178 # Possible values: BinaryString or HexadecimalString [Default]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 # Default BitStringFormat is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultBitStringFormat.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182 $This->{BitStringFormat} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 # Bits order in fingerprints bit vector string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 # Ascending - First bit in each byte as the lowest bit [Default]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187 # Descending - First bit in each byte as the highest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 # Default BitsOrder is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultBitsOrder.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191 $This->{BitsOrder} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 # Fingerprints vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195 # Possible values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, ValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197 # Default VectorStringFormat is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultVectorStringFormat.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198 # For fingerprints vector object containing vector NumericalValues, it corresponds to IDsAndValuesString; otherwise,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199 # it's set to ValuesString.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201 $This->{VectorStringFormat} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203 # Overwriting existing file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204 $This->{Overwrite} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
209 # Initialize object values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
210 sub _InitializeFingerprintsFPFileIOProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
211 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
212
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
213 # All other property names and values along with all Set/Get<PropertyName> methods
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
214 # are implemented on-demand using ObjectProperty class.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
215
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
216 my($Name, $Value, $MethodName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
217 while (($Name, $Value) = each %NamesAndValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
218 $MethodName = "Set${Name}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
219 $This->$MethodName($Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
220 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
221
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
222 if (!exists $NamesAndValues{Name}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
223 croak "Error: ${ClassName}->New: Object can't be instantiated without specifying file name...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
224 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
225
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
226 # Make sure it's a fingerprints file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
227 $Name = $NamesAndValues{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
228 if (!$This->IsFingerprintsFPFile($Name)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
229 croak "Error: ${ClassName}->New: Object can't be instantiated: File, $Name, doesn't appear to be fingerprints format...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
230 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
231
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
232 if ($This->GetMode() =~ /^Read$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
233 $This->_InitializeFingerprintsFPFileIOReadProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
234 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
235 elsif ($This->GetMode() =~ /^(Write|Append)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
236 $This->_InitializeFingerprintsFPFileIOWriteProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
237 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
238
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
239 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
240 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
241
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
242 # Initialize object properties for reading fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
243 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
244 sub _InitializeFingerprintsFPFileIOReadProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
245 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
246
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
247 # Set default value for FingerprintsStringMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
248 if (!$This->{FingerprintsStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
249 $This->{FingerprintsStringMode} = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
250 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
251
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
252 $This->_PrepareForReadingFingerprintsFPFileData();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
253
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
254 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
255 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
256
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
257 # Initialize object properties for writing fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
258 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
259 sub _InitializeFingerprintsFPFileIOWriteProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
260 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
261
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
262 # Check FingerprintsStringMode value...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
263 if (!exists $NamesAndValues{FingerprintsStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
264 croak "Error: ${ClassName}->New: Object can't be instantiated without specifying FingerprintsStringMode...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
265 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
266
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
267 if ($This->{FingerprintsStringMode} !~ /^(FingerprintsBitVectorString|FingerprintsVectorString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
268 croak "Error: ${ClassName}->New: Object can't be instantiated: FingerprintsStringMode value, $This->{FingerprintsStringMode}, is not valid; Supported values for write/append: FingerprintsBitVectorString or FingerprintsVectorString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
269 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
271 $This->_PrepareForWritingFingerprintsFPFileData();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
272
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
273 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
274 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
275
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
276 # Set FingerprintsStringMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
277 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
278 sub SetFingerprintsStringMode {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
279 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
280
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
281 # AutoDetect - automatically detect format of fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
282 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
283 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
284
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
285 if ($Value !~ /^(AutoDetect|FingerprintsBitVectorString|FingerprintsVectorString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
286 croak "Error: ${ClassName}->SetFingerprintsStringMode: FingerprintsStringMode value, $Value, is not valid; Supported values: AutoDetect, FingerprintsBitVectorString or FingerprintsVectorString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
287 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
288
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
289 $This->{FingerprintsStringMode} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
290
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
291 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
292 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
293
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
294 # Set DetailLevel...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
295 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
296 sub SetDetailLevel {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
297 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
298
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
299 if (!TextUtil::IsPositiveInteger($Value)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
300 croak "Error: ${ClassName}->SetDetailLevel: DetailLevel value, $Value, is not valid; Supported values: > 0...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
301 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
302
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
303 $This->{DetailLevel} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
304
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
305 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
306 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
307
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
308 # Set BitStringFormat...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
309 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
310 sub SetBitStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
311 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
312
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
313 if ($Value !~ /^(BinaryString|HexadecimalString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
314 croak "Error: ${ClassName}->SetBitStringFormat: BitStringFormat value, $Value, is not valid; Supported values: BinaryString or HexadecimalString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
315 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
316
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
317 $This->{BitStringFormat} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
318
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
319 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
320 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
321
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
322 # Set BitsOrder...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
323 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
324 sub SetBitsOrder {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
325 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
326
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
327 # Ascending - First bit in each byte as the lowest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
328 # Descending - First bit in each byte as the highest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
329 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
330 if ($Value !~ /^(Ascending|Descending)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
331 croak "Error: ${ClassName}->SetBitsOrder: FingerprintsStringMode value, $Value, is not valid; Supported values: Ascending or Descending...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
332 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
333
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
334 $This->{BitsOrder} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
335
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
336 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
337 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
338
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
339 # Set compound ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
340 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
341 sub SetCompoundID {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
342 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
343
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
344 if ($Value =~ / /) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
345 $Value =~ s/ //g;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
346 carp "Warning: ${ClassName}->SetCompoundID: Spaces are not allowed in compound ID; They have been removed...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
347 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
348
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
349 $This->{CompoundID} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
350
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
351 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
352 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
353
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
354 # Set VectorStringFormat...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
355 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
356 sub SetVectorStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
357 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
358
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
359 # Possible values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
360
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
361 if ($Value !~ /^(IDsAndValuesString|IDsAndValuesPairsString|ValuesAndIDsString|ValuesAndIDsPairsString|ValuesString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
362 croak "Error: ${ClassName}->SetVectorStringFormat: FingerprintsStringMode value, $Value, is not valid; Supported values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, or ValuesString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
363 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
364
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
365 $This->{VectorStringFormat} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
366
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
367 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
368 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
369
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
370 # Get header data keys or number of header data keys in header data block...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
371 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
372 sub GetHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
373 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
374
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
375 return wantarray ? @{$This->{HeaderDataKeys}} : scalar @{$This->{HeaderDataKeys}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
376 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
377
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
378 # Set header data keys...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
379 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
380 sub SetHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
381 my($This, @Keys) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
382
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
383 croak "Error: ${ClassName}->SetHeaderDataKeys: Can't set HeaderDataKeys: Not allowed...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
384
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
385 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
386 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
387
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
388 # Get header data keys and values hash...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
389 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
390 sub GetHeaderDataKeysAndValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
391 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
392
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
393 return %{$This->{HeaderDataKeysAndValues}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
394 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
395
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
396 # Set header data keys and values hash...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
397 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
398 sub SetHeaderDataKeysAndValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
399 my($This, %KeysAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
400
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
401 croak "Error: ${ClassName}->SetHeaderDataKeysAndValues: Can't set HeaderDataKeysAndValues: Not allowed...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
402
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
403 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
404 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
405
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
406 # Get required header data keys or number of header data keys in header data block...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
407 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
408 sub GetRequiredHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
409 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
410
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
411 return wantarray ? @{$This->{RequiredHeaderDataKeys}} : scalar @{$This->{RequiredHeaderDataKeys}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
412 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
413
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
414 # Set required header data keys...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
415 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
416 sub SetRequiredHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
417 my($This, @Keys) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
418
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
419 croak "Error: ${ClassName}->SetRequiredHeaderDataKeys: Can't set RequiredHeaderDataKeys: Not allowed...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
420
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
421 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
422 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
423
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
424 # Get required header data keys and values hash...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
425 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
426 sub GetRequiredHeaderDataKeysAndValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
427 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
428
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
429 return %{$This->{RequiredHeaderDataKeysAndValues}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
430 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
431
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
432 # Set required header data keys and values hash...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
433 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
434 sub SetRequiredHeaderDataKeysAndValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
435 my($This, %KeysAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
436
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
437 croak "Error: ${ClassName}->SetRequiredHeaderDataKeysAndValues: Can't set RequiredHeaderDataKeysAndValues: Not allowed...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
438
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
439 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
440 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
441
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
442 # Get fingerprints object for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
443 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
444 sub GetFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
445 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
446
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
447 return $This->{FingerprintsObject};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
448 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
449
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
450 # Set fingerprints object for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
451 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
452 sub SetFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
453 my($This, $FingerprintsObject) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
454
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
455 $This->{FingerprintsObject} = $FingerprintsObject;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
456
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
457 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
458 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
459
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
460 # Get fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
461 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
462 sub GetFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
463 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
464
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
465 return $This->{FingerprintsString} ? $This->{FingerprintsString} : 'None';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
466 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
467
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
468 # Set fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
469 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
470 sub SetFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
471 my($This, $FingerprintsString) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
472
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
473 $This->{FingerprintsString} = $FingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
474
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
475 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
476 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
477
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
478 # Get partial fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
479 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
480 sub GetPartialFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
481 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
482
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
483 return $This->{PartialFingerprintsString} ? $This->{PartialFingerprintsString} : 'None';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
484 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
485
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
486 # Set partial fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
487 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
488 sub SetPartialFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
489 my($This, $PartialFingerprintsString) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
490
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
491 $This->{PartialFingerprintsString} = $PartialFingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
492
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
493 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
494 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
495
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
496 # Does fingerprints FP file contain valid data?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
497 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
498 sub IsFingerprintsFileDataValid {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
499 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
500
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
501 return $This->{ValidFileData} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
502 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
503
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
504 # Does current data line contains valid fingerprints object data?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
505 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
506 sub IsFingerprintsDataValid {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
507 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
508
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
509 return defined $This->{FingerprintsObject} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
510 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
511
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
512 # Check presence of a header data key...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
513 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
514 sub IsHeaderDataKeyPresent {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
515 my($This, $Key) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
516 my($CannonicalKey);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
517
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
518 $CannonicalKey = lc $Key;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
519
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
520 return exists $This->{CannonicalHeaderDataKeysAndValues}{$CannonicalKey} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
521 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
522
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
523 # Get value of header data key...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
524 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
525 sub GetHeaderDataKeyValue {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
526 my($This, $Key) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
527 my($CannonicalKey);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
528
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
529 $CannonicalKey = lc $Key;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
530
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
531 return exists $This->{CannonicalHeaderDataKeysAndValues}{$CannonicalKey} ? $This->{CannonicalHeaderDataKeysAndValues}{$CannonicalKey} : undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
532 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
533
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
534 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
535 # Read next available fingerprints line, process it and generate appropriate fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
536 # objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
537 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
538 sub Read {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
539 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
540
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
541 # Read data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
542 if (!$This->_ReadDataLine()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
543 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
544 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
545
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
546 # No need to process invalid FP file with invalid data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
547 if (!$This->{ValidFileData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
548 if ($This->{ValidateData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
549 $This->{NumOfLinesWithMissingData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
550 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
551 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
552 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
553
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
554 # Perform data validation...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
555 if ($This->{ValidateData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
556 if (!$This->_ValidateReadDataLine()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
557 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
558 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
559 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
560
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
561 # Check again to handle problematic data for non-validated data lines...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
562 if (!$This->{FingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
563 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
564 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
565
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
566 # Generate fingeprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
567 $This->_GenerateFingerprintsObject();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
568
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
569 # Setup fingerprints compound ID for fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
570 $This->_GenerateCompoundID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
571
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
572 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
573 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
574
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
575 # Read next available fingerprints line, process it and generate appropriate fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
576 # objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
577 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
578 sub Next {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
579 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
580
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
581 return $This->Read();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
582 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
583
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
584 # Read fingerprints data line line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
585 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
586 sub _ReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
587 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
588
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
589 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
590 $This->_InitializeReadDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
591
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
592 if ($This->{FirstDataLineIO}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
593 # Get first data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
594 $This->_ProcessFirstDataLineRead();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
595 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
596 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
597 # Get next data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
598 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
599 $This->{DataLine} = TextUtil::GetTextLine($This->{FileHandle});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
600 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
601
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
602 # Is it end of file?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
603 if (!$This->{DataLine}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
604 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
605 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
606
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
607 # Process data line to retrieve compound ID and fingerprints string information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
608 $This->_ProcessDataLineRead();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
609
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
610 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
611 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
612
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
613 # Process data line to retrieve compound ID and fingerprints string information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
614 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
615 sub _ProcessDataLineRead {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
616 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
617 my($CompoundID, $PartialFingerprintsString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
618
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
619 ($CompoundID, $PartialFingerprintsString) = $This->{DataLine} =~ /^(.*?)[ ]+(.*?)$/;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
620
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
621 if (!(defined($CompoundID) && defined($PartialFingerprintsString))) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
622 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
623 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
624
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
625 $This->{CompoundID} = $CompoundID;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
626 $This->{PartialFingerprintsString} = $PartialFingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
627
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
628 # Set up fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
629 $This->_GenerateFingerprintsStringFromPartialFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
630
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
631 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
632 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
633
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
634 # Initialize data line for reading...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
635 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
636 sub _InitializeReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
637 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
638
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
639 $This->{CompoundID} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
640 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
641
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
642 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
643
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
644 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
645 $This->{PartialFingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
646
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
647 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
648 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
649
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
650 # Validate fingerprints string data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
651 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
652 sub _ValidateReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
653 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
654
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
655 # Check for missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
656 if (!($This->{CompoundID} && $This->{PartialFingerprintsString})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
657 # Missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
658 $This->{NumOfLinesWithMissingData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
659 if ($This->{DetailLevel} >= 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
660 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains no fingerprints data: $This->{DataLine}...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
661 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
662 elsif ($This->{DetailLevel} >= 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
663 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains no fingerprints data...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
664 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
665 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
666 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
667
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
668 # Check for invalid data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
669 my($InvalidFingerprintsData);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
670
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
671 $InvalidFingerprintsData = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
672 if ($This->{FingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
673 $InvalidFingerprintsData = Fingerprints::FingerprintsStringUtil::AreFingerprintsStringValuesValid($This->{FingerprintsString}) ? 0 : 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
674 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
675 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
676 $InvalidFingerprintsData = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
677 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
678
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
679 if ($InvalidFingerprintsData) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
680 $This->{NumOfLinesWithInvalidData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
681 if ($This->{DetailLevel} >= 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
682 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains invalid fingerprints data: $This->{DataLine}...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
683 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
684 elsif ($This->{DetailLevel} >= 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
685 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains invalid fingerprints data...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
686 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
687 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
688 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
689
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
690 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
691 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
692
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
693 # Setup fingerprints compound ID for fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
694 sub _GenerateCompoundID {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
695 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
696
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
697 # Set fingerprints ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
698 if ($This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
699 $This->{FingerprintsObject}->SetID($This->{CompoundID});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
700 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
701
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
702 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
703 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
704
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
705 # Process first read...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
706 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
707 sub _ProcessFirstDataLineRead {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
708 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
709 my($Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
710
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
711 $This->{FirstDataLineIO} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
712
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
713 # Skip over header data lines and collect first data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
714
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
715 LINE: while ($Line = TextUtil::GetTextLine($This->{FileHandle})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
716 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
717
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
718 # Is it a header data line?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
719 if ($Line =~ /^#/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
720 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
721 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
722 $This->{DataLine} = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
723 last LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
724 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
725
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
726 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
727 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
728
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
729 # Get ready for reading fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
730 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
731 sub _PrepareForReadingFingerprintsFPFileData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
732 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
733
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
734 # Retrieve FP file data headers information....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
735 $This->_RetrieveFPFileDataHeaders();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
736
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
737 # Validate header data keys and values information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
738 $This->_ValidateReadHeaderDataKeysAndValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
739
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
740 # Validate fingeprints string mode information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
741 if ($This->{ValidRequiredHeaderDataKeys}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
742 $This->_ValidateReadFingerprintsStringMode();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
743 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
744
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
745 # Set status of FP file data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
746 $This->{ValidFileData} = ($This->{ValidRequiredHeaderDataKeys} && $This->{ValidFingerprintsStringMode}) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
747
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
748 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
749 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
750
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
751 # Retrieve information about fingerprints date header in FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
752 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
753 sub _RetrieveFPFileDataHeaders {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
754 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
755 my($FPFile, $Line, $Index, $KeyValuePair, $Key, $Value, $KeyValueDelimiter, $KeyValuePairDelimiter, @LineKeyValuePairs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
756
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
757 $FPFile = $This->{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
758
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
759 if (!(-e $FPFile)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
760 croak "Error: ${ClassName}->_RetrieveFPFileDataHeaders: File, $FPFile, doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
761 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
762
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
763 if (!open FPFILE, "$FPFile") {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
764 croak "Error: ${ClassName}->_RetrieveFPFileDataHeaders: Couldn't open input FP file $FPFile: $! ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
765 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
766
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
767 # Process header key/value pair data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
768 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
769 $KeyValueDelimiter = '=';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
770 $KeyValuePairDelimiter = ';';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
771
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
772 @{$This->{HeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
773 %{$This->{HeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
774 %{$This->{CannonicalHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
775
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
776 LINE: while ($Line = TextUtil::GetTextLine(\*FPFILE)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
777 # Is it a key/value pairs line?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
778 if ($Line !~ /^#/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
779 last LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
780 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
781
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
782 # Take out starting hash mark before processing key/value pairs...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
783 $Line =~ s/^#//;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
784 if (TextUtil::IsEmpty($Line)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
785 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
786 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
787
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
788 @LineKeyValuePairs = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
789
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
790 for $KeyValuePair (split "$KeyValuePairDelimiter", $Line) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
791 ($Key, $Value) = split "$KeyValueDelimiter", $KeyValuePair;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
792
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
793 $Key = defined($Key) ? TextUtil::RemoveLeadingAndTrailingWhiteSpaces($Key) : '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
794 $Value = defined($Value) ? TextUtil::RemoveLeadingAndTrailingWhiteSpaces($Value) : '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
795
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
796 if (TextUtil::IsEmpty($Key) || TextUtil::IsEmpty($Value)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
797 carp "Warning: ${ClassName}->_RetrieveFPFileDataHeaders: Data header line containing \"Key = Value\" pairs is not valid: It must contain even number of \"Key = Value\" pairs with valid values. Ignoring data header line: \"$Line\"...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
798 next LINE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
799 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
800 push @{$This->{HeaderDataKeys}}, $Key;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
801 push @LineKeyValuePairs, ($Key, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
802 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
803
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
804 for ($Index = 0; $Index < $#LineKeyValuePairs; $Index += 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
805 $Key = $LineKeyValuePairs[$Index]; $Value = $LineKeyValuePairs[$Index + 1];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
806
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
807 $This->{HeaderDataKeysAndValues}{$Key} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
808 $This->{CannonicalHeaderDataKeysAndValues}{lc($Key)} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
809 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
810 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
811 close FPFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
812
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
813 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
814 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
815
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
816 # Validate header data and keys...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
817 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
818 sub _ValidateReadHeaderDataKeysAndValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
819 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
820 my($FingerprintsStringType, $Key, $Value, @RequiredHeaderDataKeys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
821
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
822 $This->{ValidRequiredHeaderDataKeys} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
823 @{$This->{RequiredHeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
824
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
825 # Is FingerprintsStringType key is present?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
826 if (!$This->IsHeaderDataKeyPresent('FingerprintsStringType')) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
827 carp "carp: ${ClassName}->_ValidateReadHeaderDataKeysAndValues: FingerprintsStringType data header key is missing in fingerprints file...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
828 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
829 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
830 $FingerprintsStringType = $This->GetHeaderDataKeyValue('FingerprintsStringType');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
831
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
832 # Are all required data header keys present?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
833 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
834 @RequiredHeaderDataKeys = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
835
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
836 if ($FingerprintsStringType =~ /^(FingerprintsBitVector|FingerprintsVector)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
837 push @RequiredHeaderDataKeys, $This->_GetRequiredHeaderDataKeys($FingerprintsStringType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
838 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
839 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
840 carp "Warning: ${ClassName}->_ValidateReadHeaderDataKeysAndValues: FingerprintsStringType data header key value, $FingerprintsStringType, is not valid. SUpported values: FingerprintsBitVector or FingerprintsVector...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
841 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
842 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
843
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
844 for $Key (@RequiredHeaderDataKeys) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
845 if (!$This->IsHeaderDataKeyPresent($Key)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
846 croak "Error: ${ClassName}->_ValidateReadHeaderDataKeysAndValues: Requires data header key, $Key, is missing in fingerprints file...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
847 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
848 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
849
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
850 push @{$This->{RequiredHeaderDataKeys}}, @RequiredHeaderDataKeys;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
851
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
852 # Are all required data header key values valid?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
853 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
854 if (!$This->_ValidateRequiredHeaderDataKeyValues()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
855 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
856 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
857
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
858 # Process required header key values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
859 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
860 $This->_ProcessRequiredHeaderDataKeyValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
861
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
862 $This->{ValidRequiredHeaderDataKeys} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
863
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
864 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
865 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
866
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
867 # Validate data header key values....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
868 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
869 sub _ValidateRequiredHeaderDataKeyValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
870 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
871 my($Key, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
872
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
873 for $Key (@{$This->{RequiredHeaderDataKeys}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
874 $Value = $This->GetHeaderDataKeyValue($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
875 KEY: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
876 if ($Key =~ /^FingerprintsStringType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
877 if ($Value !~ /^(FingerprintsBitVector|FingerprintsVector)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
878 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: FingerprintsBitVector or FingerprintsVector...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
879 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
880 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
881 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
882 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
883 if ($Key =~ /^Size$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
884 if (!TextUtil::IsPositiveInteger($Value)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
885 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: > 0...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
886 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
887 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
888 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
889 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
890 if ($Key =~ /^BitStringFormat$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
891 if ($Value !~ /^(BinaryString|HexadecimalString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
892 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: BinaryString or HexadecimalString ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
893 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
894 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
895 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
896 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
897 if ($Key =~ /^BitsOrder$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
898 if ($Value !~ /^(Ascending|Descending)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
899 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: Ascending or Descending...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
900 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
901 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
902 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
903 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
904 if ($Key =~ /^VectorStringFormat$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
905 if ($Value !~ /^(IDsAndValuesString|IDsAndValuesPairsString|ValuesAndIDsString|ValuesAndIDsPairsString|ValuesString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
906 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, or ValuesString ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
907 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
908 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
909 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
910 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
911 if ($Key =~ /^VectorValuesType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
912 if ($Value !~ /^(OrderedNumericalValues|NumericalValues|AlphaNumericalValues)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
913 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value, $Value, is not valid. Supported values: OrderedNumericalValues, NumericalValues or AlphaNumericalValues...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
914 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
915 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
916 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
917 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
918 if ($Key =~ /^Description$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
919 if (TextUtil::IsEmpty($Value)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
920 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key value is not valid. Supported value: A no-empty text string...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
921 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
922 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
923 last KEY;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
924 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
925 carp "Warning: ${ClassName}->_ValidateRequiredHeaderDataKeyValues: Required $Key data header key is not not supported...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
926 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
927 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
928 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
929
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
930 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
931 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
932
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
933 # Process required header key valeues for access during complete fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
934 # string generation from a partial fingerprints string specified on fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
935 # line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
936 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
937 sub _ProcessRequiredHeaderDataKeyValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
938 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
939 my($Key, $Value, @Keys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
940
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
941 %{$This->{RequiredHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
942
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
943 for $Key (@{$This->{RequiredHeaderDataKeys}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
944 $Value = $This->GetHeaderDataKeyValue($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
945 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
946 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
947
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
948 # Setup prefixes for generating fingerprints strings...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
949 $This->{FingerprintsBitVectorStringPrefix} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
950 $This->{FingerprintsVectorStringPrefix1} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
951 $This->{FingerprintsVectorStringPrefix2} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
952
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
953 if ($This->{RequiredHeaderDataKeysAndValues}{FingerprintsStringType} =~ /^FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
954 @Keys = qw(FingerprintsStringType Description Size BitStringFormat BitsOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
955 $This->{FingerprintsBitVectorStringPrefix} = $This->_GenerateFingerprintsPrefixUsingKeys(@Keys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
956 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
957 elsif ($This->{RequiredHeaderDataKeysAndValues}{FingerprintsStringType} =~ /^FingerprintsVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
958 @Keys = qw(FingerprintsStringType Description);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
959 $This->{FingerprintsVectorStringPrefix1} = $This->_GenerateFingerprintsPrefixUsingKeys(@Keys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
960
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
961 @Keys = qw(VectorValuesType VectorStringFormat);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
962 $This->{FingerprintsVectorStringPrefix2} = $This->_GenerateFingerprintsPrefixUsingKeys(@Keys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
963 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
964
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
965 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
966 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
967
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
968 # Generate fingerprints prefix using header keys data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
969 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
970 sub _GenerateFingerprintsPrefixUsingKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
971 my($This, @Keys) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
972 my($Delimiter, $Key, @Values);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
973
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
974 $Delimiter = Fingerprints::FingerprintsStringUtil::GetFingeprintsStringDelimiter();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
975
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
976 @Values = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
977 for $Key (@Keys) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
978 push @Values, $This->{RequiredHeaderDataKeysAndValues}{$Key};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
979 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
980
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
981 return join($Delimiter, @Values)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
982 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
983
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
984 # Get required header data keys...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
985 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
986 sub _GetRequiredHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
987 my($This, $FingerprintsStringType) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
988 my(@RequiredKeys);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
989
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
990 @RequiredKeys = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
991
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
992 if ($FingerprintsStringType =~ /FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
993 push @RequiredKeys, qw(FingerprintsStringType Description Size BitStringFormat BitsOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
994 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
995 elsif ($FingerprintsStringType =~ /^FingerprintsVector/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
996 push @RequiredKeys, qw(FingerprintsStringType Description VectorStringFormat VectorValuesType);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
997 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
998 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
999 carp "Warning: ${ClassName}->GetRequiredHeaderDataKeys: FingerprintsStringType value, $FingerprintsStringType, is not valid. Supported values: FingerprintsBitVector or FingerprintsVector...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1000 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1001
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1002 return @RequiredKeys;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1003 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1004
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1005 # Validate fingerprints string mode information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1006 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1007 sub _ValidateReadFingerprintsStringMode {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1008 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1009 my($FingerprintsStringType, $FingerprintsStringDescription, $FingerprintsBitVectorStringMode, $FingerprintsVectorStringMode, $FirstFingerprintsStringType, $FirstFingerprintsStringDescription);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1011 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1012 $This->{FingerprintsBitVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1013 $This->{FingerprintsVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1014
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1015 $This->{FirstFingerprintsStringType} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1016 $This->{FirstFingerprintsStringDescription} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1017
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1018 $FingerprintsBitVectorStringMode = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1019 $FingerprintsVectorStringMode = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1020
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1021 $FirstFingerprintsStringType = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1022 $FirstFingerprintsStringDescription = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1023
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1024 $FingerprintsStringType = $This->GetHeaderDataKeyValue('FingerprintsStringType');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1025 $FingerprintsStringDescription = $This->GetHeaderDataKeyValue('Description');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1026
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1027 if ($This->{FingerprintsStringMode} =~ /^FingerprintsBitVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1028 if ($FingerprintsStringType !~ /^FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1029 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: Fingerprints string data type, $FingerprintsStringType, doesn't correspond to, FingerprintsBitVectorString, specified using \"FingerprintsStringMode\"...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1030 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1031 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1032 $FingerprintsBitVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1033 $FirstFingerprintsStringType = 'FingerprintsBitVector';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1034 $FirstFingerprintsStringDescription = $FingerprintsStringDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1035 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1036 elsif ($This->{FingerprintsStringMode} =~ /^FingerprintsVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1037 if ($FingerprintsStringType !~ /^FingerprintsVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1038 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: Fingerprints string data type, $FingerprintsStringType, doesn't correspond to, FingerprintsVectorString, specified using \"FingerprintsStringMode\"...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1039 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1040 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1041 $FingerprintsVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1042 $FirstFingerprintsStringType = 'FingerprintsVector';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1043 $FirstFingerprintsStringDescription = $FingerprintsStringDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1044 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1045 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1046 # AutoDetect mode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1047 if ($FingerprintsStringType =~ /^FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1048 $FingerprintsBitVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1049 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1050 elsif ($FingerprintsStringType =~ /^FingerprintsVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1051 $FingerprintsVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1052 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1053 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1054 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: Fingerprints string data type, $FingerprintsStringType, identified during, AutoDetect, value of \"FingerprintsStringMode\" is not valid; Supported fingerprints types: FingerprintBitVector or FingerprintsVector...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1055 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1056 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1057 $FirstFingerprintsStringType = $FingerprintsStringType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1058 $FirstFingerprintsStringDescription = $FingerprintsStringDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1059 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1060
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1061 $This->{ValidFingerprintsStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1062
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1063 $This->{FingerprintsBitVectorStringMode} = $FingerprintsBitVectorStringMode;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1064 $This->{FingerprintsVectorStringMode} = $FingerprintsVectorStringMode;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1065
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1066 $This->{FirstFingerprintsStringType} = $FirstFingerprintsStringType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1067 $This->{FirstFingerprintsStringDescription} = $FirstFingerprintsStringDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1068
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1069 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1070 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1071
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1072 # Write fingerprints string generated from specified fingerprints - fingerprints-bit vector or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1073 # fingerprints vector - object and other data to FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1074 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1075 sub WriteFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1076 my($This, $FingerprintsObject, $CompoundID) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1077
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1078 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1079 $This->_InitializeWriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1080
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1081 # Set fingerprints object and compound ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1082 $This->{FingerprintsObject} = $FingerprintsObject;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1083 $This->SetCompoundID($CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1084
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1085 # Generate fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1086 $This->_GenerateFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1087
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1088 # Generate partial fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1089 $This->_GeneratePartialFingerprintsStringFromFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1090
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1091 # Write data line..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1092 $This->_WriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1093
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1094 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1095 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1096
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1097 # Write fingerprints string and other data to FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1098 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1099 # Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1100 # o FingerprintsStringMode, BitStringFormat, BitsOrder, VectorStringFormat values
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1101 # are ignored during writing of fingerprints and it's written to the file as it is.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1102 # o FingerprintsString is a regular fingerprints string as oppose to a partial fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1103 # string.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1104 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1105 sub WriteFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1106 my($This, $FingerprintsString, $CompoundID) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1108 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1109 $This->_InitializeWriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1111 # Set fingerprints string and compound ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1112 $This->{FingerprintsString} = $FingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1113 $This->SetCompoundID($CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1114
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1115 # Generate fingerprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1116 $This->_GenerateFingerprintsObject();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1118 # Generate partial fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1119 $This->_GeneratePartialFingerprintsStringFromFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1121 # Write data line..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1122 $This->_WriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1123
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1124 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1125 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1127 # Initialize data line for reading...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1128 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1129 sub _InitializeWriteDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1130 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1131
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1132 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1133 $This->{CompoundID} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1135 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1136
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1137 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1138 $This->{PartialFingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1139
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1140 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1141 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1142
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1143 # Write fingerprints data line line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1144 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1145 sub _WriteDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1146 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1147 my($FileHandle, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1148
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1149 if ($This->{FirstDataLineIO}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1150 $This->_ProcessFirstDataLineWrite();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1151 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1152
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1153 # Write data compound ID along with partial fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1154 $Line = $This->{CompoundID} . ' ' . $This->{PartialFingerprintsString};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1155
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1156 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1157 $FileHandle = $This->{FileHandle};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1158 print $FileHandle "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1159
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1160 $This->{DataLine} = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1161
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1162 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1163 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1164
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1165 # Process first write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1166 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1167 sub _ProcessFirstDataLineWrite {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1168 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1169 my($Line, $FileHandle);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1170
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1171 $This->{FirstDataLineIO} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1172
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1173 if ($This->GetMode() =~ /^Write$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1174 # Skip it for append mode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1175 $This->_WritePackageAndTimeStampHeaderKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1176 $This->_WriteRequiredHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1177 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1178
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1179 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1180 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1181
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1182 # Write out package and time stamp information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1183 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1184 sub _WritePackageAndTimeStampHeaderKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1185 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1186 my($FileHandle, $Key, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1187
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1188 $FileHandle = $This->{FileHandle};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1189
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1190 # Package information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1191 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1192 $Key = "Package"; $Value = PackageInfo::GetPackageName() . " " . PackageInfo::GetVersionNumber();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1193 print $FileHandle "# $Key = $Value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1194
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1195 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1196 $Key = "Release Date"; $Value = PackageInfo::GetReleaseDate();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1197 print $FileHandle "# $Key = $Value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1198
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1199 # Timestamp information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1200 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1201 print $FileHandle "#\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1203 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1204 $Key = "TimeStamp"; $Value = TimeUtil::FPFileTimeStamp();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1205 print $FileHandle "# $Key = $Value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1206
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1207 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1208 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1209
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1210 # Write out required header data keys...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1211 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1212 sub _WriteRequiredHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1213 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1214 my($FileHandle, $Key, $Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1215
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1216 $FileHandle = $This->{FileHandle};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1217
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1218 $This->_GenerateWriteRequiredHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1219
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1220 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1221 print $FileHandle "#\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1222
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1223 for $Key (@{$This->{RequiredHeaderDataKeys}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1224 $Value = $This->{RequiredHeaderDataKeysAndValues}{$Key};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1225
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1226 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1227 print $FileHandle "# $Key = $Value\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1228
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1229 if ($Key =~ /^FingerprintsStringType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1230 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1231 print $FileHandle "#\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1232 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1233 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1234
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1235 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1236 print $FileHandle "#\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1237
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1238 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1239 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1240
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1241 sub _GenerateWriteRequiredHeaderDataKeys {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1242 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1243
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1244 if ($This->{FingerprintsBitVectorStringMode} && ($This->{FingerprintsString} =~ /^FingerprintsBitVector/i)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1245 $This->_GenerateWriteRequiredHeaderDataKeysForBitVectorString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1246 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1247 elsif ($This->{FingerprintsVectorStringMode} && ($This->{FingerprintsString} =~ /^FingerprintsVector/i)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1248 $This->_GenerateWriteRequiredHeaderDataKeysForVectorString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1249 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1250 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1251 croak "Error: ${ClassName}->_GenerateWriteRequiredHeaderDataKeys: Required header data keys can't be generated: FingerprintsStringMode value, $This->{FingerprintsStringMode}, doesn't correspond to type of first FingerprintsString: $This->{FingerprintsString}...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1252 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1253
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1254 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1255 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1256
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1257 # Generate required data header keys and values for writing fingerprints bit vector string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1258 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1259 sub _GenerateWriteRequiredHeaderDataKeysForBitVectorString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1260 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1261 my($Key, $VectorType, $Description, $Size, $BitStringFormat, $BitsOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1262
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1263 @{$This->{RequiredHeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1264 push @{$This->{RequiredHeaderDataKeys}}, $This->_GetRequiredHeaderDataKeys('FingerprintsBitVector');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1265
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1266 ($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringValues($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1267
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1268 %{$This->{RequiredHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1269
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1270 for $Key (@{$This->{RequiredHeaderDataKeys}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1271 KEYTYPE: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1272 if ($Key =~ /^FingerprintsStringType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1273 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $VectorType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1274 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1275 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1276 if ($Key =~ /^Description$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1277 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $Description;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1278 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1279 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1280 if ($Key =~ /^Size$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1281 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $Size;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1282 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1283 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1284 if ($Key =~ /^BitStringFormat$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1285 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $BitStringFormat;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1286 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1287 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1288 if ($Key =~ /^BitsOrder$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1289 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $BitsOrder;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1290 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1291 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1292 croak "Error: ${ClassName}->_GenerateWriteRequiredHeaderDataKeysForBitVectorString: Required header data key, $Key, value can't be generated: It's not a known key ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1293 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1294 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1295
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1296 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1297 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1298
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1299 # Generate required data header keys and values for writing fingerprints vector string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1300 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1301 sub _GenerateWriteRequiredHeaderDataKeysForVectorString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1302 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1303 my($Key, $Value, $VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1304
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1305 @{$This->{RequiredHeaderDataKeys}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1306 push @{$This->{RequiredHeaderDataKeys}}, $This->_GetRequiredHeaderDataKeys('FingerprintsVector');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1307
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1308 ($VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringValues($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1309
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1310 %{$This->{RequiredHeaderDataKeysAndValues}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1311
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1312 for $Key (@{$This->{RequiredHeaderDataKeys}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1313 KEYTYPE: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1314 if ($Key =~ /^FingerprintsStringType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1315 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $VectorType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1316 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1317 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1318 if ($Key =~ /^Description$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1319 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $Description;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1320 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1321 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1322 if ($Key =~ /^VectorValuesType$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1323 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $VectorValuesType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1324 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1325 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1326 if ($Key =~ /^VectorStringFormat$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1327 $This->{RequiredHeaderDataKeysAndValues}{$Key} = $VectorStringFormat;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1328 last KEYTYPE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1329 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1330 croak "Error: ${ClassName}->_GenerateWriteRequiredHeaderDataKeysForVectorString: Required header data key, $Key, value can't be generated: It's not a known key ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1331 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1332 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1333
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1334 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1335 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1336
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1337
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1338 # Get ready for writing fingerprints FP file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1339 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1340 sub _PrepareForWritingFingerprintsFPFileData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1341 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1342 my($FPFile, $FileDir, $FileName, $FileExt, $OutDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1343
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1344 $FPFile = $This->{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1345 if (!$This->{Overwrite}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1346 if (-e $FPFile) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1347 croak "Error: ${ClassName}->_PrepareForWritingFingerprintsFPFileData: File, $FPFile, already exist. Use overwrite option...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1348 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1349 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1350
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1351 # Setup FingerprintsStringMode status...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1352 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1353 $This->{FingerprintsBitVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1354 $This->{FingerprintsVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1355 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1356
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1357 if ($This->{FingerprintsStringMode} =~ /^FingerprintsBitVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1358 $This->{FingerprintsBitVectorStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1359 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1360 elsif ($This->{FingerprintsStringMode} =~ /^FingerprintsVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1361 $This->{FingerprintsVectorStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1362 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1363
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1364 $This->{ValidFingerprintsStringMode} = ($This->{FingerprintsBitVectorStringMode} || $This->{FingerprintsVectorStringMode}) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1365
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1366 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1367 $This->_SetDefaultBitStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1368 $This->_SetDefaultBitsOrder();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1369 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1370 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1371 $This->_SetDefaultVectorStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1372 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1373
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1374 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1375 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1376
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1377 # Set default value for bit string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1378 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1379 sub _SetDefaultBitStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1380 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1381
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1382 if (!$This->{BitStringFormat}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1383 $This->{BitStringFormat} = Fingerprints::FingerprintsStringUtil::GetDefaultBitStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1384 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1385
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1386 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1387 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1388
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1389 # Set default value for bit string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1390 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1391 sub _SetDefaultBitsOrder {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1392 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1393
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1394 if (!$This->{BitsOrder}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1395 $This->{BitsOrder} = Fingerprints::FingerprintsStringUtil::GetDefaultBitsOrder();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1396 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1397
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1398 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1399 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1400
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1401 # Set default value for vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1402 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1403 sub _SetDefaultVectorStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1404 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1405
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1406 if (!$This->{VectorStringFormat} && $This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1407 $This->{VectorStringFormat} = Fingerprints::FingerprintsStringUtil::GetDefaultVectorStringFormat($This->{FingerprintsObject});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1408 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1409
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1410 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1411 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1412
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1413 # Generate fingerprints object using current fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1414 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1415 sub _GenerateFingerprintsObject {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1416 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1417
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1418 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1419
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1420 if (!$This->{FingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1421 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1422 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1423
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1424 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1425 $This->{FingerprintsObject} = Fingerprints::FingerprintsStringUtil::ParseFingerprintsBitVectorString($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1426 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1427 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1428 $This->{FingerprintsObject} = Fingerprints::FingerprintsStringUtil::ParseFingerprintsVectorString($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1429 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1430 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1431 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1432 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1433
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1434 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1435 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1436
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1437 # Generate fingerprints string using current fingerprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1438 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1439 sub _GenerateFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1440 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1441
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1442 $This->{FingerprintsString} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1443
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1444 if (!$This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1445 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1446 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1447
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1448 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1449 $This->{FingerprintsString} = Fingerprints::FingerprintsStringUtil::GenerateFingerprintsString($This->{FingerprintsObject}, $This->{BitStringFormat}, $This->{BitsOrder});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1450 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1451 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1452 $This->{FingerprintsString} = Fingerprints::FingerprintsStringUtil::GenerateFingerprintsString($This->{FingerprintsObject}, $This->{VectorStringFormat});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1453 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1454
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1455 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1456 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1457
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1458 # Generate fingerprints string using partial fingerprints string and header keys data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1459 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1460 # Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1461 # o FP file fingerprints data line only contain partial fingerprints data which
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1462 # can't be used directly to create fingerprints bit-vector or vector objects
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1463 # using functions available in FingerprintsStringUtil.pm module
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1464 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1465 sub _GenerateFingerprintsStringFromPartialFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1466 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1467 my($FPStringDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1468
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1469 $This->{FingerprintsString} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1470
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1471 if (!$This->{PartialFingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1472 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1473 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1474
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1475 $FPStringDelim = Fingerprints::FingerprintsStringUtil::GetFingeprintsStringDelimiter();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1476
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1477 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1478 $This->{FingerprintsString} = $This->{FingerprintsBitVectorStringPrefix} . $FPStringDelim . $This->{PartialFingerprintsString};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1479 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1480 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1481 my($NumOfValues, $VectorStringData);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1482
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1483 ($NumOfValues, $VectorStringData) = $This->{PartialFingerprintsString} =~ /^(.*?)$FPStringDelim(.*?)$/;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1484 if (!(defined($NumOfValues) && defined($VectorStringData) && $VectorStringData)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1485 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1486 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1487
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1488 $This->{FingerprintsString} = $This->{FingerprintsVectorStringPrefix1} . $FPStringDelim . $NumOfValues . $FPStringDelim . $This->{FingerprintsVectorStringPrefix2} . $FPStringDelim . $VectorStringData;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1489 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1490
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1491 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1492 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1493
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1494 # Generate partial fingerprints string using fingerprints string and header keys data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1495 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1496 # Notes:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1497 # o FP file fingerprints data line only contain partial fingerprints data which
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1498 # can't be used directly to create fingerprints bit-vector or vector objects
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1499 # using functions available in FingerprintsStringUtil.pm module
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1500 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1501 sub _GeneratePartialFingerprintsStringFromFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1502 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1503
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1504 $This->{PartialFingerprintsString} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1505
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1506 if (!$This->{FingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1507 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1508 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1509
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1510 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1511 my($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1512
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1513 ($VectorType, $Description, $Size, $BitStringFormat, $BitsOrder, $BitVectorString) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringValues($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1514 $This->{PartialFingerprintsString} = $BitVectorString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1515 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1516 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1517 my($FPStringDelim, $VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2, $VectorString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1518
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1519 $FPStringDelim = Fingerprints::FingerprintsStringUtil::GetFingeprintsStringDelimiter();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1520
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1521 ($VectorType, $Description, $NumOfValues, $VectorValuesType, $VectorStringFormat, $VectorString1, $VectorString2) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringValues($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1522 $VectorString = TextUtil::IsEmpty($VectorString2) ? $VectorString1 : "${VectorString1}${FPStringDelim}${VectorString2}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1523
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1524 $This->{PartialFingerprintsString} = $NumOfValues . $FPStringDelim . $VectorString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1525 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1526
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1527 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1528 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1529
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1530 # Is it a fingerprints file?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1531 sub IsFingerprintsFPFile ($;$) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1532 my($FirstParameter, $SecondParameter) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1533 my($This, $FileName, $Status);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1534
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1535 if ((@_ == 2) && (_IsFingerprintsFPFileIO($FirstParameter))) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1536 ($This, $FileName) = ($FirstParameter, $SecondParameter);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1537 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1538 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1539 $FileName = $FirstParameter;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1540 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1541
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1542 # Check file extension...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1543 $Status = FileUtil::CheckFileType($FileName, "fpf fp");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1544
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1545 return $Status;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1546 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1547
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1548 # Is it a FingerprintsFPFileIO object?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1549 sub _IsFingerprintsFPFileIO {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1550 my($Object) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1551
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1552 return (Scalar::Util::blessed($Object) && $Object->isa($ClassName)) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1553 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1554
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1555 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1556
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1557 __END__
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1558
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1559 =head1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1560
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1561 FingerprintsFPFileIO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1562
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1563 =head1 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1564
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1565 use FileIO::FingerprintsFPFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1566
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1567 use FileIO::FingerprintsFPFileIO qw(:all);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1568
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1569 =head1 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1570
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1571 B<FingerprintsFPFileIO> class provides the following methods:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1572
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1573 new, GetFingerprints, GetFingerprintsString, GetHeaderDataKeyValue,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1574 GetHeaderDataKeys, GetHeaderDataKeysAndValues, GetPartialFingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1575 GetRequiredHeaderDataKeys, GetRequiredHeaderDataKeysAndValues,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1576 IsFingerprintsDataValid, IsFingerprintsFPFile, IsFingerprintsFileDataValid,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1577 IsHeaderDataKeyPresent, Next, Read, SetBitStringFormat, SetBitsOrder,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1578 SetCompoundID, SetDetailLevel, SetFingerprints, SetFingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1579 SetFingerprintsStringMode, SetPartialFingerprintsString, SetVectorStringFormat,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1580 WriteFingerprints, WriteFingerprintsString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1581
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1582 The following methods can also be used as functions:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1583
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1584 IsFingerprintsFPFile
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1585
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1586 B<FingerprintsFPFileIO> class is derived from I<FileIO> class and uses its methods to support
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1587 generic file related functionality.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1588
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1589 The MayaChemTools fingerprints file (FP) format with B<.fpf> or B<.fp> file extensions supports
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1590 two types of fingerprints data: fingerprints bit-vectors and fingerprints vectors.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1591
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1592 Example of FP file format containing fingerprints bit-vector string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1593
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1594 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1595 # Package = MayaChemTools 7.4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1596 # ReleaseDate = Oct 21, 2010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1597 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1598 # TimeStamp = Mon Mar 7 15:14:01 2011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1599 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1600 # FingerprintsStringType = FingerprintsBitVector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1601 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1602 # Description = PathLengthBits:AtomicInvariantsAtomTypes:MinLength1:...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1603 # Size = 1024
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1604 # BitStringFormat = HexadecimalString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1605 # BitsOrder = Ascending
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1606 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1607 Cmpd1 9c8460989ec8a49913991a6603130b0a19e8051c89184414953800cc21510...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1608 Cmpd2 000000249400840040100042011001001980410c000000001010088001120...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1609 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1610 ... ..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1611
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1612 Example of FP file format containing fingerprints vector string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1613
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1614 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1615 # Package = MayaChemTools 7.4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1616 # ReleaseDate = Oct 21, 2010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1617 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1618 # TimeStamp = Mon Mar 7 15:14:01 2011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1619 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1620 # FingerprintsStringType = FingerprintsVector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1621 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1622 # Description = PathLengthBits:AtomicInvariantsAtomTypes:MinLength1:...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1623 # VectorStringFormat = IDsAndValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1624 # VectorValuesType = NumericalValues
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1625 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1626 Cmpd1 338;C F N O C:C C:N C=O CC CF CN CO C:C:C C:C:N C:CC C:CF C:CN C:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1627 N:C C:NC CC:N CC=O CCC CCN CCO CNC NC=O O=CO C:C:C:C C:C:C:N C:C:CC...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1628 33 1 2 5 21 2 2 12 1 3 3 20 2 10 2 2 1 2 2 2 8 2 5 1 1 1 19 2 8 2 2 2 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1629 6 2 2 2 2 2 2 2 2 3 2 2 1 4 1 5 1 1 18 6 2 2 1 2 10 2 1 2 1 2 2 2 2 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1630 Cmpd2 103;C N O C=N C=O CC CN CO CC=O CCC CCN CCO CNC N=CN NC=O NCN O=C
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1631 O C CC=O CCCC CCCN CCCO CCNC CNC=N CNC=O CNCN CCCC=O CCCCC CCCCN CC...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1632 15 4 4 1 2 13 5 2 2 15 5 3 2 2 1 1 1 2 17 7 6 5 1 1 1 2 15 8 5 7 2 2 2 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1633 1 2 1 1 3 15 7 6 8 3 4 4 3 2 2 1 2 3 14 2 4 7 4 4 4 4 1 1 1 2 1 1 1 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1634 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1635 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1636
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1637 B<FP> file data format consists of two main sections: header section and fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1638 data section. The header section lines start with # and the first line not starting with # represents
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1639 the start of fingerprints string data section. The header section contains both the required and
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1640 optional information which is specified as key = value pairs. The required information
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1641 describes fingerprints bit-vector and vector strings and used to generate fingerprints objects;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1642 the optional information is ignored during generation of fingerpints objects.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1643
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1644 The key = value data specification in the header section and its processing follows these
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1645 rules:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1646
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1647 o Leading and trailing spaces for key = value pairs are ignored
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1648 o Key and value strings may contain spaces
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1649 o Multiple key = value pairs on a single are delimited by semicolon
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1650
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1651 The default optional header data section key = value pairs are:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1652
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1653 # Package = MayaChemTools 7.4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1654 # ReleaseDate = Oct 21, 2010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1655
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1656 The B<FingerprintsStringType> key is required data header key for both fingerprints bit-vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1657 and vector strings. Possible key values: I<FingerprintsBitVector or FingerprintsVector>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1658 For example:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1659
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1660 # FingerprintsStringType = FingerprintsBitVector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1661
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1662 The required data header keys for fingerprints bit-vector string are: B<Description, Size,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1663 BitStringFormat, and BitsOrder>. Possible values for B<BitStringFormat>: I<HexadecimalString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1664 or BinaryString>. Possible values for B<BitsOrder>: I<Ascending or Descending>. The B<Description>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1665 key contains information about various parameters used to generate fingerprints bit-vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1666 string. The B<Size> corresponds to number of fingerprints bits and is always less than or equal
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1667 to number of bits in bit-vetor string which might contain extra bits at the end to round off the
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1668 size to make it multiple of 8. For example:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1669
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1670 # Description = PathLengthBits:AtomicInvariantsAtomTypes:MinLength1:...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1671 # Size = 1024
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1672 # BitStringFormat = HexadecimalString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1673 # BitsOrder = Ascending
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1674
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1675 The required data header keys for fingerprints vector string are: B<Description, VectorStringFormat,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1676 and VectorValuesType>. Possible values for B<VectorStringFormat>: I<DsAndValuesString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1677 IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString or ValuesString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1678 Possible values for B<VectorValuesType>: I<NumericalValues, OrderedNumericalValues or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1679 AlphaNumericalValues>. The B<Description> keys contains information various parameters used
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1680 to generate fingerprints vector string. For example:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1681
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1682 # Description = PathLengthBits:AtomicInvariantsAtomTypes:MinLength1:...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1683 # VectorStringFormat = IDsAndValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1684 # VectorValuesType = NumericalValues
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1685
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1686 The fingerprints data section for fingerprints bit-vector string contains data in the following
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1687 format:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1688
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1689 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1690 CmpdID FingerprintsPartialBitVectorString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1691 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1692
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1693 For example:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1694
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1695 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1696 Cmpd1 9c8460989ec8a49913991a6603130b0a19e8051c89184414953800cc21510...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1697 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1698
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1699 The fingerprints data section for fingerprints vector string contains data in the following
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1700 format:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1701
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1702 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1703 CmpdID Size;FingerprintsPartialVectorString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1704 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1705
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1706 For example:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1707
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1708 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1709 Cmpd1 338;C F N O C:C C:N C=O CC CF CN CO C:C:C C:C:N C:CC C:CF C:CN C:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1710 N:C C:NC CC:N CC=O CCC CCN CCO CNC NC=O O=CO C:C:C:C C:C:C:N C:C:CC...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1711 33 1 2 5 21 2 2 12 1 3 3 20 2 10 2 2 1 2 2 2 8 2 5 1 1 1 19 2 8 2 2 2 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1712 6 2 2 2 2 2 2 2 2 3 2 2 1 4 1 5 1 1 18 6 2 2 1 2 10 2 1 2 1 2 2 2 2 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1713 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1714
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1715 Unlike fingerprints bit-vector string, I<Size> is specified for each partial fingerprints vector string:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1716 It may change from molecule to molecule for same type of fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1717
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1718 Values IDs are optional for fingerprints vector string containing I<OrderedNumericalValues or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1719 AlphaNumericalValues>; however, they must be present for for I<NumericalValues>. Due to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1720 various possible values for B<VectorStringFormat>, the fingerprints data section for fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1721 vector string supports following type of data formats:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1722
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1723 CmpdID Size;ID1 ID2 ID3...;Value1 Value2 Value3...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1724 CmpdID Size;ID1 Value1 ID2 Value2 ID3 Value3... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1725 CmpdID Size;ValuesAndIDsString: Value1 Value2 Value3...;ID1 ID2 ID3...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1726 CmpdID Size;ValuesAndIDsPairsString: Value1 ID1 Value2 ID2 Value3 ID3... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1727 CmpdID Size;Value1 Value2 Value3 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1728
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1729 However, all the fingerprints vector string data present in FP file must correspond to only
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1730 one of the formats shown above; multiple data formats in the same file are not allowed.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1731
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1732 The current release of MayaChemTools supports the following types of fingerprint
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1733 bit-vector and vector strings:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1734
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1735 FingerprintsVector;AtomNeighborhoods:AtomicInvariantsAtomTypes:MinRadi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1736 us0:MaxRadius2;41;AlphaNumericalValues;ValuesString;NR0-C.X1.BO1.H3-AT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1737 C1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-ATC1 NR0-C.X
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1738 1.BO1.H3-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2-C.X1.BO1.H3-ATC1:NR2-C.X3.BO4-A
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1739 TC1 NR0-C.X2.BO2.H2-ATC1:NR1-C.X2.BO2.H2-ATC1:NR1-C.X3.BO3.H1-ATC1:NR2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1740 -C.X2.BO2.H2-ATC1:NR2-N.X3.BO3-ATC1:NR2-O.X1.BO1.H1-ATC1 NR0-C.X2.B...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1741
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1742 FingerprintsVector;AtomTypesCount:AtomicInvariantsAtomTypes:ArbitraryS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1743 ize;10;NumericalValues;IDsAndValuesString;C.X1.BO1.H3 C.X2.BO2.H2 C.X2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1744 .BO3.H1 C.X3.BO3.H1 C.X3.BO4 F.X1.BO1 N.X2.BO2.H1 N.X3.BO3 O.X1.BO1.H1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1745 O.X1.BO2;2 4 14 3 10 1 1 1 3 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1746
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1747 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:ArbitrarySize;16;Nume
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1748 ricalValues;IDsAndValuesString;C1 C10 C11 C14 C18 C20 C21 C22 C5 CS F
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1749 N11 N4 O10 O2 O9;5 1 1 1 14 4 2 1 2 2 1 1 1 1 3 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1750
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1751 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:FixedSize;67;OrderedN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1752 umericalValues;IDsAndValuesString;C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1753 12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22 C23 C24 C25 C26 C27 CS N1 N
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1754 2 N3 N4 N5 N6 N7 N8 N9 N10 N11 N12 N13 N14 NS O1 O2 O3 O4 O5 O6 O7 O8
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1755 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1756 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...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1757
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1758 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1759 AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1760 H SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0.073 3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1761 .024 -2.270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1762
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1763 FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1764 ValuesString;0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1765 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1766 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1767 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1768
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1769 FingerprintsVector;ExtendedConnectivity:AtomicInvariantsAtomTypes:Radi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1770 us2;60;AlphaNumericalValues;ValuesString;73555770 333564680 352413391
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1771 666191900 1001270906 1371674323 1481469939 1977749791 2006158649 21414
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1772 08799 49532520 64643108 79385615 96062769 273726379 564565671 85514103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1773 5 906706094 988546669 1018231313 1032696425 1197507444 1331250018 1338
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1774 532734 1455473691 1607485225 1609687129 1631614296 1670251330 17303...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1775
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1776 FingerprintsVector;ExtendedConnectivityCount:AtomicInvariantsAtomTypes
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1777 :Radius2;60;NumericalValues;IDsAndValuesString;73555770 333564680 3524
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1778 13391 666191900 1001270906 1371674323 1481469939 1977749791 2006158649
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1779 2141408799 49532520 64643108 79385615 96062769 273726379 564565671...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1780 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1781 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1782
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1783 FingerprintsBitVector;ExtendedConnectivityBits:AtomicInvariantsAtomTyp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1784 es:Radius2;1024;BinaryString;Ascending;0000000000000000000000000000100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1785 0000000001010000000110000011000000000000100000000000000000000000100001
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1786 1000000110000000000000000000000000010011000000000000000000000000010000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1787 0000000000000000000000000010000000000000000001000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1788 0000000000010000100001000000000000101000000000000000100000000000000...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1789
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1790 FingerprintsVector;ExtendedConnectivity:FunctionalClassAtomTypes:Radiu
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1791 s2;57;AlphaNumericalValues;ValuesString;24769214 508787397 850393286 8
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1792 62102353 981185303 1231636850 1649386610 1941540674 263599683 32920567
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1793 1 571109041 639579325 683993318 723853089 810600886 885767127 90326012
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1794 7 958841485 981022393 1126908698 1152248391 1317567065 1421489994 1455
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1795 632544 1557272891 1826413669 1983319256 2015750777 2029559552 20404...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1796
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1797 FingerprintsVector;ExtendedConnectivity:EStateAtomTypes:Radius2;62;Alp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1798 haNumericalValues;ValuesString;25189973 528584866 662581668 671034184
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1799 926543080 1347067490 1738510057 1759600920 2034425745 2097234755 21450
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1800 44754 96779665 180364292 341712110 345278822 386540408 387387308 50430
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1801 1706 617094135 771528807 957666640 997798220 1158349170 1291258082 134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1802 1138533 1395329837 1420277211 1479584608 1486476397 1487556246 1566...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1803
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1804 FingerprintsBitVector;MACCSKeyBits;166;BinaryString;Ascending;00000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1805 0000000000000000000000000000000001001000010010000000010010000000011100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1806 0100101010111100011011000100110110000011011110100110111111111111011111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1807 11111111111110111000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1808
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1809 FingerprintsBitVector;MACCSKeyBits;322;BinaryString;Ascending;11101011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1810 1110011111100101111111000111101100110000000000000011100010000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1811 0000000000000000000000000000000000000000000000101000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1812 0000000000000000000000000000000000000000000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1813 0000000000000000000000000000000000000011000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1814 0000000000000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1815
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1816 FingerprintsVector;MACCSKeyCount;166;OrderedNumericalValues;ValuesStri
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1817 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1818 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1819 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1820 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1821 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1822
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1823 FingerprintsVector;MACCSKeyCount;322;OrderedNumericalValues;ValuesStri
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1824 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1825 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1826 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1827 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1828 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 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1829
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1830 FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1831 th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1832 0100010101011000101001011100110001000010001001101000001001001001001000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1833 0010110100000111001001000001001010100100100000000011000000101001011100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1834 0010000001000101010100000100111100110111011011011000000010110111001101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1835 0101100011000000010001000011000010100011101100001000001000100000000...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1836
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1837 FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1838 1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1839 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1840 2.BO2.H1 1 N.X3.BO3 1 O.X1.BO1.H1 3 O.X1.BO2 2 C.X1.BO1.H3C.X3.BO3.H1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1841 2 C.X2.BO2.H2C.X2.BO2.H2 1 C.X2.BO2.H2C.X3.BO3.H1 4 C.X2.BO2.H2C.X3.BO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1842 4 1 C.X2.BO2.H2N.X3.BO3 1 C.X2.BO3.H1:C.X2.BO3.H1 10 C.X2.BO3.H1:C....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1843
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1844 FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1845 h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1846 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1847 5 2 C5ACB 1 C5ACR 1 C5B:C5B 1 C5BC=ON 1 C5BCB 1 C=ON=O=CN 1 C=ONNC=O 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1848 CB:CB 18 CBF 1 CBNC=O 1 COO=O=CO 1 COOCR 1 COOOC=O 1 CRCR 7 CRN5 1 CR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1849 OR 2 C5A:C5B:C5B 2 C5A:C5BC=ON 1 C5A:C5BCB 1 C5A:N5:C5A 1 C5A:N5CR ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1850
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1851 FingerprintsVector;TopologicalAtomPairs:AtomicInvariantsAtomTypes:MinD
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1852 istance1:MaxDistance10;223;NumericalValues;IDsAndValuesString;C.X1.BO1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1853 .H3-D1-C.X3.BO3.H1 C.X2.BO2.H2-D1-C.X2.BO2.H2 C.X2.BO2.H2-D1-C.X3.BO3.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1854 H1 C.X2.BO2.H2-D1-C.X3.BO4 C.X2.BO2.H2-D1-N.X3.BO3 C.X2.BO3.H1-D1-...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1855 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1856 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...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1857
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1858 FingerprintsVector;TopologicalAtomPairs:FunctionalClassAtomTypes:MinDi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1859 stance1:MaxDistance10;144;NumericalValues;IDsAndValuesString;Ar-D1-Ar
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1860 Ar-D1-Ar.HBA Ar-D1-HBD Ar-D1-Hal Ar-D1-None Ar.HBA-D1-None HBA-D1-NI H
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1861 BA-D1-None HBA.HBD-D1-NI HBA.HBD-D1-None HBD-D1-None NI-D1-None No...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1862 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1863 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 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1864
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1865 FingerprintsVector;TopologicalAtomTorsions:AtomicInvariantsAtomTypes;3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1866 3;NumericalValues;IDsAndValuesString;C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1867 C.X3.BO4 C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4-N.X3.BO3 C.X2.BO2.H2-C.X2.BO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1868 2.H2-C.X3.BO3.H1-C.X2.BO2.H2 C.X2.BO2.H2-C.X2.BO2.H2-C.X3.BO3.H1-O...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1869 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1870
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1871 FingerprintsVector;TopologicalAtomTorsions:EStateAtomTypes;36;Numerica
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1872 lValues;IDsAndValuesString;aaCH-aaCH-aaCH-aaCH aaCH-aaCH-aaCH-aasC aaC
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1873 H-aaCH-aasC-aaCH aaCH-aaCH-aasC-aasC aaCH-aaCH-aasC-sF aaCH-aaCH-aasC-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1874 ssNH aaCH-aasC-aasC-aasC aaCH-aasC-aasC-aasN aaCH-aasC-ssNH-dssC a...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1875 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1876
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1877 FingerprintsVector;TopologicalAtomTriplets:AtomicInvariantsAtomTypes:M
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1878 inDistance1:MaxDistance10;3096;NumericalValues;IDsAndValuesString;C.X1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1879 .BO1.H3-D1-C.X1.BO1.H3-D1-C.X3.BO3.H1-D2 C.X1.BO1.H3-D1-C.X2.BO2.H2-D1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1880 0-C.X3.BO4-D9 C.X1.BO1.H3-D1-C.X2.BO2.H2-D3-N.X3.BO3-D4 C.X1.BO1.H3-D1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1881 -C.X2.BO2.H2-D4-C.X2.BO2.H2-D5 C.X1.BO1.H3-D1-C.X2.BO2.H2-D6-C.X3....;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1882 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1883 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...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1884
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1885 FingerprintsVector;TopologicalAtomTriplets:SYBYLAtomTypes:MinDistance1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1886 :MaxDistance10;2332;NumericalValues;IDsAndValuesString;C.2-D1-C.2-D9-C
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1887 .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-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1888 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1889 -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.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1890 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...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1891
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1892 FingerprintsVector;TopologicalPharmacophoreAtomPairs:ArbitrarySize:Min
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1893 Distance1:MaxDistance10;54;NumericalValues;IDsAndValuesString;H-D1-H H
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1894 -D1-NI HBA-D1-NI HBD-D1-NI H-D2-H H-D2-HBA H-D2-HBD HBA-D2-HBA HBA-D2-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1895 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1896 BA H-D4-HBD HBA-D4-HBA HBA-D4-HBD HBD-D4-HBD H-D5-H H-D5-HBA H-D5-...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1897 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1898 3 4 1 37 10 8 1 35 10 9 3 3 1 28 7 7 4 18 16 12 5 1 2 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1899
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1900 FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1901 ance1:MaxDistance10;150;OrderedNumericalValues;ValuesString;18 0 0 1 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1902 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1903 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1904 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1905 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...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1906
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1907 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:ArbitrarySize:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1908 MinDistance1:MaxDistance10;696;NumericalValues;IDsAndValuesString;Ar1-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1909 Ar1-Ar1 Ar1-Ar1-H1 Ar1-Ar1-HBA1 Ar1-Ar1-HBD1 Ar1-H1-H1 Ar1-H1-HBA1 Ar1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1910 -H1-HBD1 Ar1-HBA1-HBD1 H1-H1-H1 H1-H1-HBA1 H1-H1-HBD1 H1-HBA1-HBA1 H1-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1911 HBA1-HBD1 H1-HBA1-NI1 H1-HBD1-NI1 HBA1-HBA1-NI1 HBA1-HBD1-NI1 Ar1-...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1912 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1913 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1914 119 123 24 15 185 202 41 25 22 17 3 5 85 95 18 11 23 17 3 1 1 6 4 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1915
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1916 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:FixedSize:MinD
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1917 istance1:MaxDistance10;2692;OrderedNumericalValues;ValuesString;46 106
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1918 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1919 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1920 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
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1921 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 ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1922
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1923 =head2 METHODS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1924
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1925 =over 4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1926
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1927 =item B<new>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1928
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1929 $NewFingerprintsFPFileIO = new FileIO::FingerprintsFPFileIO(%IOParameters);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1930
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1931 Using specified I<IOParameters> names and values hash, B<new> method creates a new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1932 object and returns a reference to a newly created B<FingerprintsFPFileIO> object. By default,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1933 the following properties are initialized during I<Read> mode:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1934
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1935 Name = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1936 Mode = 'Read';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1937 Status = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1938 FingerprintsStringMode = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1939 ValidateData = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1940 DetailLevel = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1941
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1942 During I<Write> mode, the following properties get initialize by default:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1943
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1944 FingerprintsStringMode = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1945
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1946 BitStringFormat = HexadecimalString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1947 BitsOrder = Ascending;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1948
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1949 VectorStringFormat = NumericalValuesString or ValuesString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1950
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1951 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1952
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1953 $NewFingerprintsFPFileIO = new FileIO::FingerprintsFPFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1954 'Name' => 'Sample.fpf',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1955 'Mode' => 'Read',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1956 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1957 'AutoDetect');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1958
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1959 $NewFingerprintsFPFileIO = new FileIO::FingerprintsFPFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1960 'Name' => 'Sample.fpf',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1961 'Mode' => 'Write',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1962 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1963 'FingerprintsBitVectorString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1964 'Overwrite' => 1,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1965 'BitStringFormat' => 'HexadecimalString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1966 'BitsOrder' => 'Ascending');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1967
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1968 $NewFingerprintsFPFileIO = new FileIO::FingerprintsFPFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1969 'Name' => 'Sample.fp',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1970 'Mode' => 'Write',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1971 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1972 'FingerprintsVectorString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1973 'Overwrite' => 1,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1974 'VectorStringFormat' => 'IDsAndValuesString');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1975
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1976 =item B<GetFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1977
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1978 $FingerprintsObject = $FingerprintsFPFileIO->GetFingerprints();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1979
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1980 Returns B<FingerprintsObject> generated for current data line using fingerprints bit-vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1981 or vector string data. The fingerprints object corresponds to any of the supported fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1982 such as PathLengthFingerprints, ExtendedConnectivity, and so on.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1983
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1984 =item B<GetFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1985
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1986 $FingerprintsString = $FingerprintsFPFileIO->GetFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1987
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1988 Returns B<FingerprintsString> for current data line.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1989
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1990 =item B<GetHeaderDataKeyValue>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1991
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1992 $KeyValue = $FingerprintsFPFileIO->GetHeaderDataKeyValue($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1993
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1994 Returns B<KeyValue> of a data header I<Key>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1995
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1996 =item B<GetHeaderDataKeys>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1997
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1998 @Keys = $FingerprintsFPFileIO->GetHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1999 $NumOfKeys = $FingerprintsFPFileIO->GetHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2001 Returns an array of data header B<Keys> retrieved from data header section of fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2002 file. In scalar context, it returns number of keys.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2003
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2004 =item B<GetHeaderDataKeysAndValues>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2005
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2006 %KeysAndValues = $FingerprintsFPFileIO->GetHeaderDataKeysAndValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2007
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2008 Returns a hash of data header keys and values retrieved from data header section of fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2009 file.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2011 =item B<GetPartialFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2012
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2013 $FingerprintsString = $FingerprintsFPFileIO->GetPartialFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2014
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2015 Returns partial B<FingerprintsString> for current data line. It corresponds to fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2016 specified present in a line.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2017
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2018 =item B<GetRequiredHeaderDataKeys>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2019
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2020 @Keys = $FingerprintsFPFileIO->GetRequiredHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2021 $NumOfKeys = $FingerprintsFPFileIO->GetRequiredHeaderDataKeys();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2022
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2023 Returns an array of required data header B<Keys> for a fingerprints file containing bit-vector or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2024 vector strings data. In scalar context, it returns number of keys.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2025
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2026 =item B<GetRequiredHeaderDataKeysAndValues>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2027
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2028 %KeysAndValues = $FingerprintsFPFileIO->
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2029 GetRequiredHeaderDataKeysAndValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2030
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2031 Returns a hash of required data header keys and values for a fingerprints file containing bit-vector or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2032 vector strings data
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2033
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2034 =item B<IsFingerprintsDataValid>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2035
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2036 $Status = $FingerprintsFPFileIO->IsFingerprintsDataValid();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2037
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2038 Returns 1 or 0 based on whether B<FingerprintsObject> is valid.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2039
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2040 =item B<IsFingerprintsFPFile>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2041
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2042 $Status = $FingerprintsFPFileIO->IsFingerprintsFPFile($FileName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2043 $Status = FileIO::FingerprintsFPFileIO::IsFingerprintsFPFile($FileName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2044
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2045 Returns 1 or 0 based on whether I<FileName> is a FP file.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2046
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2047 =item B<IsFingerprintsFileDataValid>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2048
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2049 $Status = $FingerprintsFPFileIO->IsFingerprintsFileDataValid();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2050
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2051 Returns 1 or 0 based on whether fingerprints file contains valid fingerprints data.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2052
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2053 =item B<IsHeaderDataKeyPresent>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2054
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2055 $Status = $FingerprintsFPFileIO->IsHeaderDataKeyPresent($Key);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2056
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2057 Returns 1 or 0 based on whether data header I<Key> is present in data header
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2058 section of a FP file.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2059
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2060 =item B<Next or Read>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2061
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2062 $FingerprintsFPFileIO = $FingerprintsFPFileIO->Next();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2063 $FingerprintsFPFileIO = $FingerprintsFPFileIO->Read();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2064
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2065 Reads next available fingerprints line in FP file, processes the data, generates appropriate fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2066 object, and returns B<FingerprintsFPFileIO>. The generated fingerprints object is available using
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2067 method B<GetFingerprints>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2068
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2069 =item B<SetBitStringFormat>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2070
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2071 $FingerprintsFPFileIO->SetBitStringFormat($Format);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2072
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2073 Sets bit string I<Format> for fingerprints bit-vector string data in a FP file and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2074 Possible values for B<BitStringFormat>: I<BinaryString or HexadecimalString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2075
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2076 =item B<SetBitsOrder>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2077
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2078 $FingerprintsFPFileIO->SetBitsOrder($BitsOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2079
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2080 Sets I<BitsOrder> for fingerprints bit-vector string data in a FP file and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2081 Possible values for B<BitsOrder>: I<Ascending or Descending>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2082
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2083 =item B<SetCompoundID>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2084
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2085 $FingerprintsFPFileIO->SetCompoundID($ID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2086
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2087 Sets compound ID for current data line and returns B<FingerprintsFPFileIO>. Spaces are not allowed
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2088 in compound IDs.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2089
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2090 =item B<SetDetailLevel>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2091
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2092 $FingerprintsFPFileIO->SetDetailLevel($Level);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2093
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2094 Sets details I<Level> for generating diagnostics messages during FP file processing and returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2095 B<FingerprintsFPFileIO>. Possible values: I<Positive integers>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2096
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2097 =item B<SetFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2098
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2099 $FingerprintsFPFileIO->SetFingerprints($FingerprintsObject);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2101 Sets I<FingerprintsObject> for current data line and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2102
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2103 =item B<SetFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2104
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2105 $FingerprintsFPFileIO->SetFingerprintsString($FingerprintsString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2106
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2107 Sets I<FingerprintsString> for current data line and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2108
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2109 =item B<SetFingerprintsStringMode>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2111 $FingerprintsFPFileIO->SetFingerprintsStringMode($Mode);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2112
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2113 Sets I<FingerprintsStringMode> for FP file and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2114 Possible values: I<AutoDetect, FingerprintsBitVectorString, or FingerprintsVectorString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2115
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2116 =item B<SetPartialFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2118 $FingerprintsFPFileIO->SetPartialFingerprintsString($PartialString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2119
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2120 Sets I<PartialFingerprintsString> for current data line and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2121
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2122 =item B<SetVectorStringFormat>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2123
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2124 $FingerprintsFPFileIO->SetVectorStringFormat($Format);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2125
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2126 Sets I<VectorStringFormat> for FP file and returns B<FingerprintsFPFileIO>. Possible values:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2127 I<IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2128
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2129 =item B<WriteFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2130
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2131 $FingerprintsFPFileIO->WriteFingerprints($FingerprintsObject,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2132 $CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2133
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2134 Writes fingerprints string generated from I<FingerprintsObject> object and other data including
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2135 I<CompoundID> to FP file and returns B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2136
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2137 =item B<WriteFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2138
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2139 $FingerprintsFPFileIO->WriteFingerprints($FingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2140 $CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2141
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2142 Writes I<FingerprintsString> and other data including I<CompoundID> to FP file and returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2143 B<FingerprintsFPFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2144
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2145 Caveats:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2146
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2147 o FingerprintsStringMode, BitStringFormat, BitsOrder, VectorStringFormat
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2148 values are ignored during writing of fingerprints and it's written to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2149 the file as it is.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2150 o FingerprintsString is a regular fingerprints string as oppose to a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2151 partial fingerprints string.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2152
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2153 =back
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2154
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2155 =head1 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2156
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2157 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2158
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2159 =head1 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2160
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2161 FingerprintsSDFileIO.pm, FingerprintsTextFileIO.pm
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2163 =head1 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2164
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2165 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2166
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2167 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2168
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2169 MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2170 the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2171 Software Foundation; either version 3 of the License, or (at your option)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2172 any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2173
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2174 =cut