Engineering Artificial Protein Assemblies Based On Natural Protein Oligomeric Domains