Functionalization of viral protein assemblies by self-assembly reactions