Computational characterisation of protein interaction sites: from small ligand pockets to large domain interfaces