Self-assembling proteins