Protein-protein interactions: Interface analysis, binding free energy calculation and interaction design