Ligand preparation - 20170424

From DISI
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.