Nanohedra: Using symmetry to design self assembling protein cages, layers, crystals, and filaments | Synapse