Generative modeling for protein structures