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