Ligand preparation - 20170424: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 27: | Line 27: | ||
3. | 3. | ||
the following is a wrapper script (wrapper_queue_build_smiles_ligand_corina.csh) which braeks up the smiles file and submits it to the queue. This method gives the user more control over the "qsub-mr-meta" way although it is less polished. | |||
#! /bin/csh | |||
# source enviorment. | |||
source ~tbalius/.cshrc_dbgen_corina | |||
#set number_per_db2 = 1000 | |||
#set number_per_db2 = 5 | |||
set number_per_db2 = 10 | |||
set ph = 7.4 | |||
set file = $1 | |||
set fileprefix = ${file:r} | |||
set pwd = `pwd` | |||
set pathdir = $pwd | |||
set workdir = $pwd/${fileprefix} | |||
echo ${workdir} | |||
echo ${file} ${fileprefix} | |||
if (-e ${workdir}) then | |||
echo "${workdir} exists" | |||
exit | |||
endif | |||
#exit | |||
#rm -rf ${workdir} | |||
mkdir ${workdir} | |||
cd ${workdir} | |||
ln -s ../${file} . | |||
echo "split --lines=$number_per_db2 --suffix-length=6 ${file} ${fileprefix}_split" | |||
split --lines=$number_per_db2 --suffix-length=6 ${file} ${fileprefix}_split | |||
foreach splitfile ( ` ls ${fileprefix}_split* | grep -v db2.gz ` ) | |||
echo ${splitfile} | |||
# make sure that the link is pointing to something. | |||
#set lsoutput = `ls -l sgejob_*/${splitfile}.db2.gz` | |||
#echo "WHAT:: $lsoutput" | |||
#if ("$lsoutput" == "") then | |||
# rm ${splitfile}.db2.gz | |||
#endif | |||
if (-e ${splitfile}.db2.gz) then | |||
echo "${splitfile} has been submitted for generations." | |||
continue | |||
endif | |||
cat << EOF >! script_qsub_${splitfile}.csh | |||
#\$ -S /bin/csh | |||
#\$ -cwd | |||
#\$ -q all.q | |||
#\$ -o stdout_${splitfile} | |||
#\$ -e stderr_${splitfile} | |||
# source enviorment. | |||
source ~tbalius/.cshrc_dbgen_corina | |||
hostname | |||
date | |||
set SCRATCH_DIR = /scratch | |||
if ! (-d \$SCRATCH_DIR ) then | |||
SCRATCH_DIR=/tmp | |||
endif | |||
set username = `whoami` | |||
set TASK_DIR = "\$SCRATCH_DIR/\${username}/\$JOB_ID" | |||
echo \$TASK_DIR | |||
mkdir -p \${TASK_DIR} | |||
cd \${TASK_DIR} | |||
pwd | |||
cp ${workdir}/${splitfile} . | |||
# note that the pining script's inputs should not be in quotes ('' or ""). | |||
/nfs/home/tbalius/zzz.github/DOCK/common/on-one-core - ${DOCKBASE}/ligand/generate/build_database_ligand.sh -H $ph ${splitfile} | |||
cd ${workdir} | |||
mkdir sgejob_\${JOB_ID}_${splitfile} | |||
echo copying | |||
ls -l \${TASK_DIR}/finished/*/*.db2.gz | |||
ls -l \${TASK_DIR}/finished/*/*.db.gz | |||
# copy finshed directory | |||
mv \${TASK_DIR}/finished/ sgejob_\${JOB_ID}_${splitfile} | |||
rm -r \${TASK_DIR} | |||
EOF | |||
while ( `qstat -u tbalius | wc -l ` > 10 ) | |||
sleep 10 | |||
end | |||
qsub script_qsub_${splitfile}.csh | |||
#exit | |||
end | |||
Revision as of 17:09, 18 April 2017
3 ways to build ligands:
1. Source the environment and run the stand-alone script:
source /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk/env.sh
sh $DOCKBASE/ligand/generate/build_database_ligand.sh mysmiles.smi
2. Source the environment and submit jobs:
a. put these commands in cmd file:
setenv DOCKBASE /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk
setenv BUILD_ENVIRONMENT /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk/env.sh
/nfs/soft/tools/utils/qsub-slice/qsub-mr-meta -tc 10 -L 100000 --map-instance-script \ "/nfs/scratch/A/xyz/protomer/qsub-mr-map.sh" -s $BUILD_ENVIRONMENT \ -l 100 $1 $DOCKBASE/ligand/generate/build_database_ligand.sh
b. run the script:
csh cmd mysmiles.smi
3.
the following is a wrapper script (wrapper_queue_build_smiles_ligand_corina.csh) which braeks up the smiles file and submits it to the queue. This method gives the user more control over the "qsub-mr-meta" way although it is less polished.
#! /bin/csh # source enviorment. source ~tbalius/.cshrc_dbgen_corina #set number_per_db2 = 1000 #set number_per_db2 = 5 set number_per_db2 = 10 set ph = 7.4 set file = $1 set fileprefix = ${file:r} set pwd = `pwd` set pathdir = $pwd set workdir = $pwd/${fileprefix} echo ${workdir} echo ${file} ${fileprefix} if (-e ${workdir}) then echo "${workdir} exists" exit endif #exit #rm -rf ${workdir} mkdir ${workdir} cd ${workdir} ln -s ../${file} . echo "split --lines=$number_per_db2 --suffix-length=6 ${file} ${fileprefix}_split" split --lines=$number_per_db2 --suffix-length=6 ${file} ${fileprefix}_split foreach splitfile ( ` ls ${fileprefix}_split* | grep -v db2.gz ` ) echo ${splitfile} # make sure that the link is pointing to something. #set lsoutput = `ls -l sgejob_*/${splitfile}.db2.gz` #echo "WHAT:: $lsoutput" #if ("$lsoutput" == "") then # rm ${splitfile}.db2.gz #endif if (-e ${splitfile}.db2.gz) then echo "${splitfile} has been submitted for generations." continue endif cat << EOF >! script_qsub_${splitfile}.csh #\$ -S /bin/csh #\$ -cwd #\$ -q all.q #\$ -o stdout_${splitfile} #\$ -e stderr_${splitfile} # source enviorment. source ~tbalius/.cshrc_dbgen_corina hostname date set SCRATCH_DIR = /scratch if ! (-d \$SCRATCH_DIR ) then SCRATCH_DIR=/tmp endif set username = `whoami` set TASK_DIR = "\$SCRATCH_DIR/\${username}/\$JOB_ID" echo \$TASK_DIR mkdir -p \${TASK_DIR} cd \${TASK_DIR} pwd cp ${workdir}/${splitfile} . # note that the pining script's inputs should not be in quotes ( or ""). /nfs/home/tbalius/zzz.github/DOCK/common/on-one-core - ${DOCKBASE}/ligand/generate/build_database_ligand.sh -H $ph ${splitfile} cd ${workdir} mkdir sgejob_\${JOB_ID}_${splitfile} echo copying ls -l \${TASK_DIR}/finished/*/*.db2.gz ls -l \${TASK_DIR}/finished/*/*.db.gz # copy finshed directory mv \${TASK_DIR}/finished/ sgejob_\${JOB_ID}_${splitfile} rm -r \${TASK_DIR} EOF while ( `qstat -u tbalius | wc -l ` > 10 ) sleep 10 end qsub script_qsub_${splitfile}.csh #exit end
set up environment: jchem mitools, DOCK3.7, ZINC, corina
source /nfs/soft/jchem/current/env.csh source /nfs/soft/mitools/env.csh source /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk/env.csh deactivate source /nfs/soft/www/apps/zinc15/envs/edge/env.csh source /nfs/soft/corina/current/env.csh setenv EMBED_PROTOMERS_3D_EXE $DOCKBASE/ligand/3D/embed3d_corina.sh setenv ZINC_CONFIG_ENV admin setenv ZINC_CONFIG_SETUP_SKIP blueprints
step 2. csh cmd mysmiles.ism
# put any change in the BUILD_ENVIRONMENT source /nfs/soft/dock/versions/dock37/DOCK-3.7-trunk/env.csh source /nfs/soft/corina/current/env.csh setenv EMBED_PROTOMERS_3D_EXE $DOCKBASE/ligand/3D/embed3d_corina.sh setenv BUILD_ENVIRONMENT /nfs/home/xyz/bin/dockenvNS.sh # /nfs/soft/tools/utils/qsub-slice/qsub-mr-meta -tc 10 -L 100000 --map-instance-script \ "/nfs/scratch/A/xyz/protomer/qsub-mr-map.sh" -s $BUILD_ENVIRONMENT \ -l 300 $1 $DOCKBASE/ligand/generate/build_database_ligand.sh
If you have any trouble using this (which the procedure used to build ZINC between July 14, 2016 and Nov 14, 2016 (ongoing), please contact me. I would be happy to help debug, as it will help us to make this procedure more robust.