PSOVina: Fast Protein-Ligand Docking Tool based on PSO and AutoDock Vina

A fast docking tool based on the efficient optimization algorithm of Particle Swarm Intelligence and the framework of AutoDock Vina. Based on the initial PSO implementation, our PSOVina method has undergone several important improvements to enhance the docking accuary and achieve remarkable efficiency as compared to the original AutoDock Vina.


  • (2018-06-07) PSOVina-2.0 An improved PSOVina2LS with Singer chaotic function embedded into the PSO global search algorithm to improve search diversity and improve pose prediction. This version has been extensively tested by four docking sets and two DUD-E virtual screening sets.
  • (2018-05-04) PSOVina2LS uses 2-stage local search to effectively reduce time for expensive local search.
  • (2018-06-18) PSOVina-1.1 is now patched to be compatible with newer version of Boost, tested with boost 1.59.
  • (2016-05-10) PSOVina-1.0 is released, try it out for your next docking!


(Freely available for academic use only, please read our Open Source License)

Required Software

For successful compilation, please install Boost (version 1.59 or above). For preparing molecules for docking, please install AutoDockTools (ADT).


The installation basically follows the installation of AutoDock Vina:

  1. unpack the files
  2. cd psovina-x.x/build/{your-platform}/release
  3. modify Makefile to suit your system setting
  4. type "make" to compile

The binary psovina will be generated at the current directory. You can copy this binary to a directory in your PATH e.g. /usr/local/bin, or add the path of the current directory to your PATH.

Running PSOVina

You can run psovina as the way you run vina but additional three parameters (optional) are used to specify how the PSO algorithm perform searching:

--num_particles arg (=8)
Number of particles
--w arg (=0.36)
Inertia weight
--c1 arg (=0.99)
Cognitive weight
--c2 arg (=0.99)
Social weight

For example, docking Kifunensine in the Mannosidase enzyme (PDBID 1ps3 from the PDBbind v2012 dataset) using PSOVina with default PSO parameters in a 8-core computer and obtain the lowest energy prediction:
% {path-to-AutoDockTools}/ -l 1ps3_ligand.mol2 -o 1ps3_ligand.pdbqt -A 'hydrogens' -U 'nphs_lps_waters'
% {path-to-AutoDockTools}/ -r 1ps3_protein.pdb -o 1ps3_protein.pdbqt -A 'hydrogens' -U 'nphs_lps_waters'
% {path-to-psovina}/psovina --receptor 1ps3_protein.pdbqt --ligand 1ps3_ligand.pdbqt --center_x 31.951 --center_y 65.5053 --center_z 7.63888 --size_x 33.452 --size_y 27.612 --size_z 35.136 --num_modes 1 --cpu 8
More test cases can be available soon.

Develop PSOVina

If you are interested in the source code of PSOVina for any academic purposes, please note that the following files were newly developedin our work or modified based on Vina:


Please cite our paper if you have used PSOVina or its variants. It would also be nice to let us know that you found PSOVina useful by sending us an email:

For PSOVina 2.0:

Hio Kuan Tai, Siti Azma Jusoh, and Shirley W. I. Siu*.
Chaos-embedded particle swarm optimization approach for protein-ligand docking and virtual screening.

Journal of Cheminformatics 10:62, 2018.

For PSOVina2LS:

Hio Kuan Tai, Hin Lin and Shirley W. I. Siu*.
Improving the efficiency of PSOVina for protein-ligand docking by two-stage local search.

The 2016 IEEE Congress on Evolutionary Computation (CEC), Vancouver, BC, 2016, pp. 770-777.

For PSOVina 1.0:

Marcus C. K. Ng, Simon Fong, and Shirley W. I. Siu*.
PSOVina: The Hybrid Particle Swarm Optimization Algorithm for Protein-Ligand Docking.

Journal of Bioinformatics and Computational Biology 13 (3), 1541007, 2015.

Contact Us

If you have further questions, please contact:


  • Giotto Tai
  • Allan Lin
  • Marcus C. K. Ng
  • Edison Un (Web Developer)

Project P.I.:

  • Shirley W. I. Siu