[Chimera-users] When structures and density maps don't align
    Thomas Goddard 
    goddard at cgl.ucsf.edu
       
    Mon Sep 10 15:56:26 PDT 2007
    
    
  
Hi Walter,
   With the help of your example CCP4 map I found that the problem was a 
heuristic used by the Chimera CCP4/MRC file reader to determine whether 
the (ncstart,nrstart,nsstart) header values are valid or appear to be 
uninitialized.  If it found any n*start value to have absolute value 
larger than the original data size (mx,my,mz header parameters) then it 
considered the n*start position values out-of-range and probably 
uninitialized and used n*start values of (0,0,0).  That messed up the 
position of the map you sent.  I've changed this heuristic so that the 
n*start values only need to be less than 10 times the maximum data 
dimension to be considered valid.  It would be nice to drop this 
heuristic altogether.  Unfortunately some map files have uninitialized 
values that cause the map to be placed in deep space.
   The fixed Chimera code will be in the next snapshot (should be on the 
web on Friday from our automatic builds).  If you wish to change your 
current Chimera code you can edit
	chimera/share/VolumeData/mrc/mrc_format.py
replacing lines starting at line 87:
       if (nxs >= -mx and nxs < mx and
           nys >= -my and nys < my and
           nzs >= -mz and nzs < mz):
         from VolumeData.griddata import scale_and_skew
         self.data_origin = scale_and_skew((nxs,nys,nzs), self.data_step,
                                           self.cell_angles)
       else:
         self.data_origin = (0., 0., 0.)
with
       limit = 10*max(max(mx,my,mz), max(self.data_size))
       if [s for s in (nxs,nys,nzs) if abs(s) > limit]:
         self.data_origin = (0., 0., 0.)
       else:
         from VolumeData.griddata import scale_and_skew
         self.data_origin = scale_and_skew((nxs,nys,nzs), self.data_step,
                                           self.cell_angles)
Make sure to keep the indentation as shown since that is important in 
Python.  The above change is for Chimera 1.2422.
   Thanks for reporting the problem.
	Tom
    
    
More information about the Chimera-users
mailing list