annotate mayachemtool/mayachemtools/bin/MolFilesToSD.pl @ 0:68300206e90d draft default tip

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