annotate mayachemtools/bin/MolFilesToSD.pl @ 9:ab29fa5c8c1f draft default tip

Uploaded
author deepakjadmin
date Thu, 15 Dec 2016 14:18:03 -0500
parents 73ae111cf86f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
1 #!/usr/bin/perl -w
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
2 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
3 # $RCSfile: MolFilesToSD.pl,v $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
4 # $Date: 2015/02/28 20:46:20 $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
5 # $Revision: 1.38 $
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
6 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
7 # Author: Manish Sud <msud@san.rr.com>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
8 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
9 # Copyright (C) 2015 Manish Sud. All rights reserved.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
10 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
11 # This file is part of MayaChemTools.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
12 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
13 # MayaChemTools is free software; you can redistribute it and/or modify it under
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
14 # the terms of the GNU Lesser General Public License as published by the Free
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
15 # Software Foundation; either version 3 of the License, or (at your option) any
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
16 # later version.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
17 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
18 # MayaChemTools is distributed in the hope that it will be useful, but without
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
19 # any warranty; without even the implied warranty of merchantability of fitness
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
20 # for a particular purpose. See the GNU Lesser General Public License for more
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
21 # details.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
22 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
23 # You should have received a copy of the GNU Lesser General Public License
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
24 # along with MayaChemTools; if not, see <http://www.gnu.org/licenses/> or
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
25 # write to the Free Software Foundation Inc., 59 Temple Place, Suite 330,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
26 # Boston, MA, 02111-1307, USA.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
27 #
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
28
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
29 use strict;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
30 use FindBin; use lib "$FindBin::Bin/../lib";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
31 use Getopt::Long;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
32 use File::Basename;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
33 use Text::ParseWords;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
34 use Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
35 use SDFileUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
36 use FileUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
37 use TextUtil;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
38
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
39 my($ScriptName, %Options, $StartTime, $EndTime, $TotalTime);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
40
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
41 # Autoflush STDOUT
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
42 $| = 1;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
43
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
44 # Starting message...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
45 $ScriptName = basename $0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
46 print "\n$ScriptName:Starting...\n\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
47 $StartTime = new Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
48
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
49 # Get the options and setup script...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
50 SetupScriptUsage();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
51 if ($Options{help} || @ARGV < 1) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
52 die GetUsageFromPod("$FindBin::Bin/$ScriptName");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
53 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
54
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
55 my(@MOLFilesList);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
56 @MOLFilesList = ExpandFileNames(\@ARGV, "mol");
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
57
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
58 # Process options...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
59 print "Processing options...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
60 my(%OptionsInfo);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
61 ProcessOptions();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
62
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
63 print "Generating SD file $OptionsInfo{SDFile}...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
64 GenerateSDFile();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
65
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
66 print "\n$ScriptName:Done...\n\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
67
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
68 $EndTime = new Benchmark;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
69 $TotalTime = timediff ($EndTime, $StartTime);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
70 print "Total time: ", timestr($TotalTime), "\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
71
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
72 ###############################################################################
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
73
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
74 # Generate a SD file using all valid MDL MOL files...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
75 sub GenerateSDFile {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
76 my($MOLFile, $Index, $FileCount, $FileOkayCount, $MolNameLine, $CmpdID, $FileDir, $FileName, $FileExt);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
77
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
78 open SDFILE, ">$OptionsInfo{SDFile}" or die "Error: Can't open $OptionsInfo{SDFile}: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
79 $FileCount = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
80 $FileOkayCount = 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
81
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
82 FILELIST: for $Index (0 .. $#MOLFilesList) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
83 $MOLFile = $MOLFilesList[$Index];
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
84 $FileCount++;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
85
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
86 print "Processing file $MOLFile...\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
87
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
88 if (!(-e $MOLFile)) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
89 warn "Warning: Ignoring file $MOLFile: It doesn't exist\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
90 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
91 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
92
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
93 if (!CheckFileType($MOLFile, "mol")) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
94 warn "Warning: Ignoring file $MOLFile: It's not a MDLMOL file\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
95 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
96 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
97
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
98 if (!open MOLFILE, "$MOLFile") {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
99 warn "Warning: Ignoring file $MOLFile: Couldn't open it: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
100 next FILELIST;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
101 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
102
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
103 $FileOkayCount++;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
104
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
105 if ($OptionsInfo{ModifyData}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
106 $MolNameLine = <MOLFILE>;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
107 if ($OptionsInfo{UseFilePrefix}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
108 ($FileDir, $FileName, $FileExt) = ParseFileName($MOLFile);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
109 $CmpdID = $FileName;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
110 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
111 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
112 $CmpdID = $OptionsInfo{CompoundID} . "$FileCount";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
113 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
114
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
115 if ($OptionsInfo{AddMolNameLine}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
116 print SDFILE "$CmpdID\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
117 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
118 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
119 $MolNameLine =~ s/(\r\n)|(\r)/\n/g;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
120 print SDFILE $MolNameLine;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
121 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
122
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
123 while (<MOLFILE>) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
124 s/(\r\n)|(\r)/\n/g;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
125 print SDFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
126 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
127
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
128 if ($OptionsInfo{AddDataField}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
129 print SDFILE "> <$OptionsInfo{DataFieldLabel}>\n${CmpdID}\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
130 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
131 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
132 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
133 while (<MOLFILE>) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
134 s/(\r\n)|(\r)/\n/g;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
135 print SDFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
136 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
137 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
138 print SDFILE "\n\$\$\$\$\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
139 close MOLFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
140 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
141 close SDFILE;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
142
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
143 print "\nNumber of files: $FileCount\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
144 print "Number of files processed successfully: $FileOkayCount\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
145 print "Number of files ignored: " . ($FileCount - $FileOkayCount) . "\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
146 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
147
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
148 # Process option values...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
149 sub ProcessOptions {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
150 %OptionsInfo = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
151
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
152 $OptionsInfo{Mode} = $Options{mode};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
153
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
154 $OptionsInfo{CompoundID} = $Options{compoundid};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
155 $OptionsInfo{DataFieldLabel} = $Options{datafieldlabel};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
156
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
157 $OptionsInfo{Overwrite} = defined $Options{overwrite} ? $Options{overwrite} : undef;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
158 $OptionsInfo{OutFileRoot} = defined $Options{root} ? $Options{root} : undef;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
159
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
160 $OptionsInfo{AddMolNameLine} = ($Options{mode} =~ /^(molnameline|both)$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
161 $OptionsInfo{AddDataField} = ($Options{mode} =~ /^(datafield|both)$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
162
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
163 $OptionsInfo{AddMolNameLine} = ($Options{mode} =~ /^(molnameline|both)$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
164 $OptionsInfo{AddDataField} = ($Options{mode} =~ /^(datafield|both)$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
165
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
166 $OptionsInfo{ModifyData} = ($OptionsInfo{AddMolNameLine} || $OptionsInfo{AddDataField}) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
167
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
168 $OptionsInfo{UseFilePrefix} = ($Options{compoundid} =~ /^usefileprefix$/i) ? 1 : 0;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
169
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
170 # Setup SD file name...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
171 my($FileDir, $FileName, $FileExt, $SDFile);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
172 if ($Options{root}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
173 $FileDir = ""; $FileName = ""; $FileExt = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
174 ($FileDir, $FileName, $FileExt) = ParseFileName($Options{root});
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
175 if ($FileName && $FileExt) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
176 $SDFile = $FileName;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
177 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
178 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
179 $SDFile = $Options{root};
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
180 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
181 $SDFile .= ".sdf";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
182 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
183 else {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
184 $FileDir = ""; $FileName = ""; $FileExt = "";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
185 ($FileDir, $FileName, $FileExt) = ParseFileName($MOLFilesList[0]);
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
186 $SDFile = $FileName . "1To" . @MOLFilesList . ".sdf";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
187 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
188
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
189 if (!$Options{overwrite}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
190 if (-e $SDFile) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
191 die "Error: The file $SDFile already exists.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
192 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
193 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
194 $OptionsInfo{SDFile} = $SDFile;
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
195
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
196 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
197
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
198 # Setup script usage and retrieve command line arguments specified using various options...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
199 sub SetupScriptUsage {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
200
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
201 # Retrieve all the options...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
202 %Options = ();
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
203 $Options{compoundid} = "Cmpd";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
204 $Options{datafieldlabel} = "Cmpd_ID";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
205 $Options{mode} = "none";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
206
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
207 if (!GetOptions(\%Options, "compoundid|c=s", "datafieldlabel|d=s", "help|h", "mode|m=s", "overwrite|o", "root|r=s", "workingdir|w=s")) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
208 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";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
209 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
210 if ($Options{workingdir}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
211 if (! -d $Options{workingdir}) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
212 die "Error: The value specified, $Options{workingdir}, for option \"-w --workingdir\" is not a directory name.\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
213 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
214 chdir $Options{workingdir} or die "Error: Couldn't chdir $Options{workingdir}: $! \n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
215 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
216 if ($Options{mode} !~ /^(molnameline|datafield|both|none)$/i ) {
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
217 die "Error: The value specified, $Options{mode}, for option \"-m --mode\" is not valid. Allowed values: molnameline, datafield, both, or none\n";
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
218 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
219 }
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
220
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
221 __END__
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
222
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
223 =head1 NAME
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
224
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
225 MolFilesToSD.pl - Generate a SD file from MDLMOL File(s)
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
226
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
227 =head1 SYNOPSIS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
228
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
229 MolFilesToSD.pl MDLMOLFile(s)...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
230
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
231 MolFilesToSD.pl [B<-c, --compoundid> usefileprefix | idlabel] [B<-d, --datafieldlabel> fieldlabel]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
232 [B<-h, --help>] [B<-m, --mode> molnameline | datafield | both | none] [B<-o, --overwrite>]
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
233 [B<-r, --root> rootname] [B<-w, --workingdir> dirname] MDLMOLFile(s)...
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
234
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
235 =head1 DESCRIPTION
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
236
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
237 Generate a SD file from I<MDLMOL File(s)>. Multiple file names are separated by spaces.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
238 The valid file extension is I<.mol>. All other file names are ignored. All the files in a current
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
239 directory can be specified by I<*.mol>, or the current directory name.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
240
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
241 =head1 OPTIONS
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
242
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
243 =over 4
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
244
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
245 =item B<-c, --compoundid> I<usefileprefix | idlabel>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
246
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
247 Specify how to generate compound IDs: use MOL filename prefix or generate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
248 a new compound ID by combining I<idlabel> with compound number. Possible
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
249 values: I<usefileprefix | idlabel>. By default, I<Cmd> is used as a I<idlabel> to generate
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
250 these types of compound IDs: Cmpd1, Cmpd2 and so on.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
251
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
252 Example: To generate compound IDs like Mol_ID1, Mol_ID2 and so on, specify
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
253 "MolID" value for this option.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
254
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
255 =item B<-d, --datafieldlabel> I<fieldlabel>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
256
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
257 Specify data field label for adding compound ID field into SD file during I<datafield | both>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
258 values of B<-m, --mode> option. Default: <Cmpd_ID>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
259
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
260 =item B<-h, --help>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
261
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
262 Print this help message.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
263
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
264 =item B<-m, --mode> I<molnameline | datafield | both | none>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
265
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
266 Specify how to add compopund ID into SD file: relplace the molname line,
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
267 add a new data field, replace the molname line and add data field, or do
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
268 nothing. Possible values: I<molnameline | datafield | both | none>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
269 Default: I<nothing>.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
270
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
271 Use B<-c, --compoundid> to specify compound ID generation process.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
272
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
273 =item B<-o, --overwrite>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
274
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
275 Overwrite existing files.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
276
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
277 =item B<-r, --root> I<rootname>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
278
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
279 New SD file name is generated using the root: <Root>.sdf. Default new file
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
280 name: <InitialMOLFileName>1To<Count>.sdf.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
281
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
282 =item B<-w, --workingdir> I<dirname>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
283
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
284 Location of working directory. Default: current directory.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
285
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
286 =back
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
287
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
288 =head1 EXAMPLES
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
289
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
290 To generate NewSample.sdf file from Sample*.mol files, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
291
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
292 % MolFilesToSD.pl -r NewSample -o Sample*.mol
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
293
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
294 To generate NewSample.sdf with Cmpd1, Cmpd2 and so on as compound ID in
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
295 MolName line and Cmpd_ID datafield from Sample*.mol files, type:
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
296
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
297 % MolFilesToSD.pl -r NewSample -m both -o Sample*.mol
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
298
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
299 =head1 AUTHOR
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
300
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
301 Manish Sud <msud@san.rr.com>
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
302
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
303 =head1 SEE ALSO
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
304
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
305 InfoSDFiles.pl, SDToMolFiles.pl
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
306
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
307 =head1 COPYRIGHT
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
308
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
309 Copyright (C) 2015 Manish Sud. All rights reserved.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
310
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
311 This file is part of MayaChemTools.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
312
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
313 MayaChemTools is free software; you can redistribute it and/or modify it under
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
314 the terms of the GNU Lesser General Public License as published by the Free
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
315 Software Foundation; either version 3 of the License, or (at your option)
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
316 any later version.
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
317
73ae111cf86f Uploaded
deepakjadmin
parents:
diff changeset
318 =cut