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

Automatically dock entire directory contents #250

Closed atillack closed 5 months ago

atillack commented 6 months ago

The PR allows one to specify a directory with pdbqt files to create a file list with the --filelist, -B command line argument.

If a grid file (with receptor pdbqt) and/or a flexible residue pdbqt are specified both are automatically excluded should they be contained in the specified directory.

In order to be as cross-platform as possible, this PR switches compilation from C++11 to C++17 standard as filesystem functions were excruciating before that. This will exclude some by now ancient compilers (i.e. GCC < 5.0.0) so once the PR is merged we should increase the version number.

diogomart commented 5 months ago

I noticed now that #233 introduced a behavior change: --resnam can't be used to specify an output filename, it specifies an output directory. Was this intended?

Before #233, the following would write files result.dlg and result.xml.

$ ./autodock_gpu_128wi-5f73e1b -M rec.maps.fld -L 09N_ideal.pdbqt -N result
AutoDock-GPU version: v1.5.3-61-g5f73e1b6a5ea32fcd87c5c5506ba8c137f2df4b8

Running 1 docking calculation

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:                           NVIDIA RTX A5000
(Thread 30 is setting up Job #1)

Error: Specified directory "result" for output files with `--resnam` does not exist.
atillack commented 5 months ago

@diogomart Thanks for finding it, that's a regression. I'll add a fix for it soon.

diogomart commented 5 months ago

Run a simple test with two ligands in a folder and it works as expected. Thanks! :+1:

atillack commented 5 months ago

@althea-hansel @diogomart Thank you! Merging.