# How to make idealized infinite alpha helix or beta sheet?

I'm interested in studying some simple periodic model systems representing proteins. For that I'd like to make pdb files of an alpha helix or beta sheet with idealized coordinates which is infinitely periodic. For an alpha helix it would be just periodic along the axis, and for a beta sheet it should be flat and periodic in two dimensions, with the unit cell info in the pdb (CRYST1 record) set correctly.

If possible, I'd like to be able to make these structures programmatically, with any sequence of amino acids I want; the unit cell would just be made of a repeat of both the sequence and geometry. Since swapping side chains is relatively easy, some pre-made infinite periodic systems of poly-alanine would be a good start.

I know of a few tools which do part of this:

• PyMOL has the Builder interface which allows making an idealized alpha helix or single strand of a beta sheet. It doesn't seem to have the ability to make a whole beta sheet - I couldn't find a function that would put two strands next to each other in the right geometry. It also doesn't seem to have any ability to get the right unit cell vectors.
• UCSF Chimera has the addaa command which also builds an alpha helix or single strand of a beta sheet. Same issues - no way to put strands next to each other, and no unit cell.

Is there another tool which would do this out of the box? If not, what's a good way to take what PyMOL or Chimera outputs and make it into a periodic system?

P.S. Possibly tricky parts: if the periodicity of the helix can be described as a coordinate transform M*x+v which can include rotation and translation, then any number of residues (including one) can form an infinite system. But if the periodicity is made just using translations (a triclinic Bravais lattice), then it is necessary to find a way to reproduce an integer number of turns using a translation along the axis, which may not be always possible. If a residue corresponds to exactly 100 degrees turn, then 36 residues = 3600 degrees = 10 turns, which would also repeat using translation. But if not exactly 100 degrees, it may not have an exact repeat at all. Beta sheets are easier since they are already made by translation.