Self-assembly of viral particles