-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathrun.007a.cartesian_min.csh
executable file
·358 lines (311 loc) · 17.3 KB
/
run.007a.cartesian_min.csh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
#!/bin/tcsh -fe
#
# After docking all of the ligands from the library to the grid, minimize and rescore each of them
# in Cartesian space.
#
### Set some variables manually
set attractive = "6"
set repulsive = "12"
### Set some paths
set dockdir = "${DOCKHOMEWORK}/bin"
set amberdir = "${AMBERHOMEWORK}/bin"
set moedir = "${MOEHOMEWORK}/bin"
set rootdir = "${VS_ROOTDIR}"
set mpidir = "${VS_MPIDIR}/bin"
set masterdir = "${rootdir}/zzz.master"
set paramdir = "${rootdir}/zzz.parameters"
set scriptdir = "${rootdir}/zzz.scripts"
set zincdir = "${rootdir}/zzz.zinclibs"
set system = "${VS_SYSTEM}"
set vendor = "${VS_VENDOR}"
### Choose parameters for cluster
### LIRED 24 ppn
### SeaWulf 28 ppn
### Rizzo 24 ppn
set wcl = 48:00:00
set nodes = 4
set ppn = 28
set queue = "long"
@ numprocs = (${nodes} * ${ppn})
### Make the appropriate directory. If it already exists, remove previous dock results from only
### the same vendor.
if (! -e ${rootdir}/${system}/007.cartesian-min) then
mkdir -p ${rootdir}/${system}/007.cartesian-min/
endif
rm -rf ${rootdir}/${system}/007.cartesian-min/${vendor}
mkdir -p ${rootdir}/${system}/007.cartesian-min/${vendor}
cd ${rootdir}/${system}/007.cartesian-min/${vendor}
### Count the number of chunks
set num_chunks = `ls -l ${rootdir}/${system}/005.zinclibs/${vendor}/ | grep chunk | grep mol2 | wc -l`
echo "num_chunks = ${num_chunks}"
set chunk = "0"
echo "Concatenating all of the chunks together..."
### Iterate over each chunk, concatenate them together
while (${chunk} < ${num_chunks})
if ( -e ${rootdir}/${system}/006.dock-to-grid/${vendor}/chunk${chunk}/${vendor}.${chunk}.output_scored.mol2 ) then
cat ${rootdir}/${system}/006.dock-to-grid/${vendor}/chunk${chunk}/${vendor}.${chunk}.output_scored.mol2 >> input.mol2
else
echo "Could not find an output mol2 file in ${rootdir}/${system}/006.dock-to-grid/${vendor}/${chunk}"
endif
@ chunk++
end
### Cat on the leftover chunk, if it exists
if ( -e ${rootdir}/${system}/006.dock-to-grid/${vendor}/leftover/${vendor}.leftover.output_scored.mol2 ) then
cat ${rootdir}/${system}/006.dock-to-grid/${vendor}/leftover/${vendor}.leftover.output_scored.mol2 >> input.mol2
endif
### Minimize the reference ligand position in the context of the receptor
echo "Minimizing reference ligand..."
##################################################
cat <<EOF >${system}.${vendor}.reference_minimization.in
conformer_search_type rigid
use_internal_energy yes
internal_energy_rep_exp 12
internal_energy_cutoff 100
ligand_atom_file ${rootdir}/${system}/001.lig-prep/${system}.lig.python.mol2
limit_max_ligands no
skip_molecule no
read_mol_solvation no
calculate_rmsd yes
use_rmsd_reference_mol yes
rmsd_reference_filename ${rootdir}/${system}/001.lig-prep/${system}.lig.python.mol2
use_database_filter no
orient_ligand no
bump_filter no
score_molecules yes
contact_score_primary no
contact_score_secondary no
grid_score_primary no
grid_score_secondary no
multigrid_score_primary no
multigrid_score_secondary no
dock3.5_score_primary no
dock3.5_score_secondary no
continuous_score_primary yes
continuous_score_secondary no
cont_score_rec_filename ${rootdir}/${system}/002.rec-prep/${system}.rec.clean.mol2
cont_score_att_exp ${attractive}
cont_score_rep_exp ${repulsive}
cont_score_rep_rad_scale 1
cont_score_use_dist_dep_dielectric yes
cont_score_dielectric 4.0
cont_score_vdw_scale 1
cont_score_es_scale 1
footprint_similarity_score_secondary no
pharmacophore_score_score_secondary no
descriptor_score_secondary no
gbsa_zou_score_secondary no
gbsa_hawkins_score_secondary no
SASA_score_secondary no
amber_score_secondary no
minimize_ligand yes
simplex_max_iterations 1000
simplex_tors_premin_iterations 0
simplex_max_cycles 1
simplex_score_converge 0.1
simplex_cycle_converge 1.0
simplex_trans_step 1.0
simplex_rot_step 0.1
simplex_tors_step 10.0
simplex_random_seed 0
simplex_restraint_min yes
simplex_coefficient_restraint 5.0
atom_model all
vdw_defn_file ${paramdir}/vdw_AMBER_parm99.defn
flex_defn_file ${paramdir}/flex.defn
flex_drive_file ${paramdir}/flex_drive.tbl
ligand_outfile_prefix output
write_orientations no
num_scored_conformers 1
rank_ligands no
EOF
##################################################
### Execute dock on the headnode
${dockdir}/dock6 -i ${system}.${vendor}.reference_minimization.in -o ${system}.${vendor}.reference_minimization.out
mv output_scored.mol2 ${system}.lig.python.min.mol2
### Write footprints for multigrids later
###########################################################################################
cat <<EOF >${system}.footprint_rescore.in
conformer_search_type rigid
use_internal_energy no
ligand_atom_file ${system}.lig.python.min.mol2
limit_max_ligands no
skip_molecule no
read_mol_solvation no
calculate_rmsd no
use_database_filter no
orient_ligand no
bump_filter no
score_molecules yes
contact_score_primary no
contact_score_secondary no
grid_score_primary no
grid_score_secondary no
multigrid_score_primary no
multigrid_score_secondary no
dock3.5_score_primary no
dock3.5_score_secondary no
continuous_score_primary no
continuous_score_secondary no
footprint_similarity_score_primary yes
footprint_similarity_score_secondary no
fps_score_use_footprint_reference_mol2 yes
fps_score_footprint_reference_mol2_filename ${system}.lig.python.min.mol2
fps_score_foot_compare_type Euclidean
fps_score_normalize_foot no
fps_score_foot_comp_all_residue no
fps_score_choose_foot_range_type threshold
fps_score_vdw_threshold 0.5
fps_score_es_threshold 0.2
fps_score_hb_threshold 0.5
fps_score_use_remainder yes
fps_score_receptor_filename ${rootdir}/${system}/002.rec-prep/${system}.rec.clean.mol2
fps_score_vdw_att_exp 6
fps_score_vdw_rep_exp 12
fps_score_vdw_rep_rad_scale 1
fps_score_use_distance_dependent_dielectric yes
fps_score_dielectric 4.0
fps_score_vdw_fp_scale 1
fps_score_es_fp_scale 1
fps_score_hb_fp_scale 0
pharmacophore_score_secondary no
descriptor_score_secondary no
gbsa_zou_score_secondary no
gbsa_hawkins_score_secondary no
SASA_score_secondary no
amber_score_secondary no
minimize_ligand no
atom_model all
vdw_defn_file ${paramdir}/vdw_AMBER_parm99.defn
flex_defn_file ${paramdir}/flex.defn
flex_drive_file ${paramdir}/flex_drive.tbl
ligand_outfile_prefix output
write_footprints yes
write_hbonds no
write_orientations no
num_scored_conformers 1
rank_ligands no
EOF
#################################################
### Create primary residues dat file
${dockdir}/dock6 -i ${system}.footprint_rescore.in -o ${system}.footprint_rescore.out
cp ${system}.footprint_rescore.out footprint_rescore.out
###########################################################################################
grep -A 1 "range_union" footprint_rescore.out | grep -v "range_union" | grep -v "\-" | sed -e '{s/,/\n/g}' | sed -e '{s/ //g}' | sed '/^$/d' | sort -n | uniq > temp.dat
foreach i ("`cat temp.dat`")
printf "%0*d\n" 3 $i >> primary_residues.dat
end
foreach r ("`cat temp.dat`")
grep " $r " output_footprint_scored.txt | awk -v temp=$r '{if ($2 == temp) print $0;}' | awk '{print $1 " " $3 " " $4}' >> reference.txt
end
grep "remainder" output_footprint_scored.txt | sed -e '{s/,/ /g}' | tr -d '\n' | awk '{print $2 " " $3 " " $6}' >> reference.txt
rm temp.dat
cp output_footprint_scored.txt ${system}.footprint.txt
#EOF
###########################################################################################
cp primary_residues.dat ${system}.primary_residues.dat
mv reference.txt ${system}.reference.txt
### Write the dock.in file
##################################################
cat <<EOF >${system}.${vendor}.cartesian_min.in
conformer_search_type rigid
use_internal_energy yes
internal_energy_rep_exp 12
internal_energy_cutoff 100.0
ligand_atom_file input.mol2
limit_max_ligands no
skip_molecule no
read_mol_solvation no
calculate_rmsd no
use_database_filter no
orient_ligand no
bump_filter no
score_molecules yes
contact_score_primary no
contact_score_secondary no
grid_score_primary no
grid_score_secondary no
multigrid_score_primary no
multigrid_score_secondary no
dock3.5_score_primary no
dock3.5_score_secondary no
continuous_score_primary yes
continuous_score_secondary no
cont_score_rec_filename ${rootdir}/${system}/002.rec-prep/${system}.rec.clean.mol2
cont_score_att_exp ${attractive}
cont_score_rep_exp ${repulsive}
cont_score_rep_rad_scale 1
cont_score_use_dist_dep_dielectric yes
cont_score_dielectric 4.0
cont_score_vdw_scale 1
cont_score_es_scale 1
footprint_similarity_score_secondary no
pharmacophore_score_secondary no
descriptor_score_secondary no
gbsa_zou_score_secondary no
gbsa_hawkins_score_secondary no
SASA_score_secondary no
amber_score_secondary no
minimize_ligand yes
simplex_max_iterations 1000
simplex_tors_premin_iterations 0
simplex_max_cycles 1
simplex_score_converge 0.1
simplex_cycle_converge 1.0
simplex_trans_step 1.0
simplex_rot_step 0.1
simplex_tors_step 10.0
simplex_random_seed 0
simplex_restraint_min yes
simplex_coefficient_restraint 5.0
atom_model all
vdw_defn_file ${paramdir}/vdw_AMBER_parm99.defn
flex_defn_file ${paramdir}/flex.defn
flex_drive_file ${paramdir}/flex_drive.tbl
ligand_outfile_prefix ${vendor}.output
write_orientations no
num_scored_conformers 1
rank_ligands no
EOF
##################################################
### Write the Cluster submit file
##################################################
if (`hostname -f` == "login1.cm.cluster" || `hostname -f` == "login2.cm.cluster" ) then
cat <<EOF >${system}.${vendor}.cartesian_min.qsub.csh
#!/bin/tcsh
#PBS -l walltime=${wcl}
#PBS -l nodes=${nodes}:ppn=${ppn}
#PBS -N ${system}.${vendor}.cartmin
#PBS -V
#PBS -q ${queue}
cd ${rootdir}/${system}/007.cartesian-min/${vendor}/
${mpidir}/mpirun -np ${numprocs} \
${dockdir}/dock6.mpi -v \
-i ${system}.${vendor}.cartesian_min.in \
-o ${system}.${vendor}.cartesian_min.out
EOF
##################################################
### Write the Cluster submit file
##################################################
###if (`hostname -f` == "rizzo.cm.cluster")
else
cat <<EOF >${system}.${vendor}.cartesian_min.qsub.csh
#!/bin/tcsh
#SBATCH --time=${wcl}
#SBATCH --nodes=${nodes}
#SBATCH --ntasks=24
#SBATCH --job-name=${system}.${vendor}.cartmin
#SBATCH --output=${system}.${vendor}.cartmin
#SBATCH -p rn-long
cd ${rootdir}/${system}/007.cartesian-min/${vendor}/
${mpidir}/mpirun -np ${numprocs} \
${dockdir}/dock6.mpi -v \
-i ${system}.${vendor}.cartesian_min.in \
-o ${system}.${vendor}.cartesian_min.out
EOF
endif
##################################################
### Submit the job
echo "Submitting ${system}.${vendor}.cartesian_min "
qsub ${system}.${vendor}.cartesian_min.qsub.csh > & ${system}.${vendor}.cartesian_min.qsub.log
date
exit