annotate bin/MolFilesToSD.pl @ 3:90ea638ce878 draft default tip

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