Over the last two decades, computationally docking potential protein ligands (e.g., enzyme inhibitors) has become one of the
most widely used strategies in computer aided drug design. While these docking methods were developed, some effort focused on their
user-friendliness up to a point where they can be used by non-experts with nearly no training, somewhat hiding the underlying theory.
However, basic knowledge is still required to avoid pitfalls and misinterpretations of docking experiments. Over the years, we have collected
the common mistakes and necessary information for the proper use of docking programs. In this review, we compiled this data for
non-experts in the field. In a first section, we present the theory of docking and scoring approaches as well as their limitations, followed
by the most recent progress towards the consideration of protein flexibility, water molecules, metal ions, and covalent drugs. In a second
section, we describe what we believe are the necessary steps to ensure optimal docking. More specifically, we present the selection of a
docking program, available databases of small molecules, macromolecules and biological data, the necessary steps for the preparation of
proteins and small molecules, and finally post docking analysis techniques. In the following sections, we compile the sources of biases
and describe docking to nucleic acids.