A structural perspective on protein–protein interactions