Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using AutoDock GPU for large docking project #288

Open
KirkDCO opened this issue Jan 1, 2025 · 10 comments
Open

Using AutoDock GPU for large docking project #288

KirkDCO opened this issue Jan 1, 2025 · 10 comments

Comments

@KirkDCO
Copy link

KirkDCO commented Jan 1, 2025

I'm working on a project in which I would like to screen a very large number of structures with AutoDock. I have a good target structure with a well defined binding site to use for docking. The challenge is that I want to dock millions of candidate structures.

For such a task, what settings and optimizations should I consider for AutoDock-gpu? Obviously speed of critical importance, but I don't want to sacrifice quality of results.

@diogomart
Copy link
Member

Just use the defaults, we optimized them for this goal. I would add -C 1 to calculate distance based interactions that are useful for filtering with ringtail https://ringtail.readthedocs.io/

@diogomart
Copy link
Member

Be sure to pass a large number of ligands at once, that has a significant impact on runtime.

@KirkDCO
Copy link
Author

KirkDCO commented Jan 1, 2025 via email

@atillack
Copy link
Member

atillack commented Jan 2, 2025

You can use the batch file feature -B (also described close to the end of the README.md file) for this purpose.

When you compiled with OVERLAP=ON (default since v1.6) ligand reading and results processing overlap with docking to maximize throughput. Also, when you have multiple GPUs you can run with -D all on all available GPUs simultaneously.

Additionally, I also added the ability to -B to be passed a list of ligand files, i.e. -B ligandsA/*.pdbqt. Just keep in mind that command line expansions are handled by the shell which limits the buffer space so it will be a good idea (also for other reasons like file system efficiency) to not have more than a couple tens of thousands of ligands in one folder. The output files in this mode will have the same base name as the original ligands but with dlg and/or xml endings.

@KirkDCO
Copy link
Author

KirkDCO commented Jan 2, 2025

Ah, I didn't read the README.md thoroughly. 8^( Thank you for pointing out the batch file option.

Do I understand correctly, that if I have only one target and many ligands, the batch file can look like this?

./receptor1.maps.fld
./ligand1.pdbqt
Ligand 1
./ligand2.pdbqt
Ligand 2
./ligand3.pdbqt
Ligand 3

Thank you also for pointing out the command line expansion peril. With >500,000 structures, I will opt for the batch file.

@atillack
Copy link
Member

atillack commented Jan 2, 2025

Yes, also if you don't specify an output base name ("Ligand 1", etc.) it'll use the ligand pdbqt ones, so this is the "minimum viable batch file":

receptor.maps.fld
ligand1.pdbqt
ligand2.pdbqt
ligand3.pdbqt

(which also is equivalent to -M receptor.maps.fld -B ligand1.pdbqt ligand2.pdbqt ligand3.pdbqt)

@KirkDCO
Copy link
Author

KirkDCO commented Jan 2, 2025

Excellent! I'll give this a try.

I plan to gather these valuable tips and other details I find into a cookbook style document. I'll share it once I have something of substance, if there's interest in adding it to the documentation.

@diogomart
Copy link
Member

Yes, that would be awesome!

@KirkDCO
Copy link
Author

KirkDCO commented Jan 4, 2025

Just a quick follow up for anyone that finds this thread.

I just a timing test docking 1000 structures. Running AutoDock-GPU repeatedly with one structure at a time and on one GPU took about 44 minutes.

Using the -B batch file option described above, reduced that by about 50%, and adding -D all (with 2 RTX 4090 GPUs available) reduced it by another 50%. Now 1000 structures takes about 9 minutes. !!!

Thanks for these great tips @diogomart and @atillack !!

@diogomart
Copy link
Member

Thanks for sharing the speedup you observed!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants