Designing supramolecular protein assemblies.