[Chimera-users] Saving model positions

Thomas Goddard goddard at cgl.ucsf.edu
Mon Feb 26 14:44:43 PST 2007

Hi Christopher,

   The problem you have with the Chimera matrixget and matrixset 
commands is that the matrix file lists the model number (0.0, 1.0, 2.0, 
...) with each matrix.  For example,

Model 0.0
	-0.0635922 -0.740419 0.66913 247.807
	-0.979146 -0.0833402 -0.185275 540.192
	0.192946 -0.666958 -0.719679 472.752
Model 1.0
	0.233245 -0.923975 -0.303095 418.621
	0.970522 0.201738 0.131868 -125.304
	-0.0606967 -0.324918 0.943792 100.98

When you open maps and PDB files in a different order they get different 
numbers.  Chimera assigns the lowest available number (starting at 0) 
each time you open a data set.  Then when you use matrixset <filename> 
to get your standard orientation it applies the matrices to the wrong 
models because of the different numbering.  The easiest remedy for this 
is to open your data sets in a fixed order (first large ribosomal map 
(#0), then small ribosomal map (#1), ...).  This can be inconvenient. 
If you save a single positioning matrix in a file there is no current 
command to say to apply that matrix to a model that you specify as a 
command argument (e.g. no command like "matrixset <matrix-file> 
<model-number>" exists).

   There are some other approaches to the problem of getting standard 
orientations.  One method is to save your ribosome large and small 
subunit map positions in a Chimera session.  Then if you want to use 
different maps, open the reference session, then open the new maps and 
use the "matrixcopy" command


to position the new maps to match the reference map positions.  Instead 
of using matrixcopy you could use the equivalent Model Panel dialog 
"Transform As" button to apply the positioning matrix of one map to a 
second map.

   Another command that may be helpful is "savepos <name>".


It remembers the positions of all currently opened data sets and gives a 
name to that set of positions.  You can later restore those positions 
with the command "reset <name>".  These named positions are saved in 
Chimera session files.  The trouble is that there is not an immediate 
way to apply those positioning matrices to different maps or PDB models. 
  But that could be achieved with the matrixcopy command or Model Panel 
/ Transform As button.

   If this set of capabilities does not let you easily do what you want 
could you describe an exact scenario (how many maps, how many models, 
how are they related) and if possible propose a new command that would 
help you.

   I think it would be great if density map file formats supported 
saving multiple named positioning matrices in their header.  For 
example, you might want to save how a piece of a map is positioned in 
the full source map, and also how a piece of a map fits into different 
map (e.g. at various locations in a tomogram), and your case of just a 
standard orientation ("front view", "top view").  I do not believe any 
of the commonly used density map formats allow this although it may be 
possible to put that info into header comment fields in some map files.


Christopher Akey wrote:
> Tom -
> ...
> Chimera is very good, but there are still problems. A new workstation 
> will help and will be here in a few weeks.
> However, one thing is really annoying. It is important to set a 
> particular view for your structure, for example a side-by-side frontal 
> view of the ribosome with regards to the small and large subunits.
> Once you have this in one session it would be useful to be able to 
> recreate this easily in other sessions. (For logistical reasons, it is 
> ofter easier to keep a session for each Figure so that they don't get to 
> crowded.)
> Right now, if you save a matrix (matrixget) and then make a change in 
> the session, ie delete or add a file, you get unpredictable results, but 
> usually, the matrix no longer works or it only works for one volume in 
> the session. This is not good when you have separate vols for the small 
> and large subunits in proper registration, you get a matrix for the 
> front view, and then at a later time, only one subunit will be realigned 
> properly!
> It would be great if you could set a matrix for a particular map as a 
> benchmark, then when you read that map into any other session, you could 
> recreate this orientation using the matrix. I don't understand why this 
> won't work.
> The feature of being able to bring in other maps and align them in 
> CHimera is great and works very well (its in our older test version that 
> we are using, and its very useful as we often have 3 or more structures 
> of the same basic object with minor diffs).
> I hope this makes sense.
> cheers  C Akey

More information about the Chimera-users mailing list