TAPIR (Tomographic Alternating Projecting Iterative Reconstruction) uses a constrained iterative reconstruction algorithm. Its goal is to minimize the difference between the reconstruction and the tilted projections. The constraints are compact support, positivity and smoothness of the reconstruction. In each cycle of refinement, this algorithm simply calculates the difference between the reprojection of the reconstruction and its corresponding projection, and the difference is applied to the reconstruction by backprojection.
The improvement of TAPIR over weighted backprojection (WBP) is dramatic if the object is sparsely distributed. It can remove the backprojection strips around isolated features with the positivity constraint being a strong information source (it is always applied in TAPIR). The strip-like artifacts are mainly due to the missing wedge problem, i.e., we can only collect data up to tilt of +-75 degree (in contrast, a tilt range of +-90 degree avoids the problem).
The unique feature of TAPIR is that it tries to minimize the so-called limited detector problem. This is achieved by excluding the peripheral projection regions which are plagued with limited detector problem. The degree of such exclusion is set by the input parameter limD_problem.
The origin of the limited detector problem is that the specimen section is larger than the detector (CCD in our case). In the case there is a limited detector problem, specimen structures from outside the reconstruction volume contribute to the projections, which in turn contribute to the results for the reconstructed volume. Such indirect contributions to the reconstruction are inconsistent, that is, there are no contributions from the 0 degree tilt projection, while there can be a lot from a projection of high tilt. This would cause artifacts in the reconstruction (stronger towards the x boundary, but in principle the whole reconstruction volume can be contaminated, contrary to intuition). When the user indicates that the limited detector problem is severe, all peripheral areas of projections that could possibly have the limited detector problem are excluded during the reconstruction, while half of such area is excluded when the user indicates that the limited detector problem is slight.
On the other hand, if we exclude data on the periphery, the corresponding voxels will have a more severe missing wedge problem. So all available "clean" projection areas should be used if we can identify such areas on all projections (this can be judged by inspecting the projection stack in movie mode) while making the guarantee that the limited detector problem is maximally avoided.
Here's a sample command file for TAPIR:
(time tapir \
/mama/weiping/prog/junk.MnAln \
/mama/weiping/prog/junk.xzy \
-istrfile=/mama/weiping/prog/junk.xzyw \
-reconxz=128: 150 -iy=0: 127:1 -dlim=1 -smooth=.9 \
-cycles=3 -moderec=2 -positivity=1 -proj_pos=1 ) \
> /mama/weiping/emrecon.log
IdatFile | OrecFile | NX:NY:NV | IStrFile | reconXZ | iY | limD_problem | smooth | cycles | modeRec positivity | proj_pos
Priism | Reconstruction | MASSNORM | APPL_PRM | EWBP | Alignment
This is the name of the input file which contains the mass normalized and aligned projection series created by APPL_PRM.
Return to the list of parameters
This is the name of the file that will contain the data for the reconstructed volume.
Return to the list of parameters
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
This is the name of a file containing the initial reconstruction guess; the file could be created by EWBP. 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 reconXZ and iY input parameters.
To set the file name for the initial guess on the command line, use
-istrfile=filename. If the -istrfile
option is not supplied, it is assumed that no initial guess is available.
Return to the list of parameters
These two values set the x and z dimensions, in pixels, of the reconstructed volume (the volume is written as slices parallel to the xz plane so these values are the dimensions of a single slice). If the initial reconstruction guess is supplied as an input (with the IstrFile parameter), then these dimensions should match the x and z dimensions of that file. Otherwise, the z dimensions should be set to be at least twice the specimen thickness to limit contamination of the TAPIR reconstruction by the volatile projection direct components.
On the command line, the dimensions of the reconstruction are set with
-reconxz=nx:ny. When the
dimensions are not set, nx and nz are taken to be 128;
if only nx is set, nz will have the same value as
nx.
Return to the list of parameters
These three values set which projections in the input file, IdatFile, are used in the reconstruction. The first is the first index (running from 0 to the number of projections minus one) to use, the second is the last possible index to use, and the third is the index step. The y dimension of the reconstruction is also controlled by the first two values: it is the second value minus the first plus one. If you supply an initial guess with the IstrFile parameter, the y dimension of the guess must match that specified with these values.
The range of indices used is set on the command line with
-iy=start_index:last_index:step.
When the range of indices is not set, the whole projection series is used:
start_index is set to zero, last_index is set to
the number of projections minus one, and step is one.
Return to the list of parameters
This parameter sets how TAPIR tries to correct for the limited detector problem. There are three possible settings:
On the command line, use -dlim=0 to have TAPIR assume that
there are no problems due to the limited detector size, -dlim=1
to have TAPIR assume that the limited detector problem is slight, and
-dlim=2 to have TAPIR assume a severed limited detector
problem. If none of these options are set, TAPIR assumes that there are
no problems due to the limited size of the detector.
Return to the list of parameters
This parameter constrains how smooth the reconstruction should be. This is achieved by smoothing the reconstruction after every round of correcting it by how it compared with the projection data. Smoothing is normally used to minimize the interpolation error and/or quantum noise. The smoothing is done by applying a Gaussian filter (restricted to a five by five region and renormalized) to the reconstructed data. The smoothing parameter sets the sigma for this Gaussian filter; a value of 0.9 works well.
On the command line use -smooth=sigma to
set the smoothing constant. If is not set, no smoothing is done.
Return to the list of parameters
This parameter sets the maximum number of iterations that are performed.
On the command line use -cycles=n to set the
number of iterations. If -cycles is not supplied, one iteration
is done.
Return to the list of parameters
Use this switch to set the data type used to represent the values in the reconstructed volume. You have the choice of using a four byte floating-point representation (Mode=2: Real*4) or a two byte signed integer representation (Mode=1: Int*2).
To set the output data type from the command line, use
-moderec=2 for the floating-point representation or
-moderec=1 for the signed integer representation. If neither
is set, the floating-point representation is used.
Return to the list of parameters
When this toggle is on, the pixel values in the reconstruction are forced to be non-negative. This a priori constraint is a powerful way to improve the reconstruction so it isn't generally useful to turn off the positivity constraint.
From the command line, the positivity constraint is turned on by specifying
-positivity=any value. If this is omitted, no
positivity constraint is applied.
Return to the list of parameters
When this toggle is on, the values from the mass-normalized projection data are forced to be non-negative (negative values are set to zero). This is almost always the right thing to do.
From the command line, the positivity condition is imposed on the input
data by specifying -proj_pos=any value.
If this is omitted, no positivity condition is applied.
Return to the list of parameters