Self-Assembly in the Ferritin Nano-Cage Protein Superfamily