f84b6e9078e255712786e591d9a13d340a918d99
[pkg-boinc/boinc-server-autodock.git] / bin / autodockvina_generatework.sh
1 #!/bin/bash
2
3 # (the script is under development)
4
5 set -e
6
7 version=0.0.0
8 if [ "-version" = "$1" -o "--version" = "$1" ]; then
9    echo "$version"
10    exit 1
11 fi
12
13 if [ -z "$BOINC_SOURCEDIR" ]; then BOINC_SOURCEDIR=$(dirname $(realpath $0)); fi
14
15 ## Set configuration parameters
16 if [ -r "$BOINC_SOURCEDIR"/autodockvina_set_config.sh ]; then
17    . "$BOINC_SOURCEDIR"/autodockvina_set_config.sh
18 fi
19
20 if [ "-h" = "$1" -o "-help" = "$1" -o "--help" = "$1" ]; then
21         cat <<EOHELP
22 $(basename $0|tr "a-z" "A-Z")                   BOINC-SERVER-AUTODOCK                   $(basename $0|tr "a-z" "A-Z")
23
24 NAME
25
26   $(basename $0) - generation of BOINC workunits for the AutoDock Vina application
27
28 SYNOPSIS
29
30   $(basename $0) [--help]
31
32 DESCRIPTION
33
34   This script generates a single BOINC workunit with a new unique batch number.
35   For high throughput screening this is not what you want.
36
37
38 SEE ALSO
39
40   TODO: mention what should be run for HTS
41
42   http://wiki.debian.org/BOINC
43   http://mgltools.scripps.edu
44   http://autodock.scripps.edu
45
46 COPYRIGHT
47
48   This script is released under the same license as BOINC.
49
50 AUTHORS
51
52   Natalia Nikitina
53
54 EOHELP
55         exit
56 fi
57
58
59 if [ ! -r "$BOINC_SOURCEDIR"/autodockvina_set_config.sh ]; then
60    echo "E: Could not read '$BOINC_SOURCEDIR/autodockvina_set_config.sh'"
61    exit 1
62 fi
63
64 #TODO: replace with the call to get_batch.sh
65 BATCH=`mysql -u $BOINC_DBUSER -p$BOINC_DBPASS -N -s -e "use $BOINC_PROJECTNAME; select MAX(batch) from workunit;" 2> /dev/null` 
66 if [ -z "$BATCH" ]; then
67   echo "E: Error selecting batch number from the database! Please check MySQL connection parameters."
68   exit 1
69 else
70   let BATCH+=1  
71 fi
72
73 cd ${BOINC_INSTALLROOT}/${BOINC_PROJECTNAME}
74 ligand_input=ligand_input_tmp_${i}`date '+%s'`
75 receptor_input=receptor_input_tmp_${i}`date '+%s'`
76 config=config_tmp_${i}`date '+%s'`
77
78 #TODO: make input files the parameters
79 cp ${BOINC_HOMEDIR}/my_autodock_vina_library/ligand.pdbqt $ligand_input
80 cp ${BOINC_HOMEDIR}/my_autodock_vina_library/receptor.pdbqt $receptor_input
81 cp ${BOINC_HOMEDIR}/my_autodock_vina_library/config.txt $config
82
83 mv $ligand_input `sg www-data -c "./bin/dir_hier_path $ligand_input"`
84 echo "I: Created input file $ligand_input..."
85 mv $receptor_input `sg www-data -c "./bin/dir_hier_path $receptor_input"`
86 echo "I: Created input file $receptor_input..."
87 mv $config `sg www-data -c "./bin/dir_hier_path $config"`
88 echo "I: Created input file $config..."
89
90 bin/create_work --appname autodock-vina --batch $BATCH --wu_template templates/autodockvina_wu_template.xml \
91                 --result_template templates/autodockvina_result_template.xml \
92                 --command_line "--receptor receptor.pdbqt --ligand ligand.pdbqt --config config.txt --out vina_result.pdbqt" $ligand_input $receptor_input $config
93
94 echo "I: Workunits were successfully created for batch #$BATCH"
95