Skip to content

Recons_test

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

phantom_test_reconstruction

Purpose

This program allows you to make a whole reconstruction process: it starts generating a random phantom given a random family of phantoms, then it is projected following a projection specification file, these projections are reconstructed using either ART, SIRT or WBP, and the reconstruction is evaluated against the random generated phantom. This process is called a reconstruction test. What this program really allows you is to make reconstruction measure (a measure is a set of tests whose number is also given in the reconstruction test parameters), and the results of the measure is the mean value of the results for the particular tests. There are several ways of understanding the results:

  • Training Only the training FOM is returned together with the standard deviation associated to the set of tests. Valid FOM measures are structural consistency L1 and L2 norms of error over the whole volume (scL1, scL2), over the background (scL10, scL20), over the feature (scL11, scL21) or over both but weighted by the number of voxels on each region (scL1w, scL2w)
  • Maximum Resolution A final filter is optional for ART and SIRT, while it is compulsory for WBP . See

Radermacher, Weighted backprojection methods. J. Frank (Ed) Electron Tomography. Plenum Press A conservative approximation to this value is


max_resolution-1 (normalized to 0.5)= object_size(A)*delta_ang(rad)/(2*sampling_rate(A/pixel))
   

Usage


$ phantom_test_reconstruction ...


Parameters

  • `` File containing the information for the test
  • -training [training_FOMscL21] = Only a structural evaluation is performed and only the value of the training FOM is returned. Valid training FOMs are:
    • ``
    • ``
    • ``
    • ``
    • ``
    • ``
    • ``
    • ``
  • `` If several tests are performed using this option you avoid rewriting the files of one test with the results of the other. This option is not recommended due to the high amount of information used for each reconstruction.

Structure of parameters file

  • reconstruction method[reconstruction method] = Reconstruction method (ART, SIRT, SIRT_Spider, WBP, Fourier)

  • random sortTRUE = Random sort of projections (only valid for ART). If you don't want it remove the line, don't writeFALSE

  • phantom family[random phantom filename] = File with the Random phantom description

  • voxel phantom[Xmipp volume] = Or file with a fixed voxel phantom. Only one of the two must be present

  • projection parameters[projection parameters filename] = File with the Projection parameters

  • crystal parameters[projection parameters filename] = File with the Crystal Projection parameters

  • tomographyyes = In tomography mode, the rotational angle is always random within a tomography series

  • measurement number[MeasNo=-1] = Number of tests to be considered a reliable measurement. Every measure on the set of parameters given below is compound of a number of tests, the mean of these tests is returned

  • accuracy[acc=

  • unluckiness[probability=0.01] = However, when training you may not know how many tests you want. In this case, you may select a desired accuracy for the training FOM estimation. That means that we want to have an estimation of the tFOM with an accuracy at least of aacc% taking into account that we may have picked a very unlikely sample with probabilityunluckiness

  • global radius[Global_radius=-1] = Global radius for evaluation (-1=automatically set to CEIL(Proj_Xdim/2)

  • max resolution[maximum_resolution=-1] = Maximum resolution expected (between 0 and 0.5). After each reconstruction the volume is filtered to this frequency

  • final symmetry file[fn_sym] = Final symmetry file. After each reconstruction the volume is symmetrized with this file

  • top surface[ztop0] [ztopF] =

  • bottom surface[zbottom0] [zbottomF] = Parameters for generating a surface mask, you can supply the top, bottom or both

  • segmented surface[threshold] =

  • segmented dilation[size of the dilation] = If you want to generate a surface extracted from the original phantom by thresholding it and dilating the result apply

  • succesive parametersyes =

  • iterative parameters[lambda1_0] [no_it1_0][lambda1_F] [no_it1_F] =

  • iterative parameters[lambda2_0] [no_it2_0][lambda2_F] [no_it2_F] =

  • ``

  • Reconstruction parameters:

    • for ART, SIRT:lambda,no_it
    • for WBP:threshold
    • for Fourier:pad_proj,=pad_vol=
      Where =_0= stands for initial and =_F= for final. if final values are provided then random parameters are generated with a log uniform distribution between these boundaries. If succesive parameters are set ON, then the different iterative parameters are understood as the ranges for the different iterations. The number of iterations is, in this case, useless and the actual number of iterations is the number of succesive parameters
  • ``

  • threshold[threshold1] =

  • threshold[threshold2] =

  • pad_proj[p=2]= Projection pad factor for Fourier reconstruction

  • pad_vol[p=2]= Volume pad factor for Fourier reconstruction

  • stop at[no images] = Stop after this number of images has been presented

  • blob type(big | small | visual) = Blob type (the grid is also adjusted)

  • voxel basisyes = Use voxels as reconstruction basis instead of blobs

  • symmetry file[symfile] = Symmetry file, if any

  • no_symprojyes = Do not symmetrize projections

  • force symmetry[times=0] = Reinforce the symmetry at volumetric level

  • reconstruction radius[R=-1] = Interest radius for the ART algorithm

  • sort last[N=2] = Sort projections with ortogonality criterion using the lastN projections. IfN-1=, with all previously selected images

  • mass[mass in voxels=-1] = Maximum number of voxels that the reconstructed volume is allowed to have above 0

  • start from phantomyes = Start from filtered phantom. The initial volume is a lowpass filtered version of the phantom

  • starting noise[sigma=0] = Add noise to the phantom before filtering

  • starting lowpass[wdig] = Lowpass filter cutoff digital frequency (<1/2)

  • enable normalizationyes = Enable normalization simulation. First a linear(yax+b)= transformation is applied to each image and then it is normalized

  • a avg[a_avg] = Only if enabled.a follows a gaussian distribution with these parameters

  • a stddev[a_stddev] =

  • b avg[b_avg] =b follows a gaussian distribution with these parameters

  • b stddev[b_stddev] =

  • normalizing methodOldXmipp | Near_OldXmipp | NewXmipp | Michael =

  • background radius[bg_radius] =

  • POCS positivityyes = WithNewXmipp normalization you can ask for positivity constraint =

  • highpass cutoff[dig_freq] = 2D filter applied to the images0<dig_freq<0.5

  • CTF[CTF description file] = Microscope parameters.

  • defocus change[val=0=

  • noise stddev[stddev=0] =

  • noise lowpass before CTF[w=0] =

  • correct CTF phaseyes = CTF correction. If the CTF phase is corrected an image called as the CTF input file plus =_phase_corrected= is created with the CTF after the phase correction

  • correct CTF amplitudeyes =

  • idr_iterations[idr_it] = Notice that[idr_it]+1 reconstructions will be done

  • mu[mu] | [[mu0],[mu1], ...] = Relaxation values for IDR iterations

  • muF[mu] | []muF0],[muF1]>, ...] = If given, IDR relaxation values are randomly picked in the region[[Mu0],[muF0]][[mu1],[muF1]] ...

  • dont evaluateyes = Don't evaluate the reconstructions

  • only structuralyes = Evaluate only the structural FOMs (faster option)

  • alternative evaluation phantom[alternative phantom] = If the next option is provided, then the reconstruction will be evaluated using this second phantom instead of the projected one

  • smooth evaluation mask[Xmipp volume] = Apply this smooth mask before evaluating

Examples and notes

  • File generation This program generates a set of files associated to the several parts of the process (let's suppose that the projection filename seed is g0ta and the extension.xmp:
    • Random Phantom Generation
      • g0ta.descr randomly picked phantom description
    • Projections
      • g0ta*.xmp all projections
      • g0ta.sel selection file for all projections
    • Surface generation
      • g0ta_top_surface.xmp top surface (if to be generated)
      • g0ta_bottom_surface.xmp bottom surface (if to be generated)
      • g0ta_mask.vol top and bottom surfaces combined as it is applied to the reconstruction process
    • Reconstruction
      • g0ta.vol Xmipp voxel volume reconstruction
      • g0ta.hist reconstruction history
    • Evaluation
      • g0ta_eval_shape.plot GNUplot compatible file with the density shape as a function of distance
      • g0ta_eval_slice_histog.img Xmipp image with the slice histograms

Here you have an example of use

projection.param Project taking angles from a document file


# Volume and projection files --------------------------------
# volume description file or volume file
g0ta.descr
# projection seed, first projection number (by default, 1) and extension
# (the two last are optional)
g0ta 1 xmp
# Y and X projection dimensions
40 40
#
# Angle Definitions ------------------------------------------
NULL
# Angle ranges
# rotational angle
0 360 10 random
-90 90 10 random
0
#
# Noise description ------------------------------------------
#     noise (and bias) applied to rotational angle
5
#     noise (and bias) applied to tilting angle
5
#     noise (and bias) applied to psi angle
5
#     Noise (and bias) applied to pixels
10
#     Noise (and bias) applied to particle center coordenates
2


random_dcyl.descr Random phantom family


# Random Phantom description file
# General Volume Parameters: 
#      Xdim      Ydim      Zdim   Background_Density
        40        40        40              0
# Feature Parameters: 
#Type +/= Density X_Center Y_Center Z_Center radius height separation rot tilt psi
 dcy   +     1     -5       -5      -5        5       5        3       0    0   0
 dcy   +     1      5        5       5        8       8        6       0    0   0


recons_test.param


# Reconstruction method (ART, SIRT, WBP)
reconstruction method=ART
# Random phantom filename
phantom family=random_dcyl.descr
# Projection parameters
projection parameters=projection.param
# Number of tests to be considered a reliable measurement
measurement number=6
# Reconstruction parameters
# ART, SIRT: lambda, no_it
iterative parameters=0.005 1
iterative parameters=0.015 1
iterative parameters=0.025 1
iterative parameters=0.035 1


The command to perform the measures would be


$  phantom_test_reconstruction -i recons_test.param -training


and the output would be something of the like


Test 0: lambda= 0.005 no_it= 1 ---> 0.772863+-0.0264538
Test 1: lambda= 0.015 no_it= 1 ---> 0.747071+-0.0289265
Test 2: lambda= 0.025 no_it= 1 ---> 0.717942+-0.0263433
Test 3: lambda= 0.035 no_it= 1 ---> 0.682241+-0.0297349


If a full evaluation has to be done


$ phantom_test_reconstruction -i recons_test.param 


and the output would be something of the like


Test 0: lambda= 0.0320000  no_it= 1
    scL2:     0.983790+-0.00167975
    scL1:     0.940930+-0.00402315
    scmu:     0.987391+-0.00256149
    scdev:    0.960598+-0.0238571
    scrange:  0.838366+-0.0329013
    scL20:    0.989035+-0.000524050
    scL10:    0.950335+-0.00206734
    scmu0:    0.974382+-0.00324133
    scdev0:   0.861135+-0.00124233
    scrange0: 0.464115+-0.00707649
    scL21:    0.906349+-0.00862752 ; This is the value returned when training by default
    scL11:    0.805787+-0.0130292
    scmu1:    0.805924+-0.0132247
    scdev1:   0.809593+-0.00860387
    scrange1: 0.510456+-0.0388274
    hsvr:     4.23771+-0.0525347
    hsmu:     42.6576+-8.78198
    hsbr:     26.0388+-6.59763
    hsdt:     0.998906+-0.000220214
    drrt:     0.923149+-0.00548132
    dsbl:     300.371+-5.70755
    dsad:     0.153834+-0.00740181


If you want to perform an optimization scheme with different lambdas for each iteration then the Input file could look like this


# Reconstruction method (ART, SIRT, WBP)
reconstruction method=ART
# Random phantom filename
phantom family=random_dcyl.descr
# Projection parameters
projection parameters=projection.param
# Number of tests to be considered a reliable measurement
measurement number=6
# Reconstruction parameters
# ART, SIRT: lambda, no_it
succesive parameters=yes
iterative parameters=0.5   1 1     1 # Lambda between 0.5   and 1     for the first  iteration
iterative parameters=0.25  2 0.5   2 # Lambda between 0.25  and 0.5   for the second iteration
iterative parameters=0.125 3 0.25  3 # Lambda between 0.125 and 0.25  for the third  iteration
iterative parameters=0.065 4 0.125 4 # Lambda between 0.065 and 0.125 for the fourth iteration


Only one test is performed but with 4 iterations with the given ranges.

--Main.AlfredoSolano - 29 Jan 2007

Clone this wiki locally