Skip to content

Adjust_surface

Adrian Quintana edited this page Dec 11, 2017 · 1 revision

Adjust Surface

Purpose

This program allows you to align a volume and a surface. Three different methods are provided, in both the surface is moved up-down such that it is fitted between image planeszktop= andzkbottom= (both values can be limited using-ztop and-zbottom flags, respectively). For each (ktop,kbottom) combination the corresponding section of volume is considered, let's call it "region of interest". The output surface is the one which best correlates, although all correlation coefficients are shown, so later you can adjust the surface to the position you like more using draw_surface.

  • 3D correlation The surface generates a 3D binary volume which is 1 under the surface and 0 outside (if a top surface) or just the opposite (if a bottom surface) and occupies exactly the same section as the region of interest. The region of interest and the new binary volume are brought to zero mean by substracting the mean, and then both volumes are correlated

  • 2D correlation The region of interest is projected alongZ axis. Then the same idea as in the previous method is applied, both signals are brought to zero mean an correlated

  • Gradient correlation The surface generates a 3D binary volume as in the 3D correlation method, then the gradient of this mask at the surface points is correlated (sum of the dot products) with the gradients of the input volume at the same points

Usage


$ adjust_surface ...


Paramters

  • `` Input file with the surface image. In XmippZ convention, higher density values represent lower parts within the volume. This file must be an image
  • `` Output scaled surface. If not given, the input one is rewritten. The output is an image
  • `` Volume to be fitted
  • `` Range to search the highest point (ktop). If not given, the whole volume
  • `` Range to search the lowest point (kbottom). If not given, the whole volume
  • `` By default, a top surface is adjusted, use this flag to tell the program that surface is at the bottom of the volume. The difference makes only sense for the 3D correlation method. This flag tells where to create the binary volume, if it is a top surface then the volume is created under the surface, otherwise if it is a bottom surface, then the volume is created over the surface
  • `` Apply the 2D correlation method instead of the 3D one
  • `` Apply the gradient correlation method instead of the 3D one
  • `` Surface is coming from a phantom and has been generated by surface. The surface generation program has got the possibility of not letting the "surface probe" to go beyond a point, if this happens and the surface has not been found yet, then the value ZDIM (theZ dimension of the phantom) is set. This is a way of coding this situation. If the surface being used comes from a phantom, we must tell the adjusting program this fact in order to take the appropiate actions
  • `` If this flag is given then the possible heights for the surface are asked to the user. The correlation is computed and shown, and extra information (volumes/images) is written to disk:
    • 3D correlation method:PPPsurface.vol contains the binary volume generated for this surface minus its mean (this is the signal which is correlated with the input volume, which itself has been forced to be zero mean). The places where both signals have got the same sign are contributing positively to the correlation.PPPsign.vol shows those places where they are contributing negatively to the correlation factor
    • 2D correlation methodPPPsurface.img contains the projection of the binary volume generated for this surface minus its mean (this is the signal which is correlated with the projection of the input volume, which itself has been forced to be zero mean). The places where both signals have got the same sign are contributing positively to the correlation.PPPsign.img shows those places where they are contributing negatively to the correlation factor
    • Gradient correlation methodPPPVsurf.vol contains the binary volume generated for this surface,PPPV_grad_modules.vol andPPPVsurf_grad_modules.vol contain the modules of the gradient of the input volume and the surface volume respectively. The different components of each gradient volume are saved inPPPV_grad_X.vol,PPPV_grad_Y.vol andPPPV_grad_Z.vol, andPPPVsurf_grad_X.vol,PPPVsurf_grad_Y.vol andPPPVsurf_grad_Z.vol

Examples and notes

On methods performance In principle, gradient would be the ideal method for registering the surface an volume, however as it is based on derivatives, it is quite sensitive to blurring and missing "cones" in Fourier space; the 3D correlation method is not bad, but it is taking into the registration procedure voxels which are far from the volume surface (which in principle is not correct and is somehow assuming a compact and completely full protein, although not discrete); as for the 2D correlation method, it is also making the assumption that the volume is binary (0 or 1) which is even worse, however it surprisingly works, even better when some little noise is present (it doesn't like completely black backgrounds). Which one to choose? That's not easy to say, 3D correlation method appears to be more robust than the other two, although a wrong assumption is done in its conception; the gradient one is accurate only if input data hasn't got missing information (it seems to be more or less robust to noise presence); the 2D correlation method is not well founded although it works and can validate other methods' result

Example In the following example we are adjusting the bottom surfaceinner_surface.spi tovolume.vol and saving the result in a separate file. We are restrcting the search onktop between -4 and 10 and forkbottom between 4 and 12. The program takes care of not selecting akbottom which is abovektop. The 3D correlation method is used.


$ adjust_surface -i inner_surface.xmp -o inner_adjusted.xmp -vol \
volume.vol -ztop -4 10 -zbottom 4 12 -bottom_surface 


--Main.AlfredoSolano - 30 Jan 2007

Clone this wiki locally