[Chimera-users] code or psuedo code for unit cell packing

Tom Goddard goddard at sonic.net
Wed Sep 24 10:02:13 PDT 2014

Hi Brian,

  If you apply the REMARK 290 SMTRY operators from a PDB file to the atomic coordinates in the file (i.e. to the asymmetric unit) the placement of the molecules will not in general be tightly packed.  If you turn of the “pack molecules in unit cell” option in the Chimera Unit Cell dialog (under Options), that is what you will get.  For 2FDN you will see 8 monomer all over the place, the first attached image.  By default the Chimera unit cell dialog has the pack option on and it produces the second attached image where the geometric center of the asymmetric unit (ie the coordinates in the file) for each of the 8 copies is inside the unit cell outline box.  It achieves this by simply translating each molecule by an integer multiple of the unit cell size along each axis so that the center ends up in the outlined unit cell.  There are no rotations involved in this packing, it is just shifting the molecules typically by one unit cell width to get them all inside the same unit cell.  The size and angles for the unit cell are taken from the CRYST1 PDB file record.

  If you want to examine the Python code for this look in your Chimera distribution at file


in particular the unit_cell_matrices() routine which callse the pack_unit_cell() routine which calls the close_packing_matrices() routine.  On Mac this would be in


and online you can view it in our source code repository



On Sep 24, 2014, at 9:41 AM, Bennion, Brian  wrote:

> Thank you Elaine,
> Perhaps I wasn't clear enough.  I can use the smtry operations found in the the REMARK 290 records to create what appears to be an individual monomer of a protein in a separate unit cell (2FDN).  With this pdb there are 8 monomers per unit cell, however, without selecting packing I just get 8 monomers in 8 unit cells.
> You state that the packing option chooses the copy of the each chain that puts its center within the outline of a single unit cell box.  Can you show me what that code looks like?  I just want to understand what the translation/rotation operations are...
> Brian
> ________________________________________
> From: Elaine Meng
> Sent: Wednesday, September 24, 2014 9:27 AM
> To: Bennion, Brian
> Cc: chimera-users at cgl.ucsf.edu
> Subject: Re: [Chimera-users] code or psuedo code for unit cell packing
> Hi Brian,
> The symmetries in the PDB file define the possible positions of multiple copies of a chain in the repeating array of unit cells.  See the documentation for descriptions of which matrices from the PDB file are used (depends on your own settings in the Options). The packing option chooses the copy of each chain that puts its center within the outline of a single unit cell box.
> <http://www.rbvi.ucsf.edu/chimera/docs/ContributedSoftware/unitcell/unitcell.html>
> I hope this helps,
> Elaine
> -----
> Elaine C. Meng, Ph.D.
> UCSF Computer Graphics Lab (Chimera team) and Babbitt Lab
> Department of Pharmaceutical Chemistry
> University of California, San Francisco
> On Sep 24, 2014, at 8:38 AM, Bennion, Brian  wrote:
>> Hello
>> I found the unit cell gui to be very useful  recently.  However I am curious about how the "pack into unit cell" option works.  What information in the pdb header is used to translate/rotate a set of monomers each in an individual unit cell and pack them back into the "original cell".
>> Thanks for any help
>> Brian
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users

More information about the Chimera-users mailing list