Running Mopac in batch from SYBYL
This was posted yesterday. I assume the SPL may be useful to others..
>> From: arilahti -AatT- abo.fi < Ari Lahti >
>> Date: Fri, 28 Oct 1994 13:56:53 +0200 (EET)
>> Subject: CCL:MOPAC necessarily batch?
>>
>> I need to start a lot (>100) of MOPAC runs one after another
>> from a UNIX script. How can I make sure that no more than one
>> MOPAC is running at a time?
>>
>> I have tried deleting '&' from the .com file, but MOPAC still
>> goes batch (obviously the routine 'ta_batch' makes it do so in
>> any case). I have tried adding 'wait' in my script, but -
>> strangely enough - it doesn't seem to work either. 'at' would
>> be clumsy to be used in my case.
>>
>> So, how could I either make MOPAC run in the foreground or
>> make my script wait for the batch to end?
>>
>>
>> Thanks in advance.
>>
>> Ari Lahti, Abo Akademi University
>>
>>
>> --------------------------------------------------------------
>>
>> Ari Lahti, M.D., M.Sc.
>> Dept. Phys. Chem.
>> Abo Akademi University
>> Porthansg. 4-6
>> FIN-20500 Abo
>> Finland
>> tel.: 358-21-654617
>> fax: 358-21-654706
>> e-mail: arilahti -AatT- abo.fi
>>
>> ---------------------------------------------------------------
Ari,
From the 'ta_batch' keyword I assume that you wish to run these
in Sybyl. There are several ways to do this:
one is to get a stand alone verision of Mopac from QCPE and have
it run from a shell script (like the one written by Manish Sud
from Biosym), and that will run Mopac in batch. This would help
UPGRADE your Mopac from 5.0 to Mopac93, by the way..
another way is to tell Sybyl to use the 'at' command - which you
can find using menubar to run Mopac - it will prompt you to
'run_it_now' and you can put each job to start after 30 min or
1 hr (whatever your estimate for 1 job is).
Another way, to run it interactively in SYBYL, is to introduce
the following SPL into Sybyl (with the take command) and have
both Sybyl and Mopac run - essentially the script awaits for
the *.sta file to be written (which is done when Mopac has
successfully run in the Sybyl version), and then launch the
next one.
The script was written by me and Chris L. Waller ..
and for a while i found it useful..
## This is to run Mopac AM1 via MOPAC 5 in Sybyl for ALL molecules in database
## Written by Tudor I. Oprea and Chris L. Waller
## First tell Sybyl it's a macro called am1
uims define macro am1 sybylbasic
## Then stop the [C],[G] or [Q]
set cgq 0
## input database name
setvar a %prompt(string "database" "Enter database name")
## open database in read_only mode
da op $a re
## Start reading molecules in for processing
for i in %database(*)
da get "$i" m1
## Look for mopac DONE jobs
if %not(%dir($i.sta))
echo calculating MOPAC AM1 ...
## NOTE: CHANGE TO SUIT - USE geo_all OR 1SCF for geometry
## and method (AM1, PM3 etc.) to change Hamiltonian
qcpe m1 mopac setup $i \
method am1 \
time 6200 \
other "NOINTER GRAPH" \
## NOTE: For Sulfur you need a file called PAR for the
## S parameters, and the EXTERNAL=PAR PARASOK keywords above!!!
done \
"$i" 'machine_NAME' run_it_now
## change 'machine_NAME' to suit
## Now wait for this calculation to finish before starting a new one
while %not(%dir($i.sta))
echo process MOPAC still RUNNING
echo to keep the succession, do not press C,G or Q now!
wait 60
endwhile
echo mopac DONE
## If this molecule was already calculated, skip the whole procedure
else
echo this molecule is already Mopac DONE!
endif
endfor
.
## NOTE: do not delete the '.' after endfor - it's needed in SYBYL
--Tudor
****************************************************************************
* Tudor I. Oprea, MD PhD Tel: (505) 667 2682 *
* Postdoctoral Research Associate Fax: (505) 665 3493 *
* Theoretical Biology and Biophysics (T-10) Email: *
* Los Alamos National Laboratory tudor -AatT- t10.lanl.gov *
* Mail Stop K710, Los Alamos NM 87545 *
****************************************************************************