GPURECON

Overview

GPURECON is a client application that contacts one or more remote servers to have the servers perform a reconstruction calculation. The current servers use graphics cards to accelerate the calculation, thus the name GPURECON. GPURECON generates reconstructions in a non-flipped (x, y, and then z) orientation rather than the flipped orientation (x, z, and then y) produced by the stand-alone reconstruction applications, EWBP and TAPIR.

The actual reconstruction calculations can use one of three algorithms. You select which one to use with the "Method" menu. The backprojection algorithm is similar to the algorithm used by EWBP. The backprojection weight, backprojection Hamming, and particle size options in the special parameters dialog affect the output of the backprojection algorithm. The sart and em algorithms are iterative algorithms. You should set the number of iterations to perform. You may also specify an initial guess for those two algorithms. The sart algorithm with a block size of one and a convergence factor of one is similar to the algorithm used by TAPIR.

Use the server fields to supply the names of the servers to contact. Initially those fields are set from the RGEMT_SERVER_LIST environment variable. When you specify multiple servers, GPURECON will split the reconstruction among the servers and then combine the results.

Here's a sample command file for GPURECON to have three servers perform a reconstruction similar to what TAPIR would produce:

    (time gpurecon \
     /home/eric/sample.MnAln \
     /home/eric/sample.xyz \
     -istrfile=/home/eric/sample_orig.xyz \
     -reconxz=1024:300 -iy=0:1023 -method=sart -cycles=10 \
     -block=1 -server=169.230.30.118 -server=169.230.30.119  \
     -server=169.230.30.120 ) \
     > /home/eric/emrecon.log

Parameters

Aligned series | Reconstruction | NX:NY:NV | Output XZ size | Y range | Method | Initial guess | Cycles | Blocks | Convergence | Server | Backprojection weight | Backprojection Hamming | Particle size | Resolution | Resolution scale | Add multires | Guess resolution

Related Priism Topics

Priism | Alignment and reconstruction | MASSNORM | APPL_PRM | EWBP | TAPIR | Alignment with markers


Aligned Series

This is the name of the input file which contains the mass normalized and aligned projection series created by APPL_PRM. On the command line, the name of the file with mass-normalized and aligned data is the first argument.

Return to the list of parameters


Reconstruction

This is the name of the file that will contain the data for the reconstructed volume. On the command line, the name of for the output image data is the second argument.

Return to the list of parameters


NX:NY:NV

The first two values are, respectively, the x and y dimensions of the data in the input projection series. The last value is the number of projections in the series.

Return to the list of parameters


Output XZ Size

These two values set the x and z dimensions, in pixels, of the reconstructed volume. If the initial reconstruction guess is supplied as an input (with the initial guess parameter), then these dimensions should match the x and z dimensions of that file.

On the command line, use -reconxz=nx:nz to set the x and z dimensions of the reconstruction. When nx is not set, the x dimension of the reconstructed volume is the same as the x dimension of the input data. When nz is not set, the z dimension of the reconstructed volume is one fourth of the x dimension of the input data.

Return to the list of parameters


Y Range

These two values set the range of y pixels from the aligned tilt series to use in the reconstruction. The first is the first index (running from 0 to the number of y pixels minus one) to use, and the second is the last possible index to use. If you supply an initial guess, the y dimension of the guess must match that specified with these values.

On the command line, Use -iy=start_index:last_index to set the y range. If you do not specify a range, all y pixels are used: start_index is set to zero and last_index is set to the number of y pixels minus one.

Return to the list of parameters


Method

You have three choices for the reconstruction algorithm when you use GPURECON. The choices are:

backprojection
Computes the reconstruction from a direct backprojection of the tilted views. This is the fastest algorithm but typically suffers from lower contrast and resolution than the other methods. The reconstructions with this algorithm should be very similar to the results from EWBP. Consult the backprojection weight, backprojection Hamming, and particle size topics for information about the options that affect the backprojection algorithm. On the command line, use the option, -method=backprojection, to select this method.
sart
Computes the reconstruction with an iterative algorithm with an additive update step. With a single block and a convergence factor of one, the algorithm should give similar results to TAPIR. On the command line, use the option, -method=sart, to select this method.
em
Computes the reconstruction with an iterative expectation maximization algorithm. On the command line, use the option, -method=em, to select this method.

For the sart and em algorithms, you can use the "Cycles" field to specify the number of iterations to use, the "Blocks" field to select a simultaneous form for the algorithm (one block) or a block-iterative form (two or more blocks) of the algorithm, and the "Initial guess" field to supply the file name of an initial guess. The sart algorithm is affected by your choice for the convergence factor; the backprojection and em algorithms are not.

Return to the list of parameters


Initial Guess

This is the name of a file containing the initial reconstruction guess; GPURECON only uses the initial guess if you do not select the backprojection method. The initial guess is optional; when none is used as the file name, it is assumed that there is no initial guess available.

If the initial guess is supplied, its dimensions must match the dimensions of the output reconstruction as set by the output XZ size and y range input parameters. The initial guess must also be in the same unflipped orientation as the output reconstruction.

To set the file name for the initial guess on the command line, use -istrfile=filename. If you do not specify a -istrfile option, GPURECON will assume that no initial guess is available.

Return to the list of parameters


Cycles

This parameter sets the maximum number of iterations that are performed for the sart or em algorithms.

On the command line, use -cycles=n to perform n iterations. If you do not supply a -cycles option, GPURECON will perform one iteration.

Return to the list of parameters


Blocks

GPURECON's sart and em algorithms can be run in a simultaneous mode or block-iterative mode. In the simultaneous mode, each iteration considers all the measurements at once. In the block-iterative mode, the measurements are broken into subsets. At each iteration the subsets are processed in turn; once all the measurements have been taken into account, the next iteration begins. The "Blocks" field sets the number of subsets to use: a value of one in that field selects the simultaneous mode.

On the command line, use -block=n to have GPURECON use n subsets for the sart or em algorithms. If you do not supply a -blocks option, GPURECON will use one block.

Return to the list of parameters


Convergence Factor

The convergence factor is the scalar by which corrections computed in the sart algorithm are multiplied. Convergence factors greater than zero and less than or equal to two are accepted by GPURECON. You can set the convergence factor from the graphical user interface by editing the value in the field labeled "Convergence". To set the convergence factor from the command line, use -convf=f where f is the value you want to use for the convergence factor.

Return to the list of parameters


Server

GPURECON will contact one or more servers to perform the reconstruction. As long as GPURECON is able to contact one server, it will proceed with reconstruction. When GPURECON is able to contact multiple servers, it will divide the work among them. The addresses of the servers that GPURECON will use are shown in the "Server 1" through "Server 8" fields. The initial values in those fields are drawn from the RGEMT_SERVER_LIST environment variable. You may edit the values to change the servers contacted. An address is usually just the host name (for instance, msg.ucsf.edu) or IP number (for instance, 169.230.20.46) of the server to contact. If the server does not use the default port number, 20248, you should add a colon followed by the port number to use at the end of the address (as an example, msg.ucsf.edu:20000, would contact port 20000 on msg.ucsf.edu). The address may also contain a specification of the protocol to use immediately before the host name or IP number. Currently two protocols are understood:

rgemt1://
This protocol routes all communication between the client and server over a single TCP connection. This is the default protocol when the address does not include a protocol specification.
rgemt0://
This protocol routes some commands over a TCP connection between the client and server, but all other parameters and data are communicated via files that reside on a filesystem visible to both the client and the server. On the client side, you can control the directory where those files are stored by setting the RGEMT0_DIR environment variable before running GPURECON or its graphical front end; that directory will have to agree with the directory where the server will look for the files.

On the command line, include one -server=address option for each server you want to contact where you replace address with the address of the server. When no -server options are included on the command line, GPURECON will look at the environment variable RGEMT_SERVER_LIST. The value of that variable should be a comma-separated list of the addresses to use.

Return to the list of parameters


Backprojection Weight

For the backprojection reconstruction algorithm, there are five available choices for how to filter the projections to compensate for the fact that an average of the backprojected measurements without filtering will overemphasize the low frequency components from the measurements. Those choices are:

none
With this option, the projection data is not filtered. Therefore there is no compensation for the unequal sampling in frequency space for the reconstruction and no adjustment for the intensities such that projections of the reconstruction have a range of intensities similar to the original projection data.
elliptical
Can be used with any set of tilt angles and ensures that the projections of the reconstruction have similar intensities to the original projection data. The values for the particle size affect this weighting function. You may also use the option to apply a Hamming filter to the projections in conjunction with this weighting function.
elliptical-square
Can be used with any set of tilt angles and ensures that the projections of the reconstruction have similar intensities to the original projection data. The values for the particle size affect this weighting function. You may also use the option to apply a Hamming filter to the projections in conjunction with this weighting function.
r*
This filtering option assumes that the tilt angles are evenly spaced. Also, the projections of the reconstruction will have a different range of intensities than the original projections. You may use the option to apply a Hamming filter to the projections in conjunction with this weighting function.
r* with Hamming
This filtering option is the same as the r* filter except that it includes a Hamming filter applied to the projections as well. If you want to filter the projections twice with a Hamming filter, you can use the "Backprojection Hamming" option as well.

On the command line, use

    -bpfilter=f

to set the type of filtering done. f must be none, elliptical, elliptical-square, rstar, or rstar-hamming. If you do not include a -bpfilter option when using the command line, the reconstruction will be performed without filtering the projections.

Return to the list of parameters


Backprojection Hamming

If you use the backprojection reconstruction method and use a weighting function different than "none", then you may specify that a Hamming filter (a one-dimensional local smoothing filter) be applied to the projections as well prior to the backprojection. To turn on the Hamming filter from the graphical user interface, turn on the "Backprojection Hamming" toggle button in the special parameters dialog. To turn on the filter from the command line include -bphamming in the options.

Return to the list of parameters


Particle Size

If you use the backprojection reconstruction method with the elliptical or elliptical square weighting function, the weighting function uses the particle size to account for the approximate spatial bounds of the object to reconstruct. The first particle size parameter is the extent in x, and the second particle size parameter and the second is the extent in z. Both have units of pixels. By default, the particle size parameters are set to the same size as the reconstruction bounds.

On the command line, include -bpparticle=x:z in the options to set the particle size to be x pixels in x and z pixels in z.

Return to the list of parameters


Resolution

The resolution parameter selects which resolution to process from the input tilt series. Normally, the tilt series has been preprocessed with apply parameters, and the highest resolution in the tilt series corresponds to the resolution you want. In those situations, you would set the resolution parameter to zero (the default value) to select the highest resolution from the tilt series.

On the command line, use

    -res=i

to have the reconstruction use the ith resolution from the tilt series. When run from the command line and no resolution is selected, the reconstruction will use the highest resolution present in the input tilt series.

Return to the list of parameters


Resolution Scale

The resolution scale parameter controls the scale factor applied to the reconstruction size parameters. In the typical case where you select a resolution level to process from the main dialog of EMTAR, the graphical interface will automatically fill in the resolution scale correctly. In the case where you are running the reconstruction directly on a downsampled tilt series but still specify the reconstruction size in terms of the full resolution, you should set the resolution scale to be the same as the downsampling factor (if the data is scaled down by a factor of four set the resolution scale parameter to four).

On the command line, use

    -rscale=i

to set the resolution scale to be i. When run from the command line without the -rscale option, GPURECON will use a scale factor equal to two raised to the power of the resolution level selected with -res.

Return to the list of parameters


Add Multires

Turn on the "Add multires" toggle button to cause GPURECON to add lower resolutions to the reconstruction if the x and y dimensions of the reconstruction are large enough. Turn off the "Add multires" toggle button to cause GPURECON to generate a reconstruction with a single resolution.

On the command line, include

    -multires

in the command-line options for GPURECON to cause GPURECON to add lower resolutions to the reconstruction if the x and y dimensions of the reconstruction are large enough.

Return to the list of parameters


Guess Resolution

The guess resolution parameter allows you to select which resolution to use from the file containing the initial guess. The dimensions of the resolution you select must be compatible with the dimensions you've specified for the reconstruction.

On the command line, use

    -gres=i

in the command-line options for GPURECON to use the ith resolution from the initial guess file. When run from the command line without the -gres option, GPURECON will use the highest resolution present in the initial guess file.

Return to the list of parameters