[Chimera-users] Using sym command to generate icosahedral cage

Yen-Ting Lai yentingl at gmail.com
Tue Feb 25 16:11:56 PST 2014

Hi Tom,

Thanks a lot for the instructions. Your procedure to dock the pentamer and
dimer to the icosahedral cage is very straight forward. I wish I asked
before I implemented mine. My current procedure (written in Perl and
Python, plus a little bit of Chimera command script) is more cumbersome (I
am not trained as a programmer), but it seems able to spit out some
plausible designs. Let's assume I have a design that has perfect geometry
(the two axes intersected at a correct, precise angle). So all I need to do
now is to orient the two symmetry axes to one of the canonical orientation
(n25, for example).

My plan to do this will be:
first, move the point where the two axes intersected (this is also the
center of the whole cage) to the origin
second, calculate the cross product of the 5-fold axis of the designed
monomer and the z-axis, this will be the rotation axis to align the 5-fold
axis to z-axis.
then the dot product of the 5-fold axis and the z-axis will be calculated
to derive the angle needs to be rotated to align 5-fold axis to z-axis.
After these steps, I'll need to align a 2-fold axis to the y-axis, this
2-fold axis, however is not the 2-fold of the monomer that I am working on.
As can be see in many of the axes relations in icosahedron (one
the 2-fold axis to be oriented can be derived from the known 5-fold and
2-fold axes of the monomers.
Finally, I can use the z-axis as the rotation angle and align the target
2-fold axis to the y-axis.

Once these are done, I'll use the sym command to generate the complete cage.

I estimate these will take me about a week to do. I'll give update when I
manage to do so, or when I get stuck.

Thanks again!


On Tue, Feb 25, 2014 at 10:40 AM, Tom Goddard <goddard at sonic.net> wrote:

> Hi Yen,
>   That's neat.  Here are some ideas about how to build an icosahedral
> model from a fusion protein of a protein A that likes to form pentamers
> with another protein B that likes to form dimers.  An icosahedron has 12
> 5-fold symmetry axes and 30 2-fold symmetry axes.  So 60 monomers of the A
> protein to form the pentamers, and 60 monomers of the B protein to make the
> dimers.  So joining one A monomer to one B monomer looks promising.  The
> trick to making the icosahedral model though seems to be that the pentamer
> 5-fold symmetry axis and a dimer 2-fold symmetry axis in an icosahedron
> have a precise relative orientation to one another, both axes passing
> through the center of the icosahedron, and a certain angle between them.
>  So if first you make a fusion PDB model then try to make an icosahedron,
> it is unlikely you are going to get both the native pentamers and dimers
> unless the fusion combines the two monomers in exactly the right relative
> orientation.  So some of the problem seems to be how to get the two in the
> right relative orientation.
>   So here is how I would do it in Chimera.  The basic plan would be to
> make an icoshedral cage with one atom at each vertex.  Use that to align a
> pentamer crystal structure of protein A to one pentamer of the cage and use
> the sym command to copy it so I have 12 pentamers in an icosahedral
> arrangement.  Then do the same with a dimer crystal structure of protein B
> with its 2-fold axis aligned to a 2-fold axis of the cage and use sym to
> duplicate it.  So now I have the pentamer and dimer proteins in an
> icosahedral arrangement.  But there are 4 adjustable parameters in the
> previous description.  First I can radially move the pentamers and I can
> radially move the dimers from the center of the cage (2 parameters).  If I
> place the pentamers and dimers at too small a radius then the molecules
> clash with each other.  If I place them at too large a radius then the
> dimers and pentamers don't even touch each other.  Also I can rotate a
> pentamer about its 5-fold axis (and all other pentamers rotated by same
> amount) by any angle.  And likewise I can rotate a dimer about its 2-fold
> axis.  Those are the other 2 parameters.  By using the sym command auto
> update option I can do radial motions and rotations with Chimera commands
> (move, turn) and see how the whole icosahedral arrangement changes.  What I
> would be looking for is parameters that put the an A monomer (from a
> pentamer) close to a B monomer (from a dimer) so that I could join the two
> by a linker in the fusion protein.  Then I could save that A monomer and B
> monomer in the correct relative positions and build a linker (maybe with
> Chimera Build Structure tool and energy minimization) to join them.
>   Here are some of the details of the above procedure.  I'm going to just
> sketch them because it would be an extremely long email to explain every
> detail.  To make an icosahedral cage I'd use the "shape icosahedron"
> command (e.g. "shape icos divisions 1 mesh true radius 100").  That makes a
> surface which is not usable for aligning PDB models, so I'd convert it to a
> fake molecule with atoms at the icosahedron vertices with the "meshmol"
> command (e.g. "meshmol #0 2").  To align a pentamer PDB model to it with
> chains A,B,C,D,E I'd select 5 cage atoms (in counter-clockwise order) using
> ctrl-click and shift-ctrl-click then use a command like "match #1:5.A-E at CAsel" to align the CA atom of residue 5 of each monomer to one cage atom.
>  Aligning a dimer is slightly trickier.  Each dimer axis passes through an
> icosahedral cage edge.  I'd use the vertices of two triangles joined at
> that edge and match those to 4 atoms in the dimers (2 equivalent atoms in
> each monomer).  Now it would really simplify model building if my crystal
> structure pentamer had symmetry axis on z and passed through 0,0,0.  But
> the x-ray coordinates won't have that.  So after I do the above alignment
> to a cage with the 5-fold axis pointing directly out of the screen I'd
> resave the PDB pentamer (File / Save PDB..., option Save relative to "cage
> model").  Likewise I'd save a copy of the dimer with its 2-fold axis along
> z and passing through the origin.  This going to help alot when it comes to
> wanting to adjust the radial position and rotation of these in the
> icosahedron.  Now I can use the sym command to make icoshedral symmetry
> copies of the pentamer and use it again for the dimer.  But this makes way
> too many copies, 60 copies of the pentamer and 60 of the dimer because it
> doesn't understand that I already have the 5-fold symmetry monomers.  The
> easy solution is delete all but one monomer of the pentamer ("delete
> #1:.B-E") then use the sym command.  Same with the dimer.  Now assuming you
> built this model with the pentamer and dimer models having symmetry axes
> along z and through the origin you can easily move them with the move and
> turn commands.  For example if model #3 is the pentamer monomer used to
> make sym copies (with auto update enabled), then do "move z 15.5 model #3
> coordinateSystem #3" or "turn z 45 model #3 coord #3 center 0,0,0".
>   Check out the Chimera command documentation for details of the needed
> command.  The above procedure requires many steps, would take me an hour or
> two, and will be harder if you are not familiar with the command options
> you'll need.
>   If you still really would like to have a command that simply takes a
> model and orients it using z-axis and y-axis vectors that you specify (3
> numbers each) I can write a simple Python script that does that.
>   Good luck!
> Tom
> On Feb 24, 2014, at 8:33 PM, Yen-Ting Lai  wrote:
> Hi Tom,
> Thanks for the advice. Yes, I am working on a not very common case. In my
> lab, we are designing protein molecules that can assemble into cages (Science
> 2012, 336(6085) p1129<https://www.sciencemag.org/content/336/6085/1129.short>).
> This method was used successfully to generate tetrahedral cages and now I
> am trying to make icosahedral cages. At the design stage, we fuse in
> silico a natural C2 protein dimer (taken from PDB) to a natural C5 protein
> pentamer (also from PDB) with a long helix linker. In this way a fusion
> molecule with both 5-fold and 2-fold symmetries can be generated. However,
> such model won't be oriented in any specific ways that can be used with the
> sym command. One way to fix this is to write a python script to align the
> 5-fold axis of the fusion molecule to the z-axis and then align the 2-fold
> axis (not of the molecule, need to be derived) to the y-axis. Then the sym
> command can be used by specifying n25 as the orientation. I am just
> wondering if there's any quick way of doing this.
> Yen
> On Mon, Feb 24, 2014 at 6:10 PM, Tom Goddard wrote:
>> Hi Yen,
>> There is no simple way to specify a coordinate frame in Chimera using
>> vectors (although it is easy in Python).  For symmetries with a single
>> symmetry axis like cyclic symmetry you can specify the "axis" keyword and a
>> vector (3 comma-separated numbers) to the sym command and it will use that
>> as the symmetry axis.  This will work for icosahedral symmetry but only
>> allows you to reorient the z axis of one of the standard orientations.  The
>> coordinateSystem option to the sym command lets you use the axes of another
>> model for the symmetry.  But there is no Chimera command to specify the
>> coordinate axes of one model as vectors relative to the coordinate system
>> of another model.
>> You are asking for something pretty exotic.  If you explain more about
>> your problem (how you get this coordinate system as vectors) maybe I'll
>> have and idea for how to make the symmetry work.  For instance the Chimera
>> matrixget can read vector coordinate frames from a file and maybe that
>> could be used in your situation.
>>         Tom
>> On Feb 21, 2014, at 4:49 PM, Yen-Ting Lai wrote:
>> > Hi,
>> >
>> > I noticed that the sym command can be used to generate icosahedral
>> symmetry, but it requires that the molecule to be oriented in specific ways
>> (222, 2n5, n25, ...), which requires aligning the symmetry axes to the X, Y
>> or Z axes. I am wondering if there is a way to specify the symmetries axes
>> by vectors (instead of aligning them to the three principal axes) and then
>> use sym command to generate the whole icosahedral cage?
>> >
>> > Yen
>> >
>> > _______________________________________________
>> > Chimera-users mailing list
>> > Chimera-users at cgl.ucsf.edu
>> > http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20140225/b666d8bc/attachment-0001.html>

More information about the Chimera-users mailing list