Information on the molecular structure of the ligand and protein is entered in text format as a list of heavy atoms with their three-dimensional coordinates, since the methods used to visualise the structure of molecules (X-ray crystallography, nuclear magnetic resonance spectroscopy) detect the location of heavy atoms in the molecule without chemical bonds. However, the application of the empirical scoring function requires data on the number and threedimensional position of polar hydrogens, the existence and multiplicity of chemical bonds between atoms, and the ability of these bonds to rotate, giving the ligand molecule flexibility for docking. To solve this problem, the molecule is prepared using algorithms that take into account the chemical bonds. Thus, it is first necessary to restore the multiplicity of bonds between atoms in the input molecules, and then take into account the valences of the atoms, before adding the required number of hydrogens. It is also necessary to calculate the approximate position of the added hydrogen atoms.