Structure-based virtual screening (SBVS) uses the 3D structure of a target protein to screen large compound libraries for small molecules likely to bind. "Explicit" SBVS uses protein-ligand docking to predict the binding mode of each compound within the active site, and a scoring function to predict the strength of binding . While it is possible to compute the binding affinity of a compound using more rigorous methods such as free energy perturbation , their computational cost makes them impractical for screening libraries of millions of compounds 7 . To save time, in SBVS, more approximate scoring functions designed to estimate the binding affinity are used. Scoring functions are typically employed for three tasks in SBVS: correctly identifying the binding mode of a ligand (pose prediction or "docking"); classifying molecules as either active or inactive ("virtual screening"); and ranking ligands in order of their binding affinity for a given protein target ("scoring"). Popular protein-ligand docking packages, such as GOLD , Glide 9,10 , ICM 11 , FlexX 12 , Surflex 13 , and the AutoDock family , rely on a single scoring function to perform all three tasks simultaneously. These scoring functions make use of molecular force fields, statistical potentials, or linear combinations of empirical terms to assign a score to a receptor-ligand complex, and are often collectively referred to as 'classical' scoring functions. While docking methods have been used successfully to predict binding modes, and for virtual screening, correctly ranking ligands by their binding affinity for a protein remains extremely challenging .