self assembly of S-layer proteins