nad_eed_3d(1)               General Commands Manual              nad_eed_3d(1)

       nad_eed_3d - Nonlinear anisotropic diffusion, edge enhancing, in 3D

       nad_eed_3d  [options]  input_file  output_file

       nad_eed_3d is Frangakis and Hegerl's 3D anisotropic diffusion program
       with edge-enhancing diffusion only (see Frangakis, A., and Hegerl, R.,
       2001.  "Noise reduction in electron tomographic reconstructions using
       nonlinear anisotropic diffusion." J. Struct. Biol. 135: 239-205).  In
       addition to options to control the algorithm itself, this version pro-
       vides some options to make it easier to explore the effects of differ-
       ent parameters.

       The program requires ~36 times as much memory as the number of voxels
       in the input file.  To process a large volume, place the command line
       needed to run the program into a command file and use chunksetup to
       obtain command files to process the volume in chunks.  Determine the
       maximum number of megabytes of memory that you want this processing to
       require, and divide by 36 to obtain the value to enter with the -m
       option to chunksetup.  See the example below.

       Finding the right parameters for anisotropic diffusion can be diffi-
       cult.  To adjust parameters, first clip out a small subvolume, e.g.,
       100x100x30 pixels, with typical features of interest.  One strategy is
       to look at a restricted range of iterations, such as 5-10 or possibly
       5-15, and find the K value that gives the desired result.  A very wide
       range of K needs to be explored, perhaps from .02 to 5 times the stan-
       dard deviation of the data.  For typical byte data this might be a
       range of 0.4 to 100.  The range should thus be explored in two stages.
       In the first stage, you might try K values of 0.4, 1.6, 6.4, 26, 102,
       then look at the results as described below.  When you see that the
       desired K value falls in one of these intervals, then try 5 K values to
       fill in the interval with finer steps, such as 2.4, 3.2, 4.0, 4.8, and
       5.6 for the interval from 1.6 and 6.4.  Once you have chosen your
       parameters, you can process the whole volume.

       The Etomo program contains an interface for extracting a subvolume,
       testing different K values and iteration numbers, and running the dif-
       fusion on a full volume.  From the File menu, select "New Parallel
       Process" then press the "Nonlinear Anisotropic Diffusion" button.

       -k value
              The K value (sometimes referred to as lambda).  The ratio of the
              local image gradient to K is used to determine whether density
              will diffuse isotropically or primarily in the direction of
              least density variation (along edges).  Lower K values will pre-
              serve more edges; higher K values will give more isotropic

       -n value
              The number of iterations.  The higher the number of iterations,
              the smoother the result.

       -i list
              A list of iterations at which output should be written to a file
              (ranges such as 1-3,5,8 are allowed).  If such a list is
              entered, the -n option is ignored.  By default, the entire vol-
              ume will be written at each listed iteration, with the filename
              outfile_file-nnn, where output_file is the name entered on the
              command line, and nnn is the number of iterations, with leading
              zeros as needed to give three digits.  However, if the -o option
              is entered, a single slice will be written at each of the speci-
              fied iterations, all into the same output file.

       -e ext An extension (excluding the dot) to put after the iteration num-
              ber of the filename when writing files at selected iterations,
              so the name has the form output_file-nnn.ext.

       -o value
              Single slice to output (numbered from 1).  This option is useful
              when adjusting parameters if you can judge the performance by
              looking at just one slice.  It will not make the program do the
              computation on only one slice; it will still operate on the
              whole input volume.

       -m value
              Mode for output file: 0 for byte, 1 for integer, 2 for real, 6
              for unsigned integer, or 12 for 16-bit float.  By default, the
              output file will have the same mode as the input file, although
              the default mode of floating point output for MRC files is gov-
              erned by the value of environment variable
              IMOD_WRITE_FLOATS_16BIT.  The default works for byte data
              because densities will never become more extreme than in the
              original volume.  However, if you have byte input data with a
              low dynamic range, you may need to specify real output to avoid
              seeing discrete density levels in the smoothed regions.  Mode 12
              is allowed only if the output format is MRC.

       -s value
              Sigma value for smoothing or averaging the structure tensor,
              which might give a more accurate estimate of the direction of an
              edge.  The default is 0 for no smoothing.

       -t value
              The time step.  The product of the time step and the number of
              iterations determines the amount of diffusion.  The diffusion
              will run faster with a higher time step but may become unstable.

       -F format
              Set format of output file to MRC, TIFF, HDF (if the package sup-
              ports HDF), or JPEG (if the package supports JPEG) by entering
              MRC, TIF, TIFF, HDF, JPG, JPEG, or any lower case form of these.
              Only a single image can be output to a JPEG file.  This entry
              overrides a default format set with the environment variable

       -f     Use faster but less accurate routine for computing eigenvectors.
              With this option the program will run about 75% faster, but the
              results will differ by about 1%.  The difference is probably not

       -P     Print process ID to standard error.

       To get a set of volumes, one at every third iteration, enter:
          nad_eed_3d -i 3,6,9,12,15,18,21 -k 1.2 tomo.rec tomo.nad

       This will produce tomo.nad-003, tomo.nad-006, etc.  They can be visual-
       ized with:
          3dmod tomo.nad-*

       To get a single file with one slice, say slice 16, from every iteration
       from 5 to 15, enter:
          nad_eed_3d -i 5-15 -k 1.2 -o 16 tomo.rec tomo.nad-1.2

       To get a series of such files at different K values, just repeat the
       above command, or (under tcsh) enter:
          foreach i (0.6 0.8 1.0 1.2 1.4 1.6)
          nad_eed_3d -i 5-15 -k $i -o 16 tomo.rec tomo.nad-$i

       This will produce tomo.nad-0.6, tomo.nad-0.8, etc., which can be visu-
       alized with:
          3dmod tomo.nad-*.*

       If your file is large (e.g., > 10 megavoxels), and you have determined
       your optimal parameters, say 15 iterations with a K of 1.3, then pre-
       pare a command file, e.g.,, with the line:
          $nad_eed_3d -k 1.3 -n 15 INPUTFILE OUTPUTFILE
       (Do not indent the line; the $ must be the first character on the line.
       Also, do not substitute your input and output files, the command file
       really should say INPUTFILE and OUTPUTFILE.)

       Then enter:
          chunksetup -m 10 tomo.rec tomo.nad

       If you are doing more than 8 iterations, you should increase the over-
       lap between chunks by adding the option "-p #" where "#" is the number
       of iterations; this will reduce the effects of cutting the volume into
       chunks to a minor level.  Overlap of 4 times the number of iterations
       is needed to eliminate these effects but this could increase chunk
       sizes substantially.

       The Chunksetup command with option "-m 10" will produce command files
       in which each run of the program will require less than 360 MB of mem-
       ory (use a different amount to allow for more memory).  On a single
       processor machine, run these with:
          subm nad-all

       If multiple machines or processors are available, run in parallel with:
          processchunks list_of_machines nad
       or just
          processchunks # nad
       to run with # processors on the local machine.

       If an output file already exists, it will be made a backup file by
       adding ~ to its name.

       Achilleas Frangakis and Reiner Hegerl (IMOD modifications by David Mas-
       tronarde).  The program is copyright Max-Planck-Institut for Biochem-
       istry, Martinsried, Germany.

       chunksetup, processchunks, 3dmod

       Email bug reports to mast at colorado dot edu.

IMOD                                4.12.62                      nad_eed_3d(1)