annotate bin/EStateIndiciesFingerprints.pl @ 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 #!/usr/bin/perl -w
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
2 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: EStateIndiciesFingerprints.pl,v $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:46:19 $
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.23 $
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 FindBin; use lib "$FindBin::Bin/../lib";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
31 use Getopt::Long;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
32 use File::Basename;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
33 use Text::ParseWords;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
34 use Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
35 use FileUtil;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
36 use TextUtil;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
37 use SDFileUtil;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
38 use MoleculeFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
39 use FileIO::FingerprintsSDFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
40 use FileIO::FingerprintsTextFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
41 use FileIO::FingerprintsFPFileIO;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
42 use AtomTypes::EStateAtomTypes;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
43 use Fingerprints::EStateIndiciesFingerprints;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
44
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
45 my($ScriptName, %Options, $StartTime, $EndTime, $TotalTime);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
46
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
47 # Autoflush STDOUT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
48 $| = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
49
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
50 # Starting message...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
51 $ScriptName = basename($0);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
52 print "\n$ScriptName: Starting...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
53 $StartTime = new Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
54
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
55 # Get the options and setup script...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
56 SetupScriptUsage();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
57 if ($Options{help} || @ARGV < 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
58 die GetUsageFromPod("$FindBin::Bin/$ScriptName");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
59 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
60
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
61 my(@SDFilesList);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
62 @SDFilesList = ExpandFileNames(\@ARGV, "sdf sd");
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
63
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
64 # Process options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
65 print "Processing options...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
66 my(%OptionsInfo);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
67 ProcessOptions();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
68
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
69 # Setup information about input files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
70 print "Checking input SD file(s)...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
71 my(%SDFilesInfo);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
72 RetrieveSDFilesInfo();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
73
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
74 # Process input files..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
75 my($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
76 if (@SDFilesList > 1) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
77 print "\nProcessing SD files...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
78 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
79 for $FileIndex (0 .. $#SDFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
80 if ($SDFilesInfo{FileOkay}[$FileIndex]) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
81 print "\nProcessing file $SDFilesList[$FileIndex]...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
82 GenerateEStateIndiciesFingerprints($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
83 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
84 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
85 print "\n$ScriptName:Done...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
86
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
87 $EndTime = new Benchmark;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
88 $TotalTime = timediff ($EndTime, $StartTime);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
89 print "Total time: ", timestr($TotalTime), "\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
90
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
91 ###############################################################################
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
92
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
93 # Generate fingerprints for a SD file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
94 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
95 sub GenerateEStateIndiciesFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
96 my($FileIndex) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
97 my($CmpdCount, $IgnoredCmpdCount, $SDFile, $MoleculeFileIO, $Molecule, $EStateIndiciesFingerprints, $NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
98
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
99 $SDFile = $SDFilesList[$FileIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
100
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
101 # Setup output files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
102 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
103 ($NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO) = SetupAndOpenOutputFiles($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
104
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
105 $MoleculeFileIO = new MoleculeFileIO('Name' => $SDFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
106 $MoleculeFileIO->Open();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
107
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
108 $CmpdCount = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
109 $IgnoredCmpdCount = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
110
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
111 COMPOUND: while ($Molecule = $MoleculeFileIO->ReadMolecule()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
112 $CmpdCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
113
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
114 # Filter compound data before calculating fingerprints...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
115 if ($OptionsInfo{Filter}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
116 if (CheckAndFilterCompound($CmpdCount, $Molecule)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
117 $IgnoredCmpdCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
118 next COMPOUND;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
119 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
120 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
121
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
122 $EStateIndiciesFingerprints = GenerateMoleculeFingerprints($Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
123 if (!$EStateIndiciesFingerprints) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
124 $IgnoredCmpdCount++;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
125 ProcessIgnoredCompound('FingerprintsGenerationFailed', $CmpdCount, $Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
126 next COMPOUND;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
127 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
128
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
129 WriteDataToOutputFiles($FileIndex, $CmpdCount, $Molecule, $EStateIndiciesFingerprints, $NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
130 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
131 $MoleculeFileIO->Close();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
132
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
133 if ($NewFPSDFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
134 $NewFPSDFileIO->Close();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
135 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
136 if ($NewFPTextFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
137 $NewFPTextFileIO->Close();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
138 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
139 if ($NewFPFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
140 $NewFPFileIO->Close();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
141 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
142
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
143 WriteFingerprintsGenerationSummaryStatistics($CmpdCount, $IgnoredCmpdCount);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
144 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
145
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
146 # Process compound being ignored due to problems in fingerprints geneation...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
147 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
148 sub ProcessIgnoredCompound {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
149 my($Mode, $CmpdCount, $Molecule) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
150 my($CmpdID, $DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
151
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
152 $DataFieldLabelAndValuesRef = $Molecule->GetDataFieldLabelAndValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
153 $CmpdID = SetupCmpdIDForOutputFiles($CmpdCount, $Molecule, $DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
154
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
155 MODE: {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
156 if ($Mode =~ /^ContainsNonElementalData$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
157 warn "\nWarning: Ignoring compound record number $CmpdCount with ID $CmpdID: Compound contains atom data corresponding to non-elemental atom symbol(s)...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
158 next MODE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
159 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
160
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
161 if ($Mode =~ /^ContainsNoElementalData$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
162 warn "\nWarning: Ignoring compound record number $CmpdCount with ID $CmpdID: Compound contains no atom data...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
163 next MODE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
164 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
165
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
166 if ($Mode =~ /^FingerprintsGenerationFailed$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
167 warn "\nWarning: Ignoring compound record number $CmpdCount with ID $CmpdID: Fingerprints generation didn't succeed...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
168 next MODE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
169 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
170 warn "\nWarning: Ignoring compound record number $CmpdCount with ID $CmpdID: Fingerprints generation didn't succeed...\n\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
171 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
172 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
173
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
174 # Check and filter compounds....
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
175 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
176 sub CheckAndFilterCompound {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
177 my($CmpdCount, $Molecule) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
178 my($ElementCount, $NonElementCount);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
179
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
180 ($ElementCount, $NonElementCount) = $Molecule->GetNumOfElementsAndNonElements();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
181
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
182 if ($NonElementCount) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
183 ProcessIgnoredCompound('ContainsNonElementalData', $CmpdCount, $Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
184 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
185 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
186
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
187 if (!$ElementCount) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
188 ProcessIgnoredCompound('ContainsNoElementalData', $CmpdCount, $Molecule);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
189 return 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
190 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
191
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
192 return 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
193 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
194
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
195 # Write out compounds fingerprints generation summary statistics...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
196 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
197 sub WriteFingerprintsGenerationSummaryStatistics {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
198 my($CmpdCount, $IgnoredCmpdCount) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
199 my($ProcessedCmpdCount);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
200
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
201 $ProcessedCmpdCount = $CmpdCount - $IgnoredCmpdCount;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
202
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
203 print "\nNumber of compounds: $CmpdCount\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
204 print "Number of compounds processed successfully during fingerprints generation: $ProcessedCmpdCount\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
205 print "Number of compounds ignored during fingerprints generation: $IgnoredCmpdCount\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
206 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
207
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
208 # Open output files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
209 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
210 sub SetupAndOpenOutputFiles {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
211 my($FileIndex) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
212 my($NewFPSDFile, $NewFPFile, $NewFPTextFile, $NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO, %FingerprintsFileIOParams);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
213
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
214 ($NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO) = (undef) x 3;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
215
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
216 # Setup common parameters for fingerprints file IO objects...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
217 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
218 %FingerprintsFileIOParams = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
219 %FingerprintsFileIOParams = ('Mode' => 'Write', 'Overwrite' => $OptionsInfo{OverwriteFiles}, 'FingerprintsStringMode' => 'FingerprintsVectorString', 'VectorStringFormat' => $OptionsInfo{VectorStringFormat});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
220
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
221 if ($OptionsInfo{SDOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
222 $NewFPSDFile = $SDFilesInfo{SDOutFileNames}[$FileIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
223 print "Generating SD file $NewFPSDFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
224 $NewFPSDFileIO = new FileIO::FingerprintsSDFileIO('Name' => $NewFPSDFile, %FingerprintsFileIOParams, 'FingerprintsFieldLabel' => $OptionsInfo{FingerprintsLabel});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
225 $NewFPSDFileIO->Open();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
226 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
227
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
228 if ($OptionsInfo{FPOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
229 $NewFPFile = $SDFilesInfo{FPOutFileNames}[$FileIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
230 print "Generating FP file $NewFPFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
231 $NewFPFileIO = new FileIO::FingerprintsFPFileIO('Name' => $NewFPFile, %FingerprintsFileIOParams);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
232 $NewFPFileIO->Open();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
233 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
234
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
235 if ($OptionsInfo{TextOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
236 my($ColLabelsRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
237
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
238 $NewFPTextFile = $SDFilesInfo{TextOutFileNames}[$FileIndex];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
239 $ColLabelsRef = SetupFPTextFileCoulmnLabels($FileIndex);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
240
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
241 print "Generating text file $NewFPTextFile...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
242 $NewFPTextFileIO = new FileIO::FingerprintsTextFileIO('Name' => $NewFPTextFile, %FingerprintsFileIOParams, 'DataColLabels' => $ColLabelsRef, 'OutDelim' => $OptionsInfo{OutDelim}, 'OutQuote' => $OptionsInfo{OutQuote});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
243 $NewFPTextFileIO->Open();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
244 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
245
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
246 return ($NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
247 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
248
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
249 # Write fingerpritns and other data to appropriate output files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
250 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
251 sub WriteDataToOutputFiles {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
252 my($FileIndex, $CmpdCount, $Molecule, $EStateIndiciesFingerprints, $NewFPSDFileIO, $NewFPTextFileIO, $NewFPFileIO) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
253 my($DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
254
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
255 $DataFieldLabelAndValuesRef = undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
256 if ($NewFPTextFileIO || $NewFPFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
257 $DataFieldLabelAndValuesRef = $Molecule->GetDataFieldLabelAndValues();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
258 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
259
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
260 if ($NewFPSDFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
261 my($CmpdString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
262
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
263 $CmpdString = $Molecule->GetInputMoleculeString();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
264 $NewFPSDFileIO->WriteFingerprints($EStateIndiciesFingerprints, $CmpdString);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
265 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
266
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
267 if ($NewFPTextFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
268 my($ColValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
269
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
270 $ColValuesRef = SetupFPTextFileCoulmnValues($FileIndex, $CmpdCount, $Molecule, $DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
271 $NewFPTextFileIO->WriteFingerprints($EStateIndiciesFingerprints, $ColValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
272 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
273
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
274 if ($NewFPFileIO) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
275 my($CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
276
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
277 $CompoundID = SetupCmpdIDForOutputFiles($CmpdCount, $Molecule, $DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
278 $NewFPFileIO->WriteFingerprints($EStateIndiciesFingerprints, $CompoundID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
279 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
280
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
281 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
282
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
283 # Generate approriate column labels for FPText output file...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
284 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
285 sub SetupFPTextFileCoulmnLabels {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
286 my($FileIndex) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
287 my($Line, @ColLabels);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
288
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
289 @ColLabels = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
290 if ($OptionsInfo{DataFieldsMode} =~ /^All$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
291 push @ColLabels, @{$SDFilesInfo{AllDataFieldsRef}[$FileIndex]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
292 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
293 elsif ($OptionsInfo{DataFieldsMode} =~ /^Common$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
294 push @ColLabels, @{$SDFilesInfo{CommonDataFieldsRef}[$FileIndex]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
295 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
296 elsif ($OptionsInfo{DataFieldsMode} =~ /^Specify$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
297 push @ColLabels, @{$OptionsInfo{SpecifiedDataFields}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
298 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
299 elsif ($OptionsInfo{DataFieldsMode} =~ /^CompoundID$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
300 push @ColLabels, $OptionsInfo{CompoundIDLabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
301 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
302 # Add fingerprints label...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
303 push @ColLabels, $OptionsInfo{FingerprintsLabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
304
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
305 return \@ColLabels;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
306 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
307
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
308 # Generate column values FPText output file..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
309 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
310 sub SetupFPTextFileCoulmnValues {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
311 my($FileIndex, $CmpdCount, $Molecule, $DataFieldLabelAndValuesRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
312 my(@ColValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
313
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
314 @ColValues = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
315 if ($OptionsInfo{DataFieldsMode} =~ /^CompoundID$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
316 push @ColValues, SetupCmpdIDForOutputFiles($CmpdCount, $Molecule, $DataFieldLabelAndValuesRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
317 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
318 elsif ($OptionsInfo{DataFieldsMode} =~ /^All$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
319 @ColValues = map { exists $DataFieldLabelAndValuesRef->{$_} ? $DataFieldLabelAndValuesRef->{$_} : ''} @{$SDFilesInfo{AllDataFieldsRef}[$FileIndex]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
320 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
321 elsif ($OptionsInfo{DataFieldsMode} =~ /^Common$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
322 @ColValues = map { exists $DataFieldLabelAndValuesRef->{$_} ? $DataFieldLabelAndValuesRef->{$_} : ''} @{$SDFilesInfo{CommonDataFieldsRef}[$FileIndex]};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
323 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
324 elsif ($OptionsInfo{DataFieldsMode} =~ /^Specify$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
325 @ColValues = map { exists $DataFieldLabelAndValuesRef->{$_} ? $DataFieldLabelAndValuesRef->{$_} : ''} @{$OptionsInfo{SpecifiedDataFields}};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
326 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
327
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
328 return \@ColValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
329 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
330
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
331 # Generate compound ID for FP and FPText output files..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
332 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
333 sub SetupCmpdIDForOutputFiles {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
334 my($CmpdCount, $Molecule, $DataFieldLabelAndValuesRef) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
335 my($CmpdID);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
336
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
337 $CmpdID = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
338 if ($OptionsInfo{CompoundIDMode} =~ /^MolNameOrLabelPrefix$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
339 my($MolName);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
340 $MolName = $Molecule->GetName();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
341 $CmpdID = $MolName ? $MolName : "$OptionsInfo{CompoundID}${CmpdCount}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
342 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
343 elsif ($OptionsInfo{CompoundIDMode} =~ /^LabelPrefix$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
344 $CmpdID = "$OptionsInfo{CompoundID}${CmpdCount}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
345 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
346 elsif ($OptionsInfo{CompoundIDMode} =~ /^DataField$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
347 my($SpecifiedDataField);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
348 $SpecifiedDataField = $OptionsInfo{CompoundID};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
349 $CmpdID = exists $DataFieldLabelAndValuesRef->{$SpecifiedDataField} ? $DataFieldLabelAndValuesRef->{$SpecifiedDataField} : '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
350 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
351 elsif ($OptionsInfo{CompoundIDMode} =~ /^MolName$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
352 $CmpdID = $Molecule->GetName();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
353 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
354 return $CmpdID;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
355 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
356
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
357 # Generate fingerprints for molecule...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
358 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
359 sub GenerateMoleculeFingerprints {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
360 my($Molecule) = @_;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
361 my($EStateIndiciesFingerprints);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
362
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
363 if ($OptionsInfo{KeepLargestComponent}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
364 $Molecule->KeepLargestComponent();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
365 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
366 if (!$Molecule->DetectRings()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
367 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
368 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
369 $Molecule->SetAromaticityModel($OptionsInfo{AromaticityModel});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
370 $Molecule->DetectAromaticity();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
371
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
372 $EStateIndiciesFingerprints = new Fingerprints::EStateIndiciesFingerprints('Molecule' => $Molecule, 'EStateAtomTypesSetToUse' => $OptionsInfo{EStateAtomTypesSetToUse}, 'ValuesPrecision' => $OptionsInfo{ValuesPrecision});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
373
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
374 # Generate E-state indicies fingerprints...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
375 $EStateIndiciesFingerprints->GenerateFingerprints();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
376
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
377 # Make sure E-state indicies fingerprints generation is successful...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
378 if (!$EStateIndiciesFingerprints->IsFingerprintsGenerationSuccessful()) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
379 return undef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
380 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
381
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
382 return $EStateIndiciesFingerprints;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
383 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
384
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
385 # Retrieve information about SD files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
386 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
387 sub RetrieveSDFilesInfo {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
388 my($SDFile, $Index, $FileDir, $FileExt, $FileName, $OutFileRoot, $TextOutFileExt, $SDOutFileExt, $FPOutFileExt, $NewSDFileName, $NewFPFileName, $NewTextFileName, $CheckDataField, $CollectDataFields, $AllDataFieldsRef, $CommonDataFieldsRef);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
389
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
390 %SDFilesInfo = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
391 @{$SDFilesInfo{FileOkay}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
392 @{$SDFilesInfo{OutFileRoot}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
393 @{$SDFilesInfo{SDOutFileNames}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
394 @{$SDFilesInfo{FPOutFileNames}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
395 @{$SDFilesInfo{TextOutFileNames}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
396 @{$SDFilesInfo{AllDataFieldsRef}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
397 @{$SDFilesInfo{CommonDataFieldsRef}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
398
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
399 $CheckDataField = ($OptionsInfo{TextOutput} && ($OptionsInfo{DataFieldsMode} =~ /^CompoundID$/i) && ($OptionsInfo{CompoundIDMode} =~ /^DataField$/i)) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
400 $CollectDataFields = ($OptionsInfo{TextOutput} && ($OptionsInfo{DataFieldsMode} =~ /^(All|Common)$/i)) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
401
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
402 FILELIST: for $Index (0 .. $#SDFilesList) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
403 $SDFile = $SDFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
404
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
405 $SDFilesInfo{FileOkay}[$Index] = 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
406 $SDFilesInfo{OutFileRoot}[$Index] = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
407 $SDFilesInfo{SDOutFileNames}[$Index] = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
408 $SDFilesInfo{FPOutFileNames}[$Index] = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
409 $SDFilesInfo{TextOutFileNames}[$Index] = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
410
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
411 $SDFile = $SDFilesList[$Index];
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
412 if (!(-e $SDFile)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
413 warn "Warning: Ignoring file $SDFile: It doesn't exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
414 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
415 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
416 if (!CheckFileType($SDFile, "sd sdf")) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
417 warn "Warning: Ignoring file $SDFile: It's not a SD file\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
418 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
419 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
420
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
421 if ($CheckDataField) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
422 # Make sure data field exists in SD file..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
423 my($CmpdString, $SpecifiedDataField, @CmpdLines, %DataFieldValues);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
424
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
425 @CmpdLines = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
426 open SDFILE, "$SDFile" or die "Error: Couldn't open $SDFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
427 $CmpdString = ReadCmpdString(\*SDFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
428 close SDFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
429 @CmpdLines = split "\n", $CmpdString;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
430 %DataFieldValues = GetCmpdDataHeaderLabelsAndValues(\@CmpdLines);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
431 $SpecifiedDataField = $OptionsInfo{CompoundID};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
432 if (!exists $DataFieldValues{$SpecifiedDataField}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
433 warn "Warning: Ignoring file $SDFile: Data field value, $SpecifiedDataField, using \"--CompoundID\" option in \"DataField\" \"--CompoundIDMode\" doesn't exist\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
434 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
435 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
436 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
437
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
438 $AllDataFieldsRef = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
439 $CommonDataFieldsRef = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
440 if ($CollectDataFields) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
441 my($CmpdCount);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
442 open SDFILE, "$SDFile" or die "Error: Couldn't open $SDFile: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
443 ($CmpdCount, $AllDataFieldsRef, $CommonDataFieldsRef) = GetAllAndCommonCmpdDataHeaderLabels(\*SDFILE);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
444 close SDFILE;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
445 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
446
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
447 # Setup output file names...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
448 $FileDir = ""; $FileName = ""; $FileExt = "";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
449 ($FileDir, $FileName, $FileExt) = ParseFileName($SDFile);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
450
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
451 $TextOutFileExt = "csv";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
452 if ($Options{outdelim} =~ /^tab$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
453 $TextOutFileExt = "tsv";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
454 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
455 $SDOutFileExt = $FileExt;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
456 $FPOutFileExt = "fpf";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
457
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
458 if ($OptionsInfo{OutFileRoot} && (@SDFilesList == 1)) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
459 my ($RootFileDir, $RootFileName, $RootFileExt) = ParseFileName($OptionsInfo{OutFileRoot});
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
460 if ($RootFileName && $RootFileExt) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
461 $FileName = $RootFileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
462 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
463 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
464 $FileName = $OptionsInfo{OutFileRoot};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
465 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
466 $OutFileRoot = $FileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
467 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
468 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
469 $OutFileRoot = "${FileName}EStateIndiciesFP";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
470 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
471
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
472 $NewSDFileName = "${OutFileRoot}.${SDOutFileExt}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
473 $NewFPFileName = "${OutFileRoot}.${FPOutFileExt}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
474 $NewTextFileName = "${OutFileRoot}.${TextOutFileExt}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
475
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
476 if ($OptionsInfo{SDOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
477 if ($SDFile =~ /$NewSDFileName/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
478 warn "Warning: Ignoring input file $SDFile: Same output, $NewSDFileName, and input file names.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
479 print "Specify a different name using \"-r --root\" option or use default name.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
480 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
481 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
482 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
483
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
484 if (!$OptionsInfo{OverwriteFiles}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
485 # Check SD and text outout files...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
486 if ($OptionsInfo{SDOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
487 if (-e $NewSDFileName) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
488 warn "Warning: Ignoring file $SDFile: The file $NewSDFileName already exists\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
489 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
490 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
491 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
492 if ($OptionsInfo{FPOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
493 if (-e $NewFPFileName) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
494 warn "Warning: Ignoring file $SDFile: The file $NewFPFileName already exists\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
495 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
496 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
497 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
498 if ($OptionsInfo{TextOutput}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
499 if (-e $NewTextFileName) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
500 warn "Warning: Ignoring file $SDFile: The file $NewTextFileName already exists\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
501 next FILELIST;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
502 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
503 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
504 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
505
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
506 $SDFilesInfo{FileOkay}[$Index] = 1;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
507
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
508 $SDFilesInfo{OutFileRoot}[$Index] = $OutFileRoot;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
509 $SDFilesInfo{SDOutFileNames}[$Index] = $NewSDFileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
510 $SDFilesInfo{FPOutFileNames}[$Index] = $NewFPFileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
511 $SDFilesInfo{TextOutFileNames}[$Index] = $NewTextFileName;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
512
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
513 $SDFilesInfo{AllDataFieldsRef}[$Index] = $AllDataFieldsRef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
514 $SDFilesInfo{CommonDataFieldsRef}[$Index] = $CommonDataFieldsRef;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
515 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
516 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
517
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
518 # Process option values...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
519 sub ProcessOptions {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
520 %OptionsInfo = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
521
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
522 $OptionsInfo{AromaticityModel} = $Options{aromaticitymodel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
523
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
524 $OptionsInfo{EStateAtomTypesSetToUse} = $Options{estateatomtypessettouse} ? $Options{estateatomtypessettouse} : 'ArbitrarySize';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
525
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
526 $OptionsInfo{CompoundIDMode} = $Options{compoundidmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
527 $OptionsInfo{CompoundIDLabel} = $Options{compoundidlabel};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
528 $OptionsInfo{DataFieldsMode} = $Options{datafieldsmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
529
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
530 my(@SpecifiedDataFields);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
531 @SpecifiedDataFields = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
532
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
533 @{$OptionsInfo{SpecifiedDataFields}} = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
534 $OptionsInfo{CompoundID} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
535
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
536 if ($Options{datafieldsmode} =~ /^CompoundID$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
537 if ($Options{compoundidmode} =~ /^DataField$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
538 if (!$Options{compoundid}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
539 die "Error: You must specify a value for \"--CompoundID\" option in \"DataField\" \"--CompoundIDMode\". \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
540 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
541 $OptionsInfo{CompoundID} = $Options{compoundid};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
542 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
543 elsif ($Options{compoundidmode} =~ /^(LabelPrefix|MolNameOrLabelPrefix)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
544 $OptionsInfo{CompoundID} = $Options{compoundid} ? $Options{compoundid} : 'Cmpd';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
545 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
546 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
547 elsif ($Options{datafieldsmode} =~ /^Specify$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
548 if (!$Options{datafields}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
549 die "Error: You must specify a value for \"--DataFields\" option in \"Specify\" \"-d, --DataFieldsMode\". \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
550 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
551 @SpecifiedDataFields = split /\,/, $Options{datafields};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
552 push @{$OptionsInfo{SpecifiedDataFields}}, @SpecifiedDataFields;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
553 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
554
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
555 $OptionsInfo{FingerprintsLabel} = $Options{fingerprintslabel} ? $Options{fingerprintslabel} : 'EStateIndiciesFingerprints';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
556
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
557 $OptionsInfo{Filter} = ($Options{filter} =~ /^Yes$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
558
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
559 if ($Options{fingerprintslabelmode} =~ /^FingerprintsLabelWithIDs$/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
560 if ($Options{estateatomtypessettouse} =~ /^FixedSize$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
561 # Append E-state atom types for non-hydrogen atoms to the fingerprints label...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
562 my($AtomType, @IDs);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
563 @IDs = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
564 for $AtomType (@{AtomTypes::EStateAtomTypes::GetAllPossibleEStateNonHydrogenAtomTypes()}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
565 push @IDs, "S${AtomType}";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
566 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
567 $OptionsInfo{FingerprintsLabel} .= "; EStateAtomTypes: " . TextUtil::JoinWords(\@IDs, " ", 0);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
568 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
569 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
570 $OptionsInfo{FingerprintsLabelMode} = $Options{fingerprintslabelmode};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
571
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
572 $OptionsInfo{KeepLargestComponent} = ($Options{keeplargestcomponent} =~ /^Yes$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
573
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
574 $OptionsInfo{Output} = $Options{output};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
575 $OptionsInfo{SDOutput} = ($Options{output} =~ /^(SD|All)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
576 $OptionsInfo{FPOutput} = ($Options{output} =~ /^(FP|All)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
577 $OptionsInfo{TextOutput} = ($Options{output} =~ /^(Text|All)$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
578
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
579 $OptionsInfo{OutDelim} = $Options{outdelim};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
580 $OptionsInfo{OutQuote} = ($Options{quote} =~ /^Yes$/i) ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
581
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
582 $OptionsInfo{OverwriteFiles} = $Options{overwrite} ? 1 : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
583 $OptionsInfo{OutFileRoot} = $Options{root} ? $Options{root} : 0;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
584
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
585 # Precision for E-state indicies...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
586 $OptionsInfo{ValuesPrecision} = $Options{valuesprecision};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
587
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
588 # Setup default vector string format...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
589 my($VectorStringFormat);
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
590 $VectorStringFormat = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
591 if ($Options{vectorstringformat}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
592 $VectorStringFormat = $Options{vectorstringformat};
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
593 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
594 else {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
595 $VectorStringFormat = ($Options{estateatomtypessettouse} =~ /^FixedSize$/) ? "ValuesString" : "IDsAndValuesString";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
596 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
597 $OptionsInfo{VectorStringFormat} = $VectorStringFormat;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
598 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
599
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
600 # Setup script usage and retrieve command line arguments specified using various options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
601 sub SetupScriptUsage {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
602
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
603 # Retrieve all the options...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
604 %Options = ();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
605
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
606 $Options{aromaticitymodel} = 'MayaChemToolsAromaticityModel';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
607
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
608 $Options{compoundidmode} = 'LabelPrefix';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
609 $Options{compoundidlabel} = 'CompoundID';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
610 $Options{datafieldsmode} = 'CompoundID';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
611
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
612 $Options{filter} = 'Yes';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
613
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
614 $Options{estateatomtypessettouse} = 'ArbitrarySize';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
615
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
616 $Options{fingerprintslabelmode} = 'FingerprintsLabelOnly';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
617 $Options{keeplargestcomponent} = 'Yes';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
618
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
619 $Options{output} = 'text';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
620 $Options{outdelim} = 'comma';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
621 $Options{quote} = 'yes';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
622
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
623 $Options{valuesprecision} = 3;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
624
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
625 $Options{vectorstringformat} = '';
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
626
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
627 if (!GetOptions(\%Options, "aromaticitymodel=s", "compoundid=s", "compoundidlabel=s", "compoundidmode=s", "datafields=s", "datafieldsmode|d=s", "estateatomtypessettouse|e=s", "filter|f=s", "fingerprintslabelmode=s", "fingerprintslabel=s", "help|h", "keeplargestcomponent|k=s", "outdelim=s", "output=s", "overwrite|o", "quote|q=s", "root|r=s", "valuesprecision=s", "vectorstringformat|v=s", "workingdir|w=s")) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
628 die "\nTo get a list of valid options and their values, use \"$ScriptName -h\" or\n\"perl -S $ScriptName -h\" command and try again...\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
629 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
630 if ($Options{workingdir}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
631 if (! -d $Options{workingdir}) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
632 die "Error: The value specified, $Options{workingdir}, for option \"-w --workingdir\" is not a directory name.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
633 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
634 chdir $Options{workingdir} or die "Error: Couldn't chdir $Options{workingdir}: $! \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
635 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
636 if (!Molecule::IsSupportedAromaticityModel($Options{aromaticitymodel})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
637 my(@SupportedModels) = Molecule::GetSupportedAromaticityModels();
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
638 die "Error: The value specified, $Options{aromaticitymodel}, for option \"--AromaticityModel\" is not valid. Supported aromaticity models in current release of MayaChemTools: @SupportedModels\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
639 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
640 if ($Options{compoundidmode} !~ /^(DataField|MolName|LabelPrefix|MolNameOrLabelPrefix)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
641 die "Error: The value specified, $Options{compoundidmode}, for option \"--CompoundIDMode\" is not valid. Allowed values: DataField, MolName, LabelPrefix or MolNameOrLabelPrefix\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
642 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
643 if ($Options{datafieldsmode} !~ /^(All|Common|Specify|CompoundID)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
644 die "Error: The value specified, $Options{datafieldsmode}, for option \"-d, --DataFieldsMode\" is not valid. Allowed values: All, Common, Specify or CompoundID\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
645 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
646 if ($Options{estateatomtypessettouse} && $Options{estateatomtypessettouse} !~ /^(ArbitrarySize|FixedSize)$/) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
647 die "Error: The value specified, $Options{estateatomtypessettouse}, for option \"-e, --EStateAtomTypesSetToUse\" is not valid. Allowed values: ArbitrarySize or FixedSize\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
648 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
649 if ($Options{filter} !~ /^(Yes|No)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
650 die "Error: The value specified, $Options{filter}, for option \"-f, --Filter\" is not valid. Allowed values: Yes or No\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
651 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
652 if ($Options{fingerprintslabelmode} !~ /^(FingerprintsLabelOnly|FingerprintsLabelWithIDs)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
653 die "Error: The value specified, $Options{fingerprintslabelmode}, for option \"--FingerprintsLabelMode\" is not valid. Allowed values: FingerprintsLabelOnly or FingerprintsLabelWithIDs\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
654 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
655 if ($Options{keeplargestcomponent} !~ /^(Yes|No)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
656 die "Error: The value specified, $Options{keeplargestcomponent}, for option \"-k, --KeepLargestComponent\" is not valid. Allowed values: Yes or No\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
657 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
658 if ($Options{output} !~ /^(SD|FP|text|all)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
659 die "Error: The value specified, $Options{output}, for option \"--output\" is not valid. Allowed values: SD, FP, text, or all\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
660 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
661 if ($Options{outdelim} !~ /^(comma|semicolon|tab)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
662 die "Error: The value specified, $Options{outdelim}, for option \"--outdelim\" is not valid. Allowed values: comma, tab, or semicolon\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
663 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
664 if ($Options{quote} !~ /^(Yes|No)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
665 die "Error: The value specified, $Options{quote}, for option \"-q --quote\" is not valid. Allowed values: Yes or No\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
666 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
667 if ($Options{outdelim} =~ /semicolon/i && $Options{quote} =~ /^No$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
668 die "Error: The value specified, $Options{quote}, for option \"-q --quote\" is not allowed with, semicolon value of \"--outdelim\" option: Fingerprints string use semicolon as delimiter for various data fields and must be quoted.\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
669 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
670 if (!IsPositiveInteger($Options{valuesprecision})) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
671 die "Error: The value specified, $Options{valuesprecision}, for option \"--ValuesPrecision\" is not valid. Allowed values: > 0 \n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
672 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
673 if ($Options{vectorstringformat} && $Options{vectorstringformat} !~ /^(ValuesString|IDsAndValuesString|IDsAndValuesPairsString|ValuesAndIDsString|ValuesAndIDsPairsString)$/i) {
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
674 die "Error: The value specified, $Options{vectorstringformat}, for option \"-v, --VectorStringFormat\" is not valid. Allowed values: ValuesString, IDsAndValuesString, IDsAndValuesPairsString, ValuesAndIDsString or ValuesAndIDsPairsString\n";
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
675 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
676 }
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
677
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
678 __END__
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
679
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
680 =head1 NAME
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
681
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
682 EStateIndiciesFingerprints.pl - Generate E-state indicies fingerprints for SD files
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
683
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
684 =head1 SYNOPSIS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
685
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
686 EStateIndiciesFingerprints.pl SDFile(s)...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
687
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
688 EStateIndiciesFingerprints.pl [B<--AromaticityModel> I<AromaticityModelType>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
689 [B<--CompoundID> I<DataFieldName or LabelPrefixString>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
690 [B<--CompoundIDLabel> I<text>] [B<--CompoundIDMode> I<DataField | MolName | LabelPrefix | MolNameOrLabelPrefix>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
691 [B<--DataFields> I<"FieldLabel1,FieldLabel2,...">] [B<-d, --DataFieldsMode> I<All | Common | Specify | CompoundID>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
692 [B<-e, --EStateAtomTypesSetToUse> I<ArbitrarySize or FixedSize>] [B<-f, --Filter> I<Yes | No>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
693 [B<--FingerprintsLabelMode> I<FingerprintsLabelOnly | FingerprintsLabelWithIDs>] [B<--FingerprintsLabel> I<text>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
694 [B<-h, --help>] [B<-k, --KeepLargestComponent> I<Yes | No>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
695 [B<--OutDelim> I<comma | tab | semicolon>] [B<--output> I<SD | FP | text | all>] [B<-o, --overwrite>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
696 [B<-q, --quote> I<Yes | No>] [B<-r, --root> I<RootName>] [B<-s, --size> I<number>] [B<--ValuesPrecision> I<number>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
697 [B<-v, --VectorStringFormat> I<IDsAndValuesString | IDsAndValuesPairsString | ValuesAndIDsString | ValuesAndIDsPairsString>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
698 [B<-w, --WorkingDir> I<DirName>]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
699
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
700 =head1 DESCRIPTION
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
701
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
702 Generate E-state indicies fingerprints [ Ref 75-78 ] for I<SDFile(s)> and create appropriate SD,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
703 FP, or CSV/TSV text file(s) containing fingerprints bit-vector or vector strings corresponding to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
704 molecular fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
705
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
706 Multiple SDFile names are separated by spaces. The valid file extensions are I<.sdf>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
707 and I<.sd>. All other file names are ignored. All the SD files in a current directory
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
708 can be specified either by I<*.sdf> or the current directory name.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
709
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
710 E-state atom types are assigned to all non-hydrogen atoms in a molecule using module
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
711 AtomTypes::EStateAtomTypes.pm and E-state values are calculated using module
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
712 AtomicDescriptors::EStateValues.pm. Using E-state atom types and E-state values,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
713 B<EStateIndiciesFingerprints> constituting sum of E-state values for E-sate atom types
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
714 is generated.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
715
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
716 Two types of E-state atom types set size are allowed:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
717
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
718 ArbitrarySize - Corresponds to only E-state atom types detected
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
719 in molecule
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
720 FixedSize - Corresponds to fixed number of E-state atom types previously
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
721 defined
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
722
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
723 Module AtomTypes::EStateAtomTypes.pm, used to assign E-state atom types to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
724 non-hydrogen atoms in the molecule, is able to assign atom types to any valid
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
725 atom group. However, for I<FixedSize> value of B<EStateAtomTypesSetToUse>, only a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
726 fixed set of E-state atom types corresponding to specific atom groups [ Appendix III in
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
727 Ref 77 ] are used for fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
728
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
729 The fixed size E-state atom type set size used during generation of fingerprints contains
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
730 87 E-state non-hydrogen atom types in EStateAtomTypes.csv data file distributed with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
731 MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
732
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
733 Combination of Type and EStateAtomTypesSetToUse allow generation of 2 different types of
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
734 E-state indicies fingerprints:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
735
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
736 Type EStateAtomTypesSetToUse
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
737
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
738 EStateIndicies ArbitrarySize [ default fingerprints ]
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
739 EStateIndicies FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
740
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
741 Example of I<SD> file containing E-state indicies fingerprints string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
742
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
743 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
744 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
745 $$$$
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
746 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
747 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
748 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
749 41 44 0 0 0 0 0 0 0 0999 V2000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
750 -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
751 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
752 2 3 1 0 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
753 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
754 M END
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
755 > <CmpdID>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
756 Cmpd1
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
757
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
758 > <EStateIndiciesFingerprints>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
759 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDsA
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
760 ndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssNH
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
761 SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0.073 3.02
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
762 4 -2.270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
763
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
764 $$$$
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
765 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
766 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
767
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
768 Example of I<FP> file containing E-state indicies fingerprints string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
769
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
770 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
771 # Package = MayaChemTools 7.4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
772 # Release Date = Oct 21, 2010
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
773 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
774 # TimeStamp = Fri Mar 11 14:35:11 2011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
775 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
776 # FingerprintsStringType = FingerprintsVector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
777 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
778 # Description = EStateIndicies:ArbitrarySize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
779 # VectorStringFormat = IDsAndValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
780 # VectorValuesType = NumericalValues
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
781 #
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
782 Cmpd1 11;SaaCH SaasC SaasN SdO SdssC...;24.778 4.387 1.993 25.023 -1...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
783 Cmpd2 9;SdNH SdO SdssC SsCH3 SsNH...;7.418 22.984 -1.583 5.387 5.400...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
784 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
785 ... ..
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
786
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
787 Example of CSV I<Text> file containing E-state indicies fingerprints string data:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
788
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
789 "CompoundID","EStateIndiciesFingerprints"
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
790 "Cmpd1","FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalVa
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
791 lues;IDsAndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssC
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
792 H2 SssNH SsssCH;24.778 4.387 1.993 25.023 -1.435 3.975 14.006 29.759 -0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
793 .073 3.024 -2.270"
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
794 "Cmpd2","FingerprintsVector;EStateIndicies:ArbitrarySize;9;NumericalVal
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
795 ues;IDsAndValuesString;SdNH SdO SdssC SsCH3 SsNH2 SsOH SssCH2 SssNH Sss
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
796 sCH;7.418 22.984 -1.583 5.387 5.400 19.852 1.737 5.624 -3.319"
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
797 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
798 ... ...
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
799
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
800 The current release of MayaChemTools generates the following types of E-state
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
801 fingerprints vector strings:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
802
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
803 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
804 AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
805 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
806 .024 -2.270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
807
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
808 FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
809 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
810 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
811 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
812 0 0 0 0 0 0 0 0 0 0 0 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
813
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
814 FingerprintsVector;EStateIndicies:FixedSize;87;OrderedNumericalValues;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
815 IDsAndValuesString;SsLi SssBe SssssBem SsBH2 SssBH SsssB SssssBm SsCH3
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
816 SdCH2 SssCH2 StCH SdsCH SaaCH SsssCH SddC StsC SdssC SaasC SaaaC Sssss
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
817 C SsNH3p SsNH2 SssNH2p SdNH SssNH SaaNH StN SsssNHp SdsN SaaN SsssN Sd
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
818 0 0 0 0 0 0 0 3.975 0 -0.073 0 0 24.778 -2.270 0 0 -1.435 4.387 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
819 0 0 0 3.024 0 0 0 0 0 0 0 1.993 0 29.759 25.023 0 0 0 0 14.006 0 0 0 0
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
820 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
821
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
822 =head1 OPTIONS
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
823
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
824 =over 4
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
825
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
826 =item B<--AromaticityModel> I<MDLAromaticityModel | TriposAromaticityModel | MMFFAromaticityModel | ChemAxonBasicAromaticityModel | ChemAxonGeneralAromaticityModel | DaylightAromaticityModel | MayaChemToolsAromaticityModel>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
827
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
828 Specify aromaticity model to use during detection of aromaticity. Possible values in the current
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
829 release are: I<MDLAromaticityModel, TriposAromaticityModel, MMFFAromaticityModel,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
830 ChemAxonBasicAromaticityModel, ChemAxonGeneralAromaticityModel, DaylightAromaticityModel
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
831 or MayaChemToolsAromaticityModel>. Default value: I<MayaChemToolsAromaticityModel>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
832
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
833 The supported aromaticity model names along with model specific control parameters
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
834 are defined in B<AromaticityModelsData.csv>, which is distributed with the current release
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
835 and is available under B<lib/data> directory. B<Molecule.pm> module retrieves data from
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
836 this file during class instantiation and makes it available to method B<DetectAromaticity>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
837 for detecting aromaticity corresponding to a specific model.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
838
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
839 =item B<--CompoundID> I<DataFieldName or LabelPrefixString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
840
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
841 This value is B<--CompoundIDMode> specific and indicates how compound ID is generated.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
842
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
843 For I<DataField> value of B<--CompoundIDMode> option, it corresponds to datafield label name
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
844 whose value is used as compound ID; otherwise, it's a prefix string used for generating compound
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
845 IDs like LabelPrefixString<Number>. Default value, I<Cmpd>, generates compound IDs which
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
846 look like Cmpd<Number>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
847
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
848 Examples for I<DataField> value of B<--CompoundIDMode>:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
849
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
850 MolID
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
851 ExtReg
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
852
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
853 Examples for I<LabelPrefix> or I<MolNameOrLabelPrefix> value of B<--CompoundIDMode>:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
854
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
855 Compound
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
856
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
857 The value specified above generates compound IDs which correspond to Compound<Number>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
858 instead of default value of Cmpd<Number>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
859
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
860 =item B<--CompoundIDLabel> I<text>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
861
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
862 Specify compound ID column label for FP or CSV/TSV text file(s) used during I<CompoundID> value
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
863 of B<--DataFieldsMode> option. Default: I<CompoundID>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
864
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
865 =item B<--CompoundIDMode> I<DataField | MolName | LabelPrefix | MolNameOrLabelPrefix>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
866
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
867 Specify how to generate compound IDs and write to FP or CSV/TSV text file(s) along with generated
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
868 fingerprints for I<FP | text | all> values of B<--output> option: use a I<SDFile(s)> datafield value;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
869 use molname line from I<SDFile(s)>; generate a sequential ID with specific prefix; use combination
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
870 of both MolName and LabelPrefix with usage of LabelPrefix values for empty molname lines.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
871
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
872 Possible values: I<DataField | MolName | LabelPrefix | MolNameOrLabelPrefix>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
873 Default: I<LabelPrefix>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
874
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
875 For I<MolNameAndLabelPrefix> value of B<--CompoundIDMode>, molname line in I<SDFile(s)> takes
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
876 precedence over sequential compound IDs generated using I<LabelPrefix> and only empty molname
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
877 values are replaced with sequential compound IDs.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
878
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
879 This is only used for I<CompoundID> value of B<--DataFieldsMode> option.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
880
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
881 =item B<--DataFields> I<"FieldLabel1,FieldLabel2,...">
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
882
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
883 Comma delimited list of I<SDFiles(s)> data fields to extract and write to CSV/TSV text file(s) along
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
884 with generated fingerprints for I<text | all> values of B<--output> option.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
885
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
886 This is only used for I<Specify> value of B<--DataFieldsMode> option.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
887
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
888 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
889
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
890 Extreg
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
891 MolID,CompoundName
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
892
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
893 =item B<-d, --DataFieldsMode> I<All | Common | Specify | CompoundID>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
894
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
895 Specify how data fields in I<SDFile(s)> are transferred to output CSV/TSV text file(s) along
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
896 with generated fingerprints for I<text | all> values of B<--output> option: transfer all SD
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
897 data field; transfer SD data files common to all compounds; extract specified data fields;
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
898 generate a compound ID using molname line, a compound prefix, or a combination of both.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
899 Possible values: I<All | Common | specify | CompoundID>. Default value: I<CompoundID>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
900
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
901 =item B<-e, --EStateAtomTypesSetToUse> I<ArbitrarySize | FixedSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
902
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
903 E-state atom types set size to use during generation of E-state indicies fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
904 Possible values: I<ArbitrarySize | FixedSize>; Default value: I<ArbitrarySize>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
905
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
906 I<ArbitrarySize> corrresponds to only E-state atom types detected in molecule; I<FixedSize>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
907 corresponds to fixed number of previously defined E-state atom types.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
908
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
909 For I<EStateIndicies>, a fingerprint vector string is generated. The vector string corresponding to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
910 I<EStateIndicies> contains sum of E-state values for E-state atom types.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
911
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
912 Module B<AtomTypes::EStateAtomTypes.pm> is used to assign E-state atom types to
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
913 non-hydrogen atoms in the molecule which is able to assign atom types to any valid
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
914 atom group. However, for I<FixedSize> value of B<EStateAtomTypesSetToUse>,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
915 only a fixed set of E-state atom types corresponding to specific atom groups [ Appendix
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
916 III in Ref 77 ] are used for fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
917
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
918 The fixed size E-state atom type set size used during generation of fingerprints contains
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
919 87 E-state non-hydrogen atom types in EStateAtomTypes.csv data file distributed with
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
920 MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
921
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
922 =item B<-f, --Filter> I<Yes | No>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
923
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
924 Specify whether to check and filter compound data in SDFile(s). Possible values: I<Yes or No>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
925 Default value: I<Yes>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
926
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
927 By default, compound data is checked before calculating fingerprints and compounds containing
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
928 atom data corresponding to non-element symbols or no atom data are ignored.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
929
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
930 =item B<--FingerprintsLabelMode> I<FingerprintsLabelOnly | FingerprintsLabelWithIDs>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
931
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
932 Specify how fingerprints label is generated in conjunction with B<--FingerprintsLabel> option value:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
933 use fingerprints label generated only by B<--FingerprintsLabel> option value or append E-state
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
934 atom type value IDs to B<--FingerprintsLabel> option value.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
935
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
936 Possible values: I<FingerprintsLabelOnly | FingerprintsLabelWithIDs>. Default value:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
937 I<FingerprintsLabelOnly>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
938
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
939 This option is only used for I<FixedSize> value of B<-e, --EStateAtomTypesSetToUse> option during
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
940 generation of I<EStateIndicies> E-state fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
941
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
942 E-state atom type IDs appended to B<--FingerprintsLabel> value during I<FingerprintsLabelWithIDs>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
943 values of B<--FingerprintsLabelMode> correspond to fixed number of previously defined E-state
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
944 atom types.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
945
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
946 =item B<--FingerprintsLabel> I<text>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
947
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
948 SD data label or text file column label to use for fingerprints string in output SD or
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
949 CSV/TSV text file(s) specified by B<--output>. Default value: I<EStateIndiciesFingerprints>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
950
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
951 =item B<-h, --help>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
952
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
953 Print this help message.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
954
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
955 =item B<-k, --KeepLargestComponent> I<Yes | No>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
956
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
957 Generate fingerprints for only the largest component in molecule. Possible values:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
958 I<Yes or No>. Default value: I<Yes>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
959
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
960 For molecules containing multiple connected components, fingerprints can be generated
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
961 in two different ways: use all connected components or just the largest connected
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
962 component. By default, all atoms except for the largest connected component are
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
963 deleted before generation of fingerprints.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
964
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
965 =item B<--OutDelim> I<comma | tab | semicolon>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
966
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
967 Delimiter for output CSV/TSV text file(s). Possible values: I<comma, tab, or semicolon>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
968 Default value: I<comma>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
969
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
970 =item B<--output> I<SD | FP | text | all>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
971
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
972 Type of output files to generate. Possible values: I<SD, FP, text, or all>. Default value: I<text>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
973
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
974 =item B<-o, --overwrite>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
975
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
976 Overwrite existing files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
977
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
978 =item B<-q, --quote> I<Yes | No>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
979
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
980 Put quote around column values in output CSV/TSV text file(s). Possible values:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
981 I<Yes or No>. Default value: I<Yes>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
982
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
983 =item B<-r, --root> I<RootName>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
984
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
985 New file name is generated using the root: <Root>.<Ext>. Default for new file
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
986 names: <SDFileName><EStateIndiciesFP>.<Ext>. The file type determines <Ext> value.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
987 The sdf, fpf, csv, and tsv <Ext> values are used for SD, FP, comma/semicolon, and tab
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
988 delimited text files, respectively.This option is ignored for multiple input files.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
989
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
990 =item B<--ValuesPrecision> I<number>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
991
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
992 Precision of values for E-state indicies option. Default value: up to I<3> decimal places.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
993 Valid values: positive integers.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
994
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
995 =item B<-v, --VectorStringFormat> I<ValuesString | IDsAndValuesString | IDsAndValuesPairsString | ValuesAndIDsString | ValuesAndIDsPairsString>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
996
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
997 Format of fingerprints vector string data in output SD, FP or CSV/TSV text file(s) specified by
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
998 B<--output> used for I<EStateIndicies>. Possible values: I<ValuesString, IDsAndValuesString,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
999 IDsAndValuesPairsString, ValuesAndIDsString, ValuesAndIDsPairsString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1000
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1001 Default value during I<ArbitrarySize> value of B<-e, --EStateAtomTypesSetToUse>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1002 option: I<IDsAndValuesString>. Default value during I<FixedSize> value of
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1003 B<-e, --EStateAtomTypesSetToUse> option: I<ValuesString>.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1004
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1005 Examples:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1006
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1007 FingerprintsVector;EStateIndicies:ArbitrarySize;11;NumericalValues;IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1008 AndValuesString;SaaCH SaasC SaasN SdO SdssC SsCH3 SsF SsOH SssCH2 SssN
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1009 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
1010 .024 -2.270
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1011
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1012 =item B<-w, --WorkingDir> I<DirName>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1013
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1014 Location of working directory. Default: current directory.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1015
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1016 =back
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1017
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1018 =head1 EXAMPLES
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1019
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1020 To generate E-state fingerprints of arbitrary size in vector string format and create a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1021 SampleESFP.csv file containing sequential compound IDs along with fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1022 vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1023
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1024 % EStateIndiciesFingerprints.pl -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1025
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1026 To generate E-state fingerprints of fixed size in vector string format and create a
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1027 SampleESFP.csv file containing sequential compound IDs along with fingerprints
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1028 vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1029
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1030 % EStateIndiciesFingerprints.pl -e FixedSize -r SampleESFP
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1031 -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1032
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1033 To generate E-state fingerprints of fixed size in vector string with IDsAndValues
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1034 format and create a SampleESFP.csv file containing sequential compound IDs
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1035 along with fingerprints vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1036
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1037 % EStateIndiciesFingerprints.pl -e FixedSize -v IDsAndValuesString
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1038 -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1039
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1040 To generate E-state fingerprints of fixed size in vector string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1041 and create a SampleESFP.csv file containing compound ID from molecule
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1042 name line along with fingerprints vector strings data, type
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1043
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1044 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1045 --DataFieldsMode CompoundID --CompoundIDMode MolName
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1046 -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1047
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1048 To generate E-state fingerprints of fixed size in vector string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1049 and create a SampleESFP.csv file containing compound IDs using specified
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1050 data field along with fingerprints vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1051
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1052 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1053 --DataFieldsMode CompoundID --CompoundIDMode DataField --CompoundID
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1054 Mol_ID -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1055
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1056 To generate E-state fingerprints of fixed size in vector string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1057 and create a SampleESFP.csv file containing compound ID using combination
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1058 of molecule name line and an explicit compound prefix along with fingerprints vector
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1059 strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1060
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1061 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1062 --DataFieldsMode CompoundID --CompoundIDMode MolnameOrLabelPrefix
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1063 --CompoundID Cmpd --CompoundIDLabel MolID -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1064
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1065 To generate E-state fingerprints of fixed size in vector string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1066 and create a SampleESFP.csv file containing specific data fields columns along
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1067 with fingerprints vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1068
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1069 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1070 --DataFieldsMode Specify --DataFields Mol_ID -r SampleESFP
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1071 -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1072
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1073 To generate E-state fingerprints of fixed size in vector string format
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1074 and create a SampleESFP.csv file containing common data fields columns along
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1075 with fingerprints vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1076
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1077 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1078 --DataFieldsMode Common -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1079
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1080 To generate E-state fingerprints of fixed size in vector string format and create
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1081 SampleESFP.sdf, SampleESFP.fpf, and SampleESFP.csv files containing all data
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1082 fields columns in CSV file along with fingerprints vector strings data, type:
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1083
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1084 % EStateIndiciesFingerprints.pl -e FixedSize
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1085 --DataFieldsMode All --output all -r SampleESFP -o Sample.sdf
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1086
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1087 =head1 AUTHOR
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1088
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1089 Manish Sud <msud@san.rr.com>
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1090
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1091 =head1 SEE ALSO
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1092
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1093 InfoFingerprintsFiles.pl, SimilarityMatricesFingerprints.pl, AtomNeighborhoodsFingerprints.pl,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1094 ExtendedConnectivityFingerprints.pl, MACCSKeysFingeprints.pl, PathLengthFingerprints.pl,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1095 TopologicalAtomPairsFingerprints.pl, TopologicalAtomTorsionsFingerprints.pl,
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1096 TopologicalPharmacophoreAtomPairsFingerprints.pl, TopologicalPharmacophoreAtomTripletsFingerprints.pl
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1097
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1098 =head1 COPYRIGHT
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1099
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1100 Copyright (C) 2015 Manish Sud. All rights reserved.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1101
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1102 This file is part of MayaChemTools.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1103
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1104 MayaChemTools is free software; you can redistribute it and/or modify it under
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1105 the terms of the GNU Lesser General Public License as published by the Free
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1106 Software Foundation; either version 3 of the License, or (at your option)
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1107 any later version.
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1108
4816e4a8ae95 Uploaded
deepakjadmin
parents:
diff changeset
1109 =cut