Boulder Laboratory for 3-Dimensional Electron Microscopy of Cells ROTATEVOL(1) ROTATEVOL(1) NAME rotatevol - to rotate 3-dimensional data to arbitrary angles SYNOPSIS rotatevol DESCRIPTION This program will rotate all or part of a three-dimension volume of data. The rotations may be by any angles about the three axes. Tilt angles and origin information in the header are properly maintained so that the new data stack will have a coordinate system congruent with the old one. Before running the program, examine the data set to determine what rotations you desire. The overall rotation of the data set is specified by tilt angles for three successive rotations about the the 3 axes, with rotation first around Z, then around Y, then around X. Positive angles give counterclockwise rotations (looking down an axis toward the origin). This is the same way that angles are specified and acted on in the Slicer window of 3dmod, so you can use the Slicer to determine your desired angles, as long as the data volume is not being viewed with Y and Z flipped. If you only want part of the data set, determine the center of the region that you want to extract. This region is specified by the index coordinates of that point in the input file. Rotatevol uses the PIP package for input (see the manual page for pip) and can take input interactively for options that existed when it was converted, to maintain compatibility with old command files. The following options can be specified either as command line arguments (with the -) or one per line in a command file or parameter file (without the -): -input OR -InputFile File name Input image file to rotate -output OR -OutputFile File name Output file for rotated volume -tempdir OR -TemporaryDirectory Text string Directory to use for temporary files. The default is that the temporary files will be placed in the current directory. -size OR -OutputSizeXYZ Three integers X, Y, Z dimensions of the output file (default is size of input file) -center OR -RotationCenterXYZ Three floats X, Y, Z index coordinates of the center of the region to be rotated (Default is center of input file). This location will be placed in the center of the output volume. Coordinates are numbered from zero. -angles OR -RotationAnglesZYX Three floats Angles to rotate about Z, Y, and X axes. Rotations will be applied in that order; first around Z, then Y, then X. -order OR -InterpolationOrder Integer Order of interpolation to use. Currently only quadratic (2) and linear (1) interpolation are available; the default is quadratic. -query OR -QuerySizeNeeded With this entry, the program will compute the size of the output volume needed to contain the whole original volume after rotation. It will just print the sizes in X, Y, and Z then exit. -fill OR -FillValue Floating point Value to fill regions without image data (default is file mean) -memory OR -MemoryLimit Integer Amount of memory to allocate for the major arrays needed by the program. This always includes memory for input images and may include memory for a stack of output slices, depending on the orientation of the output. -verbose OR -VerboseOutput Integer 1 for diagnostic output -param OR -ParameterFile Parameter file Read parameter entries as keyword-value pairs from a parameter file. -help OR -usage Print help output -StandardInput Read parameter entries from standard input. If the program is started with no command line arguments, it reverts to interactive input with the following entries: Name of the input file with data to be rotated Name of the output file for rotated data Path name of directory (for example, /usr/tmp) where temporary files can be placed, or Return to have files placed in the current directory X, Y, and Z dimensions of the output file Index coordinates of the center of the region to be rotated in the . input file, or / to use the coordinates of the center of the file Rotations around the Z, Y, and X axes The program can work on an arbitrarily large volume. It reconstructs a series of rectangular sub-regions of the output volume. For each region, it reads into memory a rectangular region from the input volume that contains all of the image area that rotates into that region of output volume. It then uses linear or triquadratic interpolation to find each pixel of the output subvolume, and writes the subvolume to a scratch file if necessary. When all of the regions in one layer are done, it reads back data from the scratch files and assembles each section in that layer. HISTORY Written by David Mastronarde 7/25/91 Converted to PIP/autodoc 10/10/03 Converted to Fortran 95, parallelized with OpenMP, 6/14/09