annotate lib/FileIO/FingerprintsTextFileIO.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::FingerprintsTextFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: FingerprintsTextFileIO.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 Fingerprints::FingerprintsStringUtil ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 use FileIO::FileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38 use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 @ISA = qw(FileIO::FileIO Exporter);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41 @EXPORT = qw();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 @EXPORT_OK = qw(IsFingerprintsTextFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44 %EXPORT_TAGS = (all => [@EXPORT, @EXPORT_OK]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46 # Setup class variables...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47 my($ClassName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 _InitializeClass();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 # Class constructor...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 sub new {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 my($Class, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54 # Initialize object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55 my $This = $Class->SUPER::new();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 bless $This, ref($Class) || $Class;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 $This->_InitializeFingerprintsTextFileIO();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 $This->_InitializeFingerprintsTextFileIOProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64 # Initialize object data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 sub _InitializeFingerprintsTextFileIO {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69 # Fingerprints string data format during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 # For file read:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73 # AutoDetect - automatically detect format of fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 # Default value: AutoDetect
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 # For file write:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 # Default value: undef
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86 $This->{FingerprintsStringMode} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88 # For file read:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90 # o Fingerprints bit-vector and vector object for current fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92 # For file write:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 # o Fingerprints bit-vector and vector object for current fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 # o Any supported fingerprints object: PathLengthFingerprints, ExtendedConnectivity, and so on.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 # Fingepritns string for current line during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 # First data line read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103 $This->{FirstDataLineIO} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 # Current fingerprints string data line number during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 $This->{LineNum} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 # Text line data during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110 @{$This->{DataLineWords}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 # Text file column data during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113 @{$This->{DataColLabels}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115 # Text file delimiter during read/write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 $This->{Delim} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 # Initialize parameters for read...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 $This->_InitializeFingerprintsTextFileIORead();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121 # Initialize parameters for write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 $This->_InitializeFingerprintsTextFileIOWrite();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 # Initialize class ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128 sub _InitializeClass {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129 #Class name...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 $ClassName = __PACKAGE__;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134 # Initialize object data for reading fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 sub _InitializeFingerprintsTextFileIORead {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139 # Column ID specification for identification of comound ID or fingerints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 # data column...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142 # ColNum - A valid column number
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143 # ColLabel - A valid column name
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145 $This->{ColMode} = 'ColNum';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 # Fingerprints column to use for retrieving fingerprints string data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 # Value of AutoDetect implies use first column containing the word Fingerprints in its
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 # column label to retrieve fingerprints string data. Othwewise, a valid column number
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151 # or column name must be specified based on the value of ColMode.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 $This->{FingerprintsCol} = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155 # Compound ID column to use for retrieving compound IDs for fingerprints...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157 # Value of AutoDetect implies use first column containing the word CompoundID in its column
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 # label to retrieve compound IDs or assign seqyentially generated compound IDs. Othwewise,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159 # a valid column number or column name must be specified based on the value of ColMode.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 $This->{CompoundIDCol} = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 # A prefix string used for generating compound IDs like LabelPrefixString<Number> during
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 # sequential generation of compound IDs. Default value, Cmpd, generates compound IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165 # which look like like Cmpd<Number>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167 $This->{CompoundIDPrefix} = 'Cmpd';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 # Input delimiter for fingerprints CSV text file. Possible values: comma, semicolon or tab. This
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170 # option is ignored for TSV text file and tab is used as the delimiter.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172 $This->{InDelim} = 'comma';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 # By default, the fingerprints data corresponding to FingerprintsCol is assumed to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175 # be valid and no validation is performed before generating fingerprints objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177 $This->{ValidateData} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179 # Level of detail to print during validation of data for invalid or missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 $This->{DetailLevel} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182 # Number of missing and invalid fingerprints string data lines...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 $This->{NumOfLinesWithMissingData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 $This->{NumOfLinesWithInvalidData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186 # Compound ID for current fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187 $This->{CompoundID} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 # Status of data in fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 $This->{ValidFileData} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192 $This->{ValidCompoundIDCol} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 $This->{ValidFingerprintsCol} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200 # Initialize object data for writing fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202 sub _InitializeFingerprintsTextFileIOWrite {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205 # Fingerprints bit vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207 # Possible values: BinaryString or HexadecimalString [Default]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
209 # Default BitStringFormat is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultBitStringFormat.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
210 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
211 $This->{BitStringFormat} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
212
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
213 # Bits order in fingerprints bit vector string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
214 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
215 # Ascending - First bit in each byte as the lowest bit [Default]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
216 # Descending - First bit in each byte as the highest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
217 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
218 # Default BitsOrder is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultBitsOrder.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
219 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
220 $This->{BitsOrder} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
221
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
222 # Fingerprints vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
223 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
224 # Possible values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, ValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
225 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
226 # Default VectorStringFormat is set during first write using Fingerprints::FingerprintsStringUtil::GetDefaultVectorStringFormat.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
227 # For fingerprints vector object containing vector NumericalValues, it corresponds to IDsAndValuesString; othwerwise,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
228 # it's set to ValuesString.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
229 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
230 $This->{VectorStringFormat} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
231
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
232 # Delimiter for output fingerprints CSV/TSV file. Possible values: comma, tab, semicolon. This
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
233 # option is ignored for TSV text file and tab is used as the delimiter.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
234 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
235 $This->{OutDelim} = 'comma';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
236
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
237 # Quotes around column values for output fingerprints CSV/TSV text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
238 $This->{OutQuote} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
239
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
240 # Overwriting existing file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
241 $This->{Overwrite} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
242
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
243 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
244 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
245
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
246 # Initialize object values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
247 sub _InitializeFingerprintsTextFileIOProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
248 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
249
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
250 # All other property names and values along with all Set/Get<PropertyName> methods
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
251 # are implemented on-demand using ObjectProperty class.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
252
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
253 my($Name, $Value, $MethodName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
254 while (($Name, $Value) = each %NamesAndValues) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
255 $MethodName = "Set${Name}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
256 $This->$MethodName($Value);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
257 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
258
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
259 if (!exists $NamesAndValues{Name}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
260 croak "Error: ${ClassName}->New: Object can't be instantiated without specifying file name...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
261 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
262
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
263 # Make sure it's a fingerprints file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
264 $Name = $NamesAndValues{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
265 if (!$This->IsFingerprintsTextFile($Name)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
266 croak "Error: ${ClassName}->New: Object can't be instantiated: File, $Name, doesn't appear to be fingerprints format...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
267 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
268
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
269 if ($This->GetMode() =~ /^Read$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
270 $This->_InitializeFingerprintsTextFileIOReadProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
271 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
272 elsif ($This->GetMode() =~ /^(Write|Append)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
273 $This->_InitializeFingerprintsTextFileIOWriteProperties(%NamesAndValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
274 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
275
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
276 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
277 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
278
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
279 # Initialize object properties for reading fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
280 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
281 sub _InitializeFingerprintsTextFileIOReadProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
282 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
283
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
284 # Set default value for FingerprintsStringMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
285 if (!$This->{FingerprintsStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
286 $This->{FingerprintsStringMode} = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
287 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
288
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
289 $This->_PrepareForReadingFingerprintsTextFileData();
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 # Initialize object properties for writing fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
295 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
296 sub _InitializeFingerprintsTextFileIOWriteProperties {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
297 my($This, %NamesAndValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
298
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
299 # Check FingerprintsStringMode value...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
300 if (!exists $NamesAndValues{FingerprintsStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
301 croak "Error: ${ClassName}->New: Object can't be instantiated without specifying FingerprintsStringMode...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
302 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
303
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
304 if ($This->{FingerprintsStringMode} !~ /^(FingerprintsBitVectorString|FingerprintsVectorString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
305 croak "Error: ${ClassName}->: 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
306 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
307
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
308 if (!exists $NamesAndValues{DataColLabels}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
309 croak "Error: ${ClassName}->New: Object can't be instantiated without specifying DataColLabels...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
310 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
311
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
312 if ($This->{OutDelim} =~ /semicolon/i && !$This->{OutQuote}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
313 croak "Error: ${ClassName}->: Object can't be instantiated: The value specified, $This->{OutQuote}, using \"OutQuote\" is not allowed with semicolon value of \"OutDelim\": Fingerprints string use semicolon as delimiter for various data fields and must be quoted.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
314 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
315
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
316 $This->_PrepareForWritingFingerprintsTextFileData();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
317
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
318 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
319 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
320
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
321 # Set FingerprintsStringMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
322 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
323 sub SetFingerprintsStringMode {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
324 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
325
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
326 # AutoDetect - automatically detect format of fingerprints string
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
327 # FingerprintsBitVectorString - Bit vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
328 # FingerprintsVectorString - Vector fingerprints string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
329
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
330 if ($Value !~ /^(AutoDetect|FingerprintsBitVectorString|FingerprintsVectorString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
331 croak "Error: ${ClassName}->SetFingerprintsStringMode: FingerprintsStringMode value, $Value, is not valid; Supported values: AutoDetect, FingerprintsBitVectorString or FingerprintsVectorString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
332 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
333
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
334 $This->{FingerprintsStringMode} = $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 ColMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
340 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
341 sub SetColMode {
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 !~ /^(ColNum|ColLabel)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
345 croak "Error: ${ClassName}->SetColMode: ColMode value, $Value, is not valid; Supported values: ColNum or ColLabel...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
346 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
347
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
348 $This->{ColMode} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
349
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
350 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
351 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
352
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
353 # Set InDelim...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
354 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
355 sub SetInDelim {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
356 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
357
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
358 if ($Value !~ /^(comma|semicolon|tab)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
359 croak "Error: ${ClassName}->SetInDelim: InDelim value, $Value, is not valid; Supported values: comma, semicolon, or tab...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
360 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
361
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
362 $This->{InDelim} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
363
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
364 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
365 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
366
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
367 # Set DetailLevel...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
368 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
369 sub SetDetailLevel {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
370 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
371
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
372 if (!TextUtil::IsPositiveInteger($Value)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
373 croak "Error: ${ClassName}->SetDetailLevel: DetailLevel value, $Value, is not valid; Supported values: > 0...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
374 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
375
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
376 $This->{DetailLevel} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
377
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
378 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
379 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
380
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
381 # Set BitStringFormat...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
382 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
383 sub SetBitStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
384 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
385
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
386 if ($Value !~ /^(BinaryString|HexadecimalString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
387 croak "Error: ${ClassName}->SetBitStringFormat: BitStringFormat value, $Value, is not valid; Supported values: BinaryString or HexadecimalString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
388 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
389
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
390 $This->{BitStringFormat} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
391
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
392 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
393 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
394
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
395 # Set BitsOrder...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
396 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
397 sub SetBitsOrder {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
398 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
399
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
400 # Ascending - First bit in each byte as the lowest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
401 # Descending - First bit in each byte as the highest bit
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
402 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
403 if ($Value !~ /^(Ascending|Descending)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
404 croak "Error: ${ClassName}->SetBitsOrder: FingerprintsStringMode value, $Value, is not valid; Supported values: Ascending or Descending...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
405 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
406
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
407 $This->{BitsOrder} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
408
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
409 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
410 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
411
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
412 # Set VectorStringFormat...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
413 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
414 sub SetVectorStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
415 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
416
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
417 # Possible values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, ValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
418
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
419 if ($Value !~ /^(IDsAndValuesString|IDsAndValuesPairsString|ValuesAndIDsString|ValuesAndIDsPairsString|ValuesString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
420 croak "Error: ${ClassName}->SetVectorStringFormat: FingerprintsStringMode value, $Value, is not valid; Supported values: IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString, or ValuesString...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
421 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
422
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
423 $This->{VectorStringFormat} = $Value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
424
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
425 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
426 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
427
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
428 # Set FingerprintsStringMode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
429 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
430 sub SetOutDelim {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
431 my($This, $Value) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
432
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
433 if ($Value !~ /^(comma|tab|semicolon)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
434 croak "Error: ${ClassName}->SetOutDelim: OutDelim value, $Value, is not valid; Supported values: comma, tab or semicolon...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
435 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
436
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
437 $This->{OutDelim} = $Value;
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 # Set DataColLabels...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
443 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
444 # Set output data column labels using:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
445 # o List of column labels
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
446 # o Reference to an list of column labels
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
447 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
448 sub SetDataColLabels {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
449 my($This, @Values) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
450 my($FirstValue, $TypeOfFirstValue);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
451
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
452 if (!@Values) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
453 carp "Warning: ${ClassName}->_SetDataColLabels: No data column labels specified...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
454 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
455 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
456
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
457 @{$This->{DataColLabels}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
458
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
459 $FirstValue = $Values[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
460 $TypeOfFirstValue = ref $FirstValue;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
461
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
462 if ($TypeOfFirstValue =~ /^ARRAY/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
463 # Initialize using array refernce...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
464 push @{$This->{DataColLabels}}, @{$FirstValue};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
465 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
466 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
467 # It's a list of values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
468 push @{$This->{DataColLabels}}, @Values;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
469 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
470
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
471 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
472 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
473
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
474 # Get column labels or number of column labels in first text line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
475 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
476 sub GetDataColLabels {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
477 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
478
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
479 return wantarray ? @{$This->{DataColLabels}} : scalar @{$This->{DataColLabels}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
480 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
481
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
482 # Get words or number of words in current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
483 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
484 sub GetDataLineWords {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
485 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
486
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
487 return wantarray ? @{$This->{DataLineWords}} : scalar @{$This->{DataLineWords}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
488 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
489
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
490 # Set DataLineWords...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
491 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
492 # Set data line words using:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
493 # o List of line words
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
494 # o Reference to an list of line words
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
495 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
496 sub SetDataLineWords {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
497 my($This, @Values) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
498 my($FirstValue, $TypeOfFirstValue);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
499
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
500 if (!@Values) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
501 carp "Warning: ${ClassName}->SetDataLineWords: No line words specified...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
502 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
503 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
504
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
505 @{$This->{DataLineWords}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
506
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
507 $FirstValue = $Values[0];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
508 $TypeOfFirstValue = ref $FirstValue;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
509
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
510 if ($TypeOfFirstValue =~ /^ARRAY/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
511 # Initialize using array refernce...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
512 push @{$This->{DataLineWords}}, @{$FirstValue};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
513 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
514 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
515 # It's a list of values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
516 push @{$This->{DataLineWords}}, @Values;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
517 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
518
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
519 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
520 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
521
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
522 # Get fingerprints object for current data line using fingerprints, fingerprints bit-vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
523 # fingerprints vector object. Fingerprints object correspond to any of supported fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
524 # objects such as PathLengthFingerprints, ExtendedConnectivity, and so on.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
525 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
526 sub GetFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
527 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
528
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
529 return $This->{FingerprintsObject};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
530 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
531
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
532 # Set fingerprints object for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
533 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
534 sub SetFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
535 my($This, $FingerprintsObject) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
536
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
537 $This->{FingerprintsObject} = $FingerprintsObject;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
538
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
539 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
540 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
541
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
542 # Get fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
543 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
544 sub GetFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
545 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
546
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
547 return $This->{FingerprintsString} ? $This->{FingerprintsString} : 'None';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
548 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
549
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
550 # Set fingerprints string for current data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
551 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
552 sub SetFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
553 my($This, $FingerprintsString) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
554
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
555 $This->{FingerprintsString} = $FingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
556
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 # Does fingerprints text file contain valid data?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
561 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
562 sub IsFingerprintsFileDataValid {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
563 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
564
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
565 return $This->{ValidFileData} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
566 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
567
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
568 # Does current data line contains valid fingerprints object data?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
569 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
570 sub IsFingerprintsDataValid {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
571 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
572
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
573 return defined $This->{FingerprintsObject} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
574 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
575
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
576 # Read next available fingerprints line, process it and generate appropriate fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
577 # objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
578 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
579 sub Read {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
580 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
581
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
582 # Read data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
583 if (!$This->_ReadDataLine()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
584 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
585 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
586
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
587 # No need to process invalid text file with invalid data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
588 if (!$This->{ValidFileData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
589 if ($This->{ValidateData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
590 $This->{NumOfLinesWithMissingData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
591 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
592 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
593 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
594
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
595 # Perform data validation...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
596 if ($This->{ValidateData}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
597 if (!$This->_ValidateReadDataLine()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
598 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
599 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
600 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
601
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
602 # Setup fingerprints string after checking again to handle problematic data for
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
603 # non-validated data lines...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
604 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
605 if ($This->{FingerprintsColNum} <= $#{$This->{DataLineWords}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
606 $This->{FingerprintsString} = $This->{DataLineWords}[$This->{FingerprintsColNum}];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
607 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
608
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
609 # Generate fingeprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
610 $This->_GenerateFingerprintsObject();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
611
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
612 # Setup fingerprints compound ID for fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
613 $This->_GenerateCompoundID();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
614
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
615 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
616 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
617
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
618 # Read next available fingerprints line, process it and generate appropriate fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
619 # objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
620 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
621 sub Next {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
622 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
623
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
624 return $This->Read();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
625 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
626
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
627 # Read fingerprints data line line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
628 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
629 sub _ReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
630 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
631
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
632 if ($This->{FirstDataLineIO}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
633 $This->_ProcessFirstDataLineRead();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
634 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
635
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
636 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
637 $This->_InitializeReadDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
638
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
639 # Get next data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
640 $This->{DataLine} = TextUtil::GetTextLine($This->{FileHandle});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
641 if (!$This->{DataLine}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
642 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
643 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
644
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
645 # Get line words...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
646 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
647 @{$This->{DataLineWords}} = TextUtil::SplitWords($This->{DataLine}, $This->{Delim});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
648
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
649 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
650 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
651
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
652 # Initialize data line for reading...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
653 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
654 sub _InitializeReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
655 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
656
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
657 $This->{CompoundID} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
658
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
659 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
660 @{$This->{DataLineWords}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
661
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
662 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
663 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
664
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
665 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
666 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
667
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
668 # Validate fingerprints string data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
669 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
670 sub _ValidateReadDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
671 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
672
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
673 # Check for missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
674 if ($This->{FingerprintsColNum} > $#{$This->{DataLineWords}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
675 # Missing data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
676 $This->{NumOfLinesWithMissingData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
677 if ($This->{DetailLevel} >= 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
678 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains no fingerprints data: $This->{DataLine}...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
679 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
680 elsif ($This->{DetailLevel} >= 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
681 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains no fingerprints data...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
682 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
683 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
684 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
685
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
686 # Check for invalid data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
687 my($InvalidFingerprintsData, $FingerprintsColNum, $FingerprintsType, $FingerprintsDescription);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
688
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
689 $InvalidFingerprintsData = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
690 $FingerprintsColNum = $This->{FingerprintsColNum};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
691
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
692 if (Fingerprints::FingerprintsStringUtil::AreFingerprintsStringValuesValid($This->{DataLineWords}[$FingerprintsColNum])) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
693 ($FingerprintsType, $FingerprintsDescription) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringTypeAndDescription($This->{DataLineWords}[$FingerprintsColNum]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
694 if ($This->{FirstFingerprintsStringType} !~ /^$FingerprintsType$/i || $This->{FirstFingerprintsStringDescription} !~ /^$FingerprintsDescription$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
695 $InvalidFingerprintsData = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
696 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
697 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
698 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
699 $InvalidFingerprintsData = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
700 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
701
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
702 if ($InvalidFingerprintsData) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
703 $This->{NumOfLinesWithInvalidData} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
704 if ($This->{DetailLevel} >= 3) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
705 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains invalid fingerprints data: $This->{DataLine}...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
706 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
707 elsif ($This->{DetailLevel} >= 2) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
708 carp "Warning: ${ClassName}->_ValidateReadDataLine: Data line number $This->{LineNum} contains invalid fingerprints data...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
709 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
710 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
711 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
712
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
713 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
714 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
715
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
716 # Setup fingerprints compound ID for fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
717 sub _GenerateCompoundID {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
718 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
719 my($CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
720
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
721 $CompoundID = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
722
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
723 if ($This->{UseSequentialCompoundIDs} || ($This->{CompoundIDColNum} > $#{$This->{DataLineWords}})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
724 my($CompoundNum);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
725
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
726 $CompoundNum = $This->{LineNum} - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
727 $CompoundID = "$This->{CompoundIDPrefix}${CompoundNum}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
728 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
729 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
730 $CompoundID = $This->{DataLineWords}[$This->{CompoundIDColNum}];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
731 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
732
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
733 $This->{CompoundID} = $CompoundID;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
734
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
735 # Set fingerprints ID...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
736 if ($This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
737 $This->{FingerprintsObject}->SetID($This->{CompoundID});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
738 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
739
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
740 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
741 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
742
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
743 # Process first read...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
744 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
745 sub _ProcessFirstDataLineRead {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
746 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
747
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
748 # Skip column label line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
749 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
750 TextUtil::GetTextLine($This->{FileHandle});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
751
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
752 $This->{FirstDataLineIO} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
753
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
754 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
755 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
756
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
757 # Get ready for reading fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
758 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
759 sub _PrepareForReadingFingerprintsTextFileData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
760 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
761
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
762 # Retrieve text file columns information....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
763 $This->_RetrieveTextFileColData();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
764
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
765 # Validate columns information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
766 $This->_ValidateReadCompoundIDCol();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
767 $This->_ValidateReadFingerprintsCol();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
768
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
769 # Validate fingeprints string mode information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
770 if ($This->{ValidFingerprintsCol}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
771 $This->_ValidateReadFingerprintsStringMode();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
772 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
773
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
774 # Set status of text file data...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
775 $This->{ValidFileData} = ($This->{ValidCompoundIDCol} && $This->{ValidFingerprintsCol} && $This->{ValidFingerprintsStringMode}) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
776
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
777 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
778 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
779
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
780 # Retrieve information about columns and fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
781 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
782 sub _RetrieveTextFileColData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
783 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
784 my($TextFile, $FileDir, $FileName, $FileExt, $InDelim, $Line, $ColLabel, $ColNum, @ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
785
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
786 @{$This->{DataColLabels}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
787 %{$This->{DataColLabelToNumMap}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
788
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
789 $TextFile = $This->{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
790
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
791 if (!(-e $TextFile)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
792 croak "Error: ${ClassName}->New: Object can't be instantiated: File, $TextFile, doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
793 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
794
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
795 $FileDir = ""; $FileName = ""; $FileExt = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
796 ($FileDir, $FileName, $FileExt) = FileUtil::ParseFileName($TextFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
797
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
798 $InDelim = ($FileExt =~ /^tsv$/i) ? "\t" : ($This->{InDelim} =~ /semicolon/i ? "\;" : "\,");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
799 $This->{Delim} = $InDelim;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
800
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
801 if (!open TEXTFILE, "$TextFile") {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
802 croak "Error: ${ClassName}->New: Object can't be instantiated: Couldn't open input text file $TextFile: $! ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
803 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
804
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
805 # Get column label line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
806 $Line = TextUtil::GetTextLine(\*TEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
807
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
808 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
809
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
810 @ColLabels = TextUtil::SplitWords($Line, $InDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
811
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
812 # Set text file columns info....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
813 push @{$This->{DataColLabels}}, @ColLabels;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
814
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
815 for $ColNum (0 .. $#ColLabels) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
816 $ColLabel = $ColLabels[$ColNum];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
817 $This->{DataColLabelToNumMap}{$ColLabel} = $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
818 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
819
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
820 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
821 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
822
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
823 # Validate compound ID column information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
824 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
825 sub _ValidateReadCompoundIDCol {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
826 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
827 my($CompoundIDCol, $CompoundIDColNum, $UseSequentialCompoundIDs, $ColFound, $ColLabel, $ColNum);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
828
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
829 $This->{ValidCompoundIDCol} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
830 $This->{CompoundIDColNum} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
831 $This->{UseSequentialCompoundIDs} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
832
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
833 $CompoundIDCol = $This->{CompoundIDCol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
834
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
835 $UseSequentialCompoundIDs = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
836 $CompoundIDColNum = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
837
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
838 if ($CompoundIDCol =~ /^AutoDetect$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
839 # First column containing the word CompoundID in its label or sequential generation...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
840
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
841 $ColFound = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
842 COLLABEL: for $ColLabel (@{$This->{DataColLabels}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
843 if ($ColLabel =~ /CompoundID/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
844 $ColFound = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
845 $ColNum = $This->{DataColLabelToNumMap}{$ColLabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
846 last COLLABEL;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
847 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
848 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
849 if ($ColFound) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
850 $CompoundIDColNum = $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
851 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
852 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
853 $UseSequentialCompoundIDs = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
854 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
855 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
856 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
857 if ($This->{ColMode} =~ /^ColNum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
858 # Is it a valid column number?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
859 if ($CompoundIDCol > scalar @{$This->{DataColLabels}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
860 carp "Warning: ${ClassName}->_ValidateReadCompoundIDCol: Column number, $CompoundIDCol, specified using CompoundIDCol doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
861 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
862 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
863 $CompoundIDColNum = $CompoundIDCol - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
864 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
865 elsif ($This->{ColMode} =~ /^ColLabel$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
866 # Does this column exists?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
867 if (!exists $This->{DataColLabelToNumMap}{$CompoundIDCol}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
868 carp "Warning: ${ClassName}->_ValidateReadCompoundIDCol: Column name, $CompoundIDCol, specified using CompoundIDCol doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
869 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
870 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
871 $CompoundIDColNum = $This->{DataColLabelToNumMap}{$CompoundIDCol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
872 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
873 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
874
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
875 $This->{ValidCompoundIDCol} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
876 $This->{CompoundIDColNum} = $CompoundIDColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
877 $This->{UseSequentialCompoundIDs} = $UseSequentialCompoundIDs;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
878
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
879 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
880 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
881
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
882 # Validate fingerprints string column information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
883 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
884 sub _ValidateReadFingerprintsCol {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
885 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
886 my($FingerprintsColNum, $FingerprintsCol, $ColFound, $ColLabel, $ColNum);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
887
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
888 $This->{ValidFingerprintsCol} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
889 $This->{FingerprintsColNum} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
890
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
891 $FingerprintsColNum = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
892 $FingerprintsCol = $This->{FingerprintsCol};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
893
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
894 if ($FingerprintsCol =~ /^AutoDetect$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
895 # First column containing the word Fingerprints in its label...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
896
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
897 $ColFound = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
898 COLLABEL: for $ColLabel (@{$This->{DataColLabels}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
899 if ($ColLabel =~ /Fingerprints/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
900 $ColFound = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
901 $ColNum = $This->{DataColLabelToNumMap}{$ColLabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
902 last COLLABEL;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
903 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
904 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
905 if (!$ColFound) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
906 carp "Warning: ${ClassName}->_ValidateReadFingerprintsCol: Column label containing \"Fingerprints\" string in its name doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
907 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
908 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
909 $FingerprintsColNum = $ColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
910 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
911 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
912 if ($This->{ColMode} =~ /^ColNum$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
913 # Is it a valid column number?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
914 if ($FingerprintsCol > scalar @{$This->{DataColLabels}}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
915 carp "Warning: ${ClassName}->_ValidateReadFingerprintsCol: Column number, $FingerprintsCol, specified using FingerprintsCol doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
916 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
917 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
918 $FingerprintsColNum = $FingerprintsCol - 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
919 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
920 elsif ($This->{ColMode} =~ /^ColLabel$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
921 # Does this column exists?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
922 if (!exists $This->{DataColLabelToNumMap}{$FingerprintsCol}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
923 carp "Warning: ${ClassName}->_ValidateReadFingerprintsCol: Column label, $FingerprintsCol, specified using FingerprintsCol doesn't exist...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
924 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
925 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
926 $FingerprintsColNum = $This->{DataColLabelToNumMap}{$FingerprintsCol};
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 $This->{ValidFingerprintsCol} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
931 $This->{FingerprintsColNum} = $FingerprintsColNum;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
932
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
933 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
934 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
935
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
936 # Validate fingerprints string mode information...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
937 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
938 sub _ValidateReadFingerprintsStringMode {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
939 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
940 my($FingerprintsBitVectorStringMode, $FingerprintsVectorStringMode, $FirstFingerprintsStringType, $FirstFingerprintsStringDescription, $TextFile, $Line, $FingerprintsColNum, $InDelim, $FingerprintsType, $FingerprintsDescription, @LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
941
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
942 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
943
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
944 $This->{FingerprintsBitVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
945 $This->{FingerprintsVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
946
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
947 $This->{FirstFingerprintsStringType} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
948 $This->{FirstFingerprintsStringDescription} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
949
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
950 $FingerprintsBitVectorStringMode = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
951 $FingerprintsVectorStringMode = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
952
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
953 $FirstFingerprintsStringType = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
954 $FirstFingerprintsStringDescription = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
955
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
956 $TextFile = $This->{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
957
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
958 if (!open TEXTFILE, "$TextFile") {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
959 croak "Error: ${ClassName}->New: Object can't be instantiated: Couldn't open input text file $TextFile: $! ...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
960 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
961
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
962 # Skip column label line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
963 $Line = TextUtil::GetTextLine(\*TEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
964
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
965 # First first fingerprints data line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
966 $Line = TextUtil::GetTextLine(\*TEXTFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
967
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
968 close TEXTFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
969
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
970 # Get first fingerprints type and description...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
971 $InDelim = $This->{Delim};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
972 @LineWords = TextUtil::SplitWords($Line, $InDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
973
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
974 $FingerprintsColNum = $This->{FingerprintsColNum};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
975
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
976 ($FingerprintsType, $FingerprintsDescription) = Fingerprints::FingerprintsStringUtil::GetFingerprintsStringTypeAndDescription($LineWords[$FingerprintsColNum]);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
977
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
978 if ($This->{FingerprintsStringMode} =~ /^FingerprintsBitVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
979 if ($FingerprintsType !~ /^FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
980 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: First fingerprint string data type, $FingerprintsType, doesn't match value, FingerprintsBitVectorString, specified using \"FingerprintsStringMode\"...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
981 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
982 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
983 $FingerprintsBitVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
984 $FirstFingerprintsStringType = 'FingerprintsBitVector';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
985 $FirstFingerprintsStringDescription = $FingerprintsDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
986 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
987 elsif ($This->{FingerprintsStringMode} =~ /^FingerprintsVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
988 if ($FingerprintsType !~ /^FingerprintsVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
989 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: First fingerprint string data type, $FingerprintsType, doesn't match value, FingerprintsVectorString, specified using \"FingerprintsStringMode\"...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
990 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
991 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
992 $FingerprintsVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
993 $FirstFingerprintsStringType = 'FingerprintsVector';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
994 $FirstFingerprintsStringDescription = $FingerprintsDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
995 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
996 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
997 # AutoDetect mode...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
998 if ($FingerprintsType =~ /^FingerprintsBitVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
999 $FingerprintsBitVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1000 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1001 elsif ($FingerprintsType =~ /^FingerprintsVector$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1002 $FingerprintsVectorStringMode = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1003 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1004 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1005 carp "Warning: ${ClassName}->_ValidateReadFingerprintsStringMode: First fingerprint string data type, $FingerprintsType, identified during, AutoDetect, value of \"FingerprintsStringMode\" is not valid; Supported fingerprints types: FingerprintBitVector or FingerprintsVector...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1006 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1007 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1008 $FirstFingerprintsStringType = $FingerprintsType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1009 $FirstFingerprintsStringDescription = $FingerprintsDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1010 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1012 $This->{ValidFingerprintsStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1013
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1014 $This->{FingerprintsBitVectorStringMode} = $FingerprintsBitVectorStringMode;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1015 $This->{FingerprintsVectorStringMode} = $FingerprintsVectorStringMode;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1016
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1017 $This->{FirstFingerprintsStringType} = $FirstFingerprintsStringType;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1018 $This->{FirstFingerprintsStringDescription} = $FirstFingerprintsStringDescription;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1019
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1020 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1021 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1022
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1023 # Write fingerprints string generated from specified fingerprints, fingerprints-bit vector, or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1024 # fingerprints vector object and other data to text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1025 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1026 sub WriteFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1027 my($This, $FingerprintsObject, @DataColValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1028
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1029 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1030 $This->_InitializeWriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1031
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1032 # Set fingerprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1033 $This->{FingerprintsObject} = $FingerprintsObject;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1034
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1035 # Generate fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1036 $This->_GenerateFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1037
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1038 # Set data line words...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1039 $This->SetDataLineWords(@DataColValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1040 push @{$This->{DataLineWords}}, $This->{FingerprintsString};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1041
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1042 # Write data line..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1043 $This->_WriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1044
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1045 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1046 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1047
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1048 # Write fingerprints string and other data to text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1049 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1050 # Note:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1051 # o FingerprintsStringMode, BitStringFormat, BitsOrder, VectorStringFormat values
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1052 # are ignored during writing of fingerprints and it's written to the file as it is.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1053 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1054 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1055 sub WriteFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1056 my($This, $FingerprintsString, @DataColValues) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1057
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1058 # Initialize data for current line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1059 $This->_InitializeWriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1060
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1061 # Set fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1062 $This->{FingerprintsString} = $FingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1063
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1064 # Generate fingerprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1065 $This->_GenerateFingerprintsObject();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1066
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1067 # Set data line words...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1068 $This->SetDataLineWords(@DataColValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1069 push @{$This->{DataLineWords}}, $FingerprintsString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1070
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1071 # Write data line..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1072 $This->_WriteDataLine();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1073
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1074 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1075 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1076
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1077 # Initialize data line for reading...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1078 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1079 sub _InitializeWriteDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1080 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1081
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1082 $This->{DataLine} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1083 @{$This->{DataLineWords}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1084
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1085 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1086 $This->{FingerprintsString} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1087
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1088 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1089 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1090
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1091 # Write fingerprints data line line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1092 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1093 sub _WriteDataLine {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1094 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1095 my($FileHandle, $Line);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1096
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1097 if ($This->{FirstDataLineIO}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1098 $This->_ProcessFirstDataLineWrite();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1099 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1101 # Write out line words...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1102 $Line = TextUtil::JoinWords(\@{$This->{DataLineWords}}, $This->{Delim}, $This->{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1104 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1105 $FileHandle = $This->{FileHandle};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1106 print $FileHandle "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1108 $This->{DataLine} = $Line;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1109
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1110 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1111 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1112
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1113 # Process first write...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1114 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1115 sub _ProcessFirstDataLineWrite {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1116 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1117 my($Line, $FileHandle);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1118
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1119 $This->{FirstDataLineIO} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1120
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1121 if ($This->GetMode() =~ /^Write$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1122 # Write out column label line...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1123 $Line = TextUtil::JoinWords(\@{$This->{DataColLabels}}, $This->{Delim}, $This->{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1124
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1125 $This->{LineNum} += 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1126 $FileHandle = $This->{FileHandle};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1127 print $FileHandle "$Line\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1128 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1129
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1130 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1131 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1132
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1133 # Get ready for writing fingerprints text file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1134 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1135 sub _PrepareForWritingFingerprintsTextFileData {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1136 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1137 my($TextFile, $FileDir, $FileName, $FileExt, $OutDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1138
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1139 $TextFile = $This->{Name};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1140 if (!$This->{Overwrite}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1141 if (-e $TextFile) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1142 croak "Error: ${ClassName}->New: Object can't be instantiated: File, $TextFile, already exist. Use overwrite option...";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1143 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1144 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1145
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1146 # Set up delimiter for writing file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1147
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1148 $FileDir = ""; $FileName = ""; $FileExt = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1149 ($FileDir, $FileName, $FileExt) = FileUtil::ParseFileName($TextFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1150
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1151 $OutDelim = ($FileExt =~ /^tsv$/i) ? "\t" : ($This->{OutDelim} =~ /semicolon/i ? "\;" : "\,");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1152 $This->{Delim} = $OutDelim;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1153
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1154 # Setup FingerprintsStringMode status...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1155
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1156 $This->{FingerprintsBitVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1157 $This->{FingerprintsVectorStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1158 $This->{ValidFingerprintsStringMode} = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1159
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1160 if ($This->{FingerprintsStringMode} =~ /^FingerprintsBitVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1161 $This->{FingerprintsBitVectorStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1162 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1163 elsif ($This->{FingerprintsStringMode} =~ /^FingerprintsVectorString$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1164 $This->{FingerprintsVectorStringMode} = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1165 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1166
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1167 $This->{ValidFingerprintsStringMode} = ($This->{FingerprintsBitVectorStringMode} || $This->{FingerprintsVectorStringMode}) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1168
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1169 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1170 $This->_SetDefaultBitStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1171 $This->_SetDefaultBitsOrder();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1172 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1173 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1174 $This->_SetDefaultVectorStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1175 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1176
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1177 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1178 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1179
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1180 # Set default value for bit string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1181 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1182 sub _SetDefaultBitStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1183 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1184
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1185 if (!$This->{BitStringFormat}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1186 $This->{BitStringFormat} = Fingerprints::FingerprintsStringUtil::GetDefaultBitStringFormat();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1187 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1188
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1189 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1190 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1191
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1192 # Set default value for bit string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1193 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1194 sub _SetDefaultBitsOrder {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1195 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1196
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1197 if (!$This->{BitsOrder}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1198 $This->{BitsOrder} = Fingerprints::FingerprintsStringUtil::GetDefaultBitsOrder();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1199 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1200
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1201 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1202 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1203
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1204 # Set default value for vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1205 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1206 sub _SetDefaultVectorStringFormat {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1207 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1208
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1209 if (!$This->{VectorStringFormat} && $This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1210 $This->{VectorStringFormat} = Fingerprints::FingerprintsStringUtil::GetDefaultVectorStringFormat($This->{FingerprintsObject});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1211 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1212
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1213 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1214 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1215
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1216 # Generate fingerprints object using current fingerprints string...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1217 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1218 sub _GenerateFingerprintsObject {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1219 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1220
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1221 $This->{FingerprintsObject} = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1222
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1223 if (!$This->{FingerprintsString}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1224 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1225 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1226
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1227 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1228 $This->{FingerprintsObject} = Fingerprints::FingerprintsStringUtil::ParseFingerprintsBitVectorString($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1229 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1230 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1231 $This->{FingerprintsObject} = Fingerprints::FingerprintsStringUtil::ParseFingerprintsVectorString($This->{FingerprintsString});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1232 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1233 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1234 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1235 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1236
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1237 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1238 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1239
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1240 # Generate fingerprints string using current fingerprints object...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1241 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1242 sub _GenerateFingerprintsString {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1243 my($This) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1244
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1245 $This->{FingerprintsString} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1246
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1247 if (!$This->{FingerprintsObject}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1248 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1249 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1250
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1251 if ($This->{FingerprintsBitVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1252 $This->{FingerprintsString} = Fingerprints::FingerprintsStringUtil::GenerateFingerprintsString($This->{FingerprintsObject}, $This->{BitStringFormat}, $This->{BitsOrder});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1253 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1254 elsif ($This->{FingerprintsVectorStringMode}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1255 $This->{FingerprintsString} = Fingerprints::FingerprintsStringUtil::GenerateFingerprintsString($This->{FingerprintsObject}, $This->{VectorStringFormat});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1256 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1257
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1258 return $This;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1259 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1260
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1261 # Is it a fingerprints file?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1262 sub IsFingerprintsTextFile ($;$) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1263 my($FirstParameter, $SecondParameter) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1264 my($This, $FileName, $Status);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1265
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1266 if ((@_ == 2) && (_IsFingerprintsTextFileIO($FirstParameter))) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1267 ($This, $FileName) = ($FirstParameter, $SecondParameter);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1268 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1269 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1270 $FileName = $FirstParameter;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1271 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1272
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1273 # Check file extension...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1274 $Status = FileUtil::CheckFileType($FileName, "csv tsv");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1275
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1276 return $Status;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1277 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1278
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1279 # Is it a FingerprintsTextFileIO object?
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1280 sub _IsFingerprintsTextFileIO {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1281 my($Object) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1282
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1283 return (Scalar::Util::blessed($Object) && $Object->isa($ClassName)) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1284 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1285
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1286 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1287
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1288 __END__
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1289
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1290 =head1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1291
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1292 FingerprintsTextFileIO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1293
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1294 =head1 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1295
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1296 use FileIO::FingerprintsTextFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1297
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1298 use FileIO::FingerprintsTextFileIO qw(:all);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1299
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1300 =head1 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1301
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1302 B<FingerprintsTextFileIO> class provides the following methods:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1303
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1304 new, GetDataColLabels, GetDataLineWords, GetFingerprints, GetFingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1305 IsFingerprintsDataValid, IsFingerprintsFileDataValid, IsFingerprintsTextFile,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1306 Next, Read, SetBitStringFormat, SetBitsOrder, SetColMode, SetDataColLabels,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1307 SetDataLineWords, SetDetailLevel, SetFingerprints, SetFingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1308 SetFingerprintsStringMode, SetInDelim, SetOutDelim, SetVectorStringFormat,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1309 WriteFingerprints, WriteFingerprintsString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1310
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1311 The following methods can also be used as functions:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1312
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1313 IsFingerprintsTextFile
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1314
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1315 B<FingerprintsTextFileIO> class is derived from I<FileIO> class and uses its methods to support
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1316 generic file related functionality.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1317
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1318 The fingerprints CSV/TSV text file format with B<.csv> or B<.tsv> file extensions supports two
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1319 types of fingerprints string data: fingerprints bit-vectors and fingerprints vector strings. The
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1320 fingerprints string data is treated as column value in a text file.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1321
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1322 Example of text file format containing fingerprints string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1323
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1324 "CompoundID","PathLengthFingerprints"
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1325 "Cmpd1","FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1326 :MinLength1:MaxLength8;1024;HexadecimalString;Ascending;9c8460989ec8a4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1327 9913991a6603130b0a19e8051c89184414953800cc2151082844a20104280013086030
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1328 8e8204d402800831048940e44281c00060449a5000ac80c894114e006321264401..."
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1329 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1330 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1331
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1332 The current release of MayaChemTools supports the following types of fingerprint
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1333 bit-vector and vector strings:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1334
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1335 FingerprintsVector;AtomNeighborhoods:AtomicInvariantsAtomTypes:MinRadi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1336 us0:MaxRadius2;41;AlphaNumericalValues;ValuesString;NR0-C.X1.BO1.H3-AT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1337 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
1338 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
1339 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
1340 -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
1341
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1342 FingerprintsVector;AtomTypesCount:AtomicInvariantsAtomTypes:ArbitraryS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1343 ize;10;NumericalValues;IDsAndValuesString;C.X1.BO1.H3 C.X2.BO2.H2 C.X2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1344 .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
1345 O.X1.BO2;2 4 14 3 10 1 1 1 3 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1346
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1347 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:ArbitrarySize;16;Nume
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1348 ricalValues;IDsAndValuesString;C1 C10 C11 C14 C18 C20 C21 C22 C5 CS F
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1349 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
1350
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1351 FingerprintsVector;AtomTypesCount:SLogPAtomTypes:FixedSize;67;OrderedN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1352 umericalValues;IDsAndValuesString;C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1353 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
1354 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
1355 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
1356 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
1357
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1358 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1359 AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1360 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
1361 .024 -2.270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1362
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1363 FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1364 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
1365 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
1366 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
1367 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1368
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1369 FingerprintsVector;ExtendedConnectivity:AtomicInvariantsAtomTypes:Radi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1370 us2;60;AlphaNumericalValues;ValuesString;73555770 333564680 352413391
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1371 666191900 1001270906 1371674323 1481469939 1977749791 2006158649 21414
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1372 08799 49532520 64643108 79385615 96062769 273726379 564565671 85514103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1373 5 906706094 988546669 1018231313 1032696425 1197507444 1331250018 1338
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1374 532734 1455473691 1607485225 1609687129 1631614296 1670251330 17303...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1375
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1376 FingerprintsVector;ExtendedConnectivityCount:AtomicInvariantsAtomTypes
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1377 :Radius2;60;NumericalValues;IDsAndValuesString;73555770 333564680 3524
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1378 13391 666191900 1001270906 1371674323 1481469939 1977749791 2006158649
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1379 2141408799 49532520 64643108 79385615 96062769 273726379 564565671...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1380 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
1381 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
1382
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1383 FingerprintsBitVector;ExtendedConnectivityBits:AtomicInvariantsAtomTyp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1384 es:Radius2;1024;BinaryString;Ascending;0000000000000000000000000000100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1385 0000000001010000000110000011000000000000100000000000000000000000100001
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1386 1000000110000000000000000000000000010011000000000000000000000000010000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1387 0000000000000000000000000010000000000000000001000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1388 0000000000010000100001000000000000101000000000000000100000000000000...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1389
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1390 FingerprintsVector;ExtendedConnectivity:FunctionalClassAtomTypes:Radiu
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1391 s2;57;AlphaNumericalValues;ValuesString;24769214 508787397 850393286 8
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1392 62102353 981185303 1231636850 1649386610 1941540674 263599683 32920567
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1393 1 571109041 639579325 683993318 723853089 810600886 885767127 90326012
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1394 7 958841485 981022393 1126908698 1152248391 1317567065 1421489994 1455
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1395 632544 1557272891 1826413669 1983319256 2015750777 2029559552 20404...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1396
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1397 FingerprintsVector;ExtendedConnectivity:EStateAtomTypes:Radius2;62;Alp
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1398 haNumericalValues;ValuesString;25189973 528584866 662581668 671034184
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1399 926543080 1347067490 1738510057 1759600920 2034425745 2097234755 21450
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1400 44754 96779665 180364292 341712110 345278822 386540408 387387308 50430
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1401 1706 617094135 771528807 957666640 997798220 1158349170 1291258082 134
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1402 1138533 1395329837 1420277211 1479584608 1486476397 1487556246 1566...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1403
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1404 FingerprintsBitVector;MACCSKeyBits;166;BinaryString;Ascending;00000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1405 0000000000000000000000000000000001001000010010000000010010000000011100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1406 0100101010111100011011000100110110000011011110100110111111111111011111
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1407 11111111111110111000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1408
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1409 FingerprintsBitVector;MACCSKeyBits;322;BinaryString;Ascending;11101011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1410 1110011111100101111111000111101100110000000000000011100010000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1411 0000000000000000000000000000000000000000000000101000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1412 0000000000000000000000000000000000000000000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1413 0000000000000000000000000000000000000011000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1414 0000000000000000000000000000000000000000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1415
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1416 FingerprintsVector;MACCSKeyCount;166;OrderedNumericalValues;ValuesStri
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1417 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
1418 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
1419 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
1420 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
1421 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
1422
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1423 FingerprintsVector;MACCSKeyCount;322;OrderedNumericalValues;ValuesStri
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1424 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
1425 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
1426 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
1427 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
1428 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
1429
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1430 FingerprintsBitVector;PathLengthBits:AtomicInvariantsAtomTypes:MinLeng
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1431 th1:MaxLength8;1024;BinaryString;Ascending;001000010011010101011000110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1432 0100010101011000101001011100110001000010001001101000001001001001001000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1433 0010110100000111001001000001001010100100100000000011000000101001011100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1434 0010000001000101010100000100111100110111011011011000000010110111001101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1435 0101100011000000010001000011000010100011101100001000001000100000000...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1436
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1437 FingerprintsVector;PathLengthCount:AtomicInvariantsAtomTypes:MinLength
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1438 1:MaxLength8;432;NumericalValues;IDsAndValuesPairsString;C.X1.BO1.H3 2
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1439 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
1440 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
1441 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
1442 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
1443
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1444 FingerprintsVector;PathLengthCount:MMFF94AtomTypes:MinLength1:MaxLengt
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1445 h8;463;NumericalValues;IDsAndValuesPairsString;C5A 2 C5B 2 C=ON 1 CB 1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1446 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
1447 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
1448 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
1449 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
1450
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1451 FingerprintsVector;TopologicalAtomPairs:AtomicInvariantsAtomTypes:MinD
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1452 istance1:MaxDistance10;223;NumericalValues;IDsAndValuesString;C.X1.BO1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1453 .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
1454 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
1455 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
1456 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
1457
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1458 FingerprintsVector;TopologicalAtomPairs:FunctionalClassAtomTypes:MinDi
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1459 stance1:MaxDistance10;144;NumericalValues;IDsAndValuesString;Ar-D1-Ar
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1460 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
1461 BA-D1-None HBA.HBD-D1-NI HBA.HBD-D1-None HBD-D1-None NI-D1-None No...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1462 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
1463 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
1464
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1465 FingerprintsVector;TopologicalAtomTorsions:AtomicInvariantsAtomTypes;3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1466 3;NumericalValues;IDsAndValuesString;C.X1.BO1.H3-C.X3.BO3.H1-C.X3.BO4-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1467 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
1468 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
1469 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
1470
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1471 FingerprintsVector;TopologicalAtomTorsions:EStateAtomTypes;36;Numerica
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1472 lValues;IDsAndValuesString;aaCH-aaCH-aaCH-aaCH aaCH-aaCH-aaCH-aasC aaC
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1473 H-aaCH-aasC-aaCH aaCH-aaCH-aasC-aasC aaCH-aaCH-aasC-sF aaCH-aaCH-aasC-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1474 ssNH aaCH-aasC-aasC-aasC aaCH-aasC-aasC-aasN aaCH-aasC-ssNH-dssC a...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1475 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
1476
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1477 FingerprintsVector;TopologicalAtomTriplets:AtomicInvariantsAtomTypes:M
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1478 inDistance1:MaxDistance10;3096;NumericalValues;IDsAndValuesString;C.X1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1479 .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
1480 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
1481 -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
1482 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
1483 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
1484
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1485 FingerprintsVector;TopologicalAtomTriplets:SYBYLAtomTypes:MinDistance1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1486 :MaxDistance10;2332;NumericalValues;IDsAndValuesString;C.2-D1-C.2-D9-C
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1487 .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
1488 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
1489 -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
1490 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
1491
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1492 FingerprintsVector;TopologicalPharmacophoreAtomPairs:ArbitrarySize:Min
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1493 Distance1:MaxDistance10;54;NumericalValues;IDsAndValuesString;H-D1-H H
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1494 -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
1495 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
1496 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
1497 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
1498 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
1499
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1500 FingerprintsVector;TopologicalPharmacophoreAtomPairs:FixedSize:MinDist
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1501 ance1:MaxDistance10;150;OrderedNumericalValues;ValuesString;18 0 0 1 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1502 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
1503 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
1504 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
1505 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
1506
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1507 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:ArbitrarySize:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1508 MinDistance1:MaxDistance10;696;NumericalValues;IDsAndValuesString;Ar1-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1509 Ar1-Ar1 Ar1-Ar1-H1 Ar1-Ar1-HBA1 Ar1-Ar1-HBD1 Ar1-H1-H1 Ar1-H1-HBA1 Ar1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1510 -H1-HBD1 Ar1-HBA1-HBD1 H1-H1-H1 H1-H1-HBA1 H1-H1-HBD1 H1-HBA1-HBA1 H1-
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1511 HBA1-HBD1 H1-HBA1-NI1 H1-HBD1-NI1 HBA1-HBA1-NI1 HBA1-HBD1-NI1 Ar1-...;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1512 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
1513 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
1514 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
1515
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1516 FingerprintsVector;TopologicalPharmacophoreAtomTriplets:FixedSize:MinD
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1517 istance1:MaxDistance10;2692;OrderedNumericalValues;ValuesString;46 106
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1518 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
1519 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
1520 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
1521 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
1522
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1523
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1524 =head2 METHODS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1525
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1526 =over 4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1527
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1528 =item B<new>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1529
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1530 $NewFingerprintsTextFileIO = new FileIO::FingerprintsTextFileIO(%IOParameters);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1531
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1532 Using specified I<IOParameters> names and values hash, B<new> method creates a new
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1533 object and returns a reference to a newly created B<FingerprintsTextFileIO> object. By default,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1534 the following properties are initialized during I<Read> mode:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1535
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1536 Name = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1537 Mode = 'Read';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1538 Status = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1539 FingerprintsStringMode = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1540 FingerprintsCol = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1541 ColMode = 'ColNum';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1542 CompoundIDCol = 'AutoDetect';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1543 CompoundIDPrefix = 'Cmpd';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1544 InDelim = 'Comma';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1545 ValidateData = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1546 DetailLevel = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1547
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1548 During I<Write> mode, the following properties get initialize by default:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1549
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1550 FingerprintsStringMode = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1551
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1552 BitStringFormat = HexadecimalString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1553 BitsOrder = Ascending;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1554
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1555 VectorStringFormat = NumericalValuesString or ValuesString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1556 OutDelim = 'Comma';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1557 OutQuote = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1558
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1559 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1560
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1561 $NewFingerprintsTextFileIO = new FileIO::FingerprintsTextFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1562 'Name' => 'Sample.csv',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1563 'Mode' => 'Read');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1564
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1565 $NewFingerprintsTextFileIO = new FileIO::FingerprintsTextFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1566 'Name' => 'Sample.csv',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1567 'Mode' => 'Read',;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1568 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1569 'AutoDetect',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1570 'ColMode' => 'ColLabel',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1571 'FingerprintsCol' => 'Fingerprints',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1572 'CompoundIDCol' => 'CompoundID',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1573 'InDelim' => 'Comma');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1574
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1575 $NewFingerprintsTextFileIO = new FileIO::FingerprintsTextFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1576 'Name' => 'Sample.csv',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1577 'Mode' => 'Write',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1578 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1579 'FingerprintsBitVectorString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1580 'Overwrite' => 1,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1581 'BitStringFormat' => 'HexadecimalString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1582 'BitsOrder' => 'Ascending');
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1583
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1584 $NewFingerprintsTextFileIO = new FileIO::FingerprintsTextFileIO(
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1585 'Name' => 'Sample.tsv',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1586 'Mode' => 'Write',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1587 'FingerprintsStringMode' =>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1588 'FingerprintsVectorString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1589 'Overwrite' => 1,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1590 'VectorStringFormat' => 'IDsAndValuesString',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1591 'OutDelim' => 'Tab',
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1592 'OutQuote' => 0);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1593
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1594 =item B<GetDataColLabels>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1595
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1596 @ColLabels = $FingerprintsTextFileIO->GetDataColLabels();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1597 $NumOfColLabels = $FingerprintsTextFileIO->GetDataColLabels();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1598
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1599 Returns an array of B<ColLabels> from first line in text file. In scalar context, it returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1600 number of column labels.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1601
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1602 =item B<GetDataLineWords>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1603
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1604 @DataWords = $FingerprintsTextFileIO->GetDataLineWords();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1605 $NumOfDataWords = $FingerprintsTextFileIO->GetDataLineWords();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1606
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1607 Returns an array of B<DataWords> in current data line. In scalar context, it returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1608 number of data words.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1609
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1610 =item B<GetFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1611
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1612 $FingerprintsObject = $FingerprintsTextFileIO->GetFingerprints();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1613
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1614 Returns B<FingerprintsObject> generated for current data line using fingerprints bit-vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1615 or vector string data. The fingerprints object corresponds to any of the supported fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1616 such as PathLengthFingerprints, ExtendedConnectivity, and so on.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1617
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1618 =item B<GetFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1619
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1620 $FingerprintsString = $FingerprintsTextFileIO->GetFingerprintsString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1621
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1622 Returns B<FingerprintsString> for current data line.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1623
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1624 =item B<IsFingerprintsDataValid>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1625
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1626 $Status = $FingerprintsTextFileIO->IsFingerprintsDataValid();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1627
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1628 Returns 1 or 0 based on whether B<FingerprintsObject> is valid.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1629
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1630 =item B<IsFingerprintsFileDataValid>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1631
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1632 $Status = $FingerprintsTextFileIO->IsFingerprintsFileDataValid();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1633
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1634 Returns 1 or 0 based on whether text file contains valid fingerprints data.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1635
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1636 =item B<IsFingerprintsTextFile>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1637
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1638 $Status = $FingerprintsTextFileIO->IsFingerprintsTextFile($FileName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1639 $Status = FileIO::FingerprintsTextFileIO::IsFingerprintsTextFile($FileName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1640
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1641 Returns 1 or 0 based on whether I<FileName> is a fingerprints text file.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1642
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1643 =item B<Next or Read>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1644
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1645 $FingerprintsTextFileIO = $FingerprintsTextFileIO->Next();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1646 $FingerprintsTextFileIO = $FingerprintsTextFileIO->Read();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1647
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1648 Reads next available fingerprints line in text file, processes the data, generates appropriate
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1649 fingerprints object, and returns B<FingerprintsTextFileIO>. The generated fingerprints object
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1650 is available using method B<GetFingerprints>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1651
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1652 =item B<SetBitStringFormat>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1653
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1654 $FingerprintsTextFileIO->SetBitStringFormat($Format);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1655
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1656 Sets bit string I<Format> for fingerprints bit-vector string data in a text file and returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1657 B<FingerprintsTextFileIO>. Possible values for B<BitStringFormat>: I<BinaryString or HexadecimalString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1658
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1659 =item B<SetBitsOrder>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1660
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1661 $FingerprintsTextFileIO->SetBitsOrder($BitsOrder);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1662
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1663 Sets I<BitsOrder> for fingerprints bit-vector string data in a text file and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1664 Possible values for B<BitsOrder>: I<Ascending or Descending>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1665
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1666 =item B<SetColMode>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1667
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1668 $FingerprintsTextFileIO->SetColMode($ColMode);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1669
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1670 Sets I<ColMode> for a text file and returns B<FingerprintsTextFileIO>. Possible values for B<ColMode>:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1671 I<ColNum or ColLabel>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1672
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1673 =item B<SetDataColLabels>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1674
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1675 $FingerprintsTextFileIO->SetDataColLabels(@ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1676 $FingerprintsTextFileIO->SetDataColLabels(\@ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1677
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1678 Sets I<ColLabels> for a text file using an array or a reference to an array containing column labels
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1679 and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1680
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1681 =item B<SetDataLineWords>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1682
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1683 $FingerprintsTextFileIO->SetDataLineWords(@LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1684 $FingerprintsTextFileIO->SetDataLineWords(\@LineWords);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1685
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1686 Sets I<DataLineWords> for a text file using an array or a reference to an array containing data words
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1687 and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1688
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1689 =item B<SetDetailLevel>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1690
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1691 $FingerprintsTextFileIO->SetDetailLevel($Level);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1692
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1693 Sets details I<Level> for generating diagnostics messages during text file processing and returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1694 B<FingerprintsTextFileIO>. Possible values: I<Positive integers>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1695
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1696 =item B<SetFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1697
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1698 $FingerprintsTextFileIO->SetFingerprints($FingerprintsObject);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1699
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1700 Sets I<FingerprintsObject> for current data line and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1701
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1702 =item B<SetFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1703
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1704 $FingerprintsTextFileIO->SetFingerprintsString($FingerprintsString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1705
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1706 Sets I<FingerprintsString> for current data line and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1707
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1708 =item B<SetFingerprintsStringMode>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1709
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1710 $FingerprintsTextFileIO->SetFingerprintsStringMode($Mode);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1711
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1712 Sets I<FingerprintsStringMode> for text file and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1713 Possible values: I<AutoDetect, FingerprintsBitVectorString, or FingerprintsVectorString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1714
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1715 =item B<SetInDelim>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1716
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1717 $FingerprintsTextFileIO->SetInDelim($InDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1718
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1719 Sets I<InDelim> for text file and returns B<FingerprintsTextFileIO>. Possible values: I<comma,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1720 semicolon, tab>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1721
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1722 =item B<SetOutDelim>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1723
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1724 $FingerprintsTextFileIO->SetOutDelim($OutDelim);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1725
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1726 Sets I<OutDelim> for text file and returns B<FingerprintsTextFileIO>. Possible values: I<comma,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1727 semicolon, tab>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1728
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1729 =item B<SetVectorStringFormat>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1730
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1731 $FingerprintsTextFileIO->SetVectorStringFormat($Format);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1732
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1733 Sets I<VectorStringFormat> for text file and returns B<FingerprintsTextFileIO>. Possible values:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1734 I<IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1735
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1736 =item B<WriteFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1737
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1738 $FingerprintsTextFileIO->WriteFingerprints($FingerprintsObject,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1739 @DataColValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1740
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1741 Writes fingerprints string generated from I<FingerprintsObject> object and other data including
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1742 I<DataColValues> to text file and returns B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1743
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1744 =item B<WriteFingerprintsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1745
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1746 $FingerprintsSDFileIO->WriteFingerprints($FingerprintsString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1747 @DataColValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1748
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1749 Writes I<FingerprintsString> and other data including I<DataColValues> to text file and returns
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1750 B<FingerprintsTextFileIO>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1751
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1752 Caveats:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1753
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1754 o FingerprintsStringMode, BitStringFormat, BitsOrder, VectorStringFormat
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1755 values are ignored during writing of fingerprints and it's written to the file
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1756 as it is.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1757
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1758 =back
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1759
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1760 =head1 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1761
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1762 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1763
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1764 =head1 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1765
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1766 FingerprintsSDFileIO.pm, FingerprintsFPFileIO.pm
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1767
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1768 =head1 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1769
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1770 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1771
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1772 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1773
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1774 MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1775 the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1776 Software Foundation; either version 3 of the License, or (at your option)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1777 any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1778
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1779 =cut