ccsb-scripps / AutoDock-GPU

AutoDock for GPUs and other accelerators
https://ccsb.scripps.edu/autodock
GNU General Public License v2.0
366 stars 101 forks source link

Relative path for dpf import and batch files #225

Closed atillack closed 1 year ago

atillack commented 1 year ago

This PR adds treatment of relative paths to both dpf import and batch files.

With this PR, when a ligand, grid map, etc. are specified without absolute paths in either a dpf or a batch file when called in from a different location (i.e. autodock_gpu_128wi -B screenA/file.lst) the relative path of the dpf or batch file is prepended to each entry that does not have an absolute path.

While the changes itself should be relatively minor, extensive testing in multiple situations will be required.

diogomart commented 1 year ago

Seems like receptor and flexres filenames get cropped at an underscore which is part of the filename.

$ cat ligs-inert/batch2-d33e098.filelist
../rec/receptor_rigid.maps.fld
../rec/receptor_flex.pdbqt-
../ligs-reactive/sufex1.pdbqt
../out-d33e098/b2-r-1
../ligs-reactive/sufex2.pdbqt
../out-d33e098/b2-r-2
sufex1.pdbqt
../out-d33e098/b2-i-1
sufex2.pdbqt
../out-d33e098/b2-i-2

$ ./adgpu-d33e098-PR225 -B ligs-inert/batch2-d33e098.filelist -T F2,F3,F1=F/P1,P3,P2=P/H6,H5,1H5,H4=HD/C6,C5,C4=Cl/1O4,O4,O6,O5=OA/I2,I1,I3=I/N6,N5,N4=NA/S8,S9,S7=Si/B2,B3,B1=B/S2,S1,S3=S/C2,1C3,C1,1C2,C3=C/S6,S4,S5=SA/B7,B9,B8=BR/B6,B4,B5=Br/A1,A2,A3=A/C9,C8,C7=CL/N1,N3,N2=N -I modpairs.dpf
AutoDock-GPU version: v1.5.3-50-gd33e098821de785deb2547bd8c7fdbf37c4eecb7

Using 4 OpenMP threads

Running 4 docking calculations

Kernel source used for development:      ./device/calcenergy.cl                  
Kernel string used for building:         ./host/inc/stringify.h                  
Kernel compilation flags:                 -I ./device -I ./common -DN128WI   -cl-mad-enable
OpenCL device:                           Quadro RTX 6000
(Thread 2 is setting up Job #2)
(Thread 1 is setting up Job #1)
(Thread 4 is setting up Job #4)
(Thread 5 is setting up Job #3)
Error: Can't open flexibe residue data file ligs-inert/../rec/receptor.
Error: Can't open flexibe residue data file ligs-inert/../rec/receptor.

Error in init_liganddata, stopped job.

Error in setup of Job #1:
(   Grid map file: ligs-inert/../rec/receptor_rigid.maps.fld )
(   Ligand file: ligs-inert/../ligs-reactive/sufex1.pdbqt )
(   Flexible residue: ligs-inert/../rec/receptor )
Error: Can't open flexibe residue data file ligs-inert/../rec/receptor.
atillack commented 1 year ago

@diogomart Thank you - good catch!

diogomart commented 1 year ago

New problem: relative path not prefixed to output (resnam)

$ cat ligs-inert/batch2-dec719d.filelist
../rec/receptor_rigid.maps.fld
../rec/receptor_flex.pdbqt-
../ligs-reactive/sufex1.pdbqt
../out-dec719d/b2-r-1
../ligs-reactive/sufex2.pdbqt
../out-dec719d/b2-r-2
sufex1.pdbqt
../out-dec719d/b2-i-1
sufex2.pdbqt
../out-dec719d/b2-i-2
$ ./adgpu-dec719d-PR225 -B ligs-inert/batch2-dec719d.filelist  -I modpairs.dpf -T F2,F3,F1=F/P1,P3,P2=P/H6,H5,1H5,H4=HD/C6,C5,C4=Cl/1O4,O4,O6,O5=OA/I2,I1,I3=I/N6,N5,N4=NA/S8,S9,S7=Si/B2,B3,B1=B/S2,S1,S3=S/C2,1C3,C1,1C2,C3=C/S6,S4,S5=SA/B7,B9,B8=BR/B6,B4,B5=Br/A1,A2,A3=A/C9,C8,C7=CL/N1,N3,N2=N
AutoDock-GPU version: v1.5.3-51-gdec719d057145d4069ef0d86a8136a0e9fbb8b61

Using 4 OpenMP threads

Running 4 docking calculations

Kernel source used for development:      ./device/calcenergy.cl                  
Kernel string used for building:         ./host/inc/stringify.h                  
Kernel compilation flags:                 -I ./device -I ./common -DN128WI   -cl-mad-enable
OpenCL device:                           Quadro RTX 6000
(Thread 4 is setting up Job #1)
(Thread 2 is setting up Job #2)
(Thread 3 is setting up Job #4)
(Thread 1 is setting up Job #3)

Error: Specified directory "../out-dec719d" for output files (e.g. with `--resnam`) does not exist.

Error: Specified directory "../out-dec719d" for output files (e.g. with `--resnam`) does not exist.

Error: Specified directory "../out-dec719d" for output files (e.g. with `--resnam`) does not exist.

Error: Specified directory "../out-dec719d" for output files (e.g. with `--resnam`) does not exist.
Segmentation fault
atillack commented 1 year ago

@diogomart Thank you! Fixed.