BIG > Algorithms > PSF Generator 
CONTENTS 
PSF Generator is a software package that allows one to generate and visualize various 3D models of a microscope PSF. The current version has more than fifteen different models:
3D diffractive models: scalarbased diffraction model Born & Wolf, scalarbased diffraction model with 3 layers Gibson & Lanni, and vectorialbased model Richards & Wolf, and Variable Refractive Index Gibson & Lanni model.
Defocussing a 2D lateral function with 1D axial function: the available lateral functions are: "Gaussian", "Lorentz", "CardinaleSine", "Cosine", "CircularPupil", "Astigmatism", "OrientedGaussian", "DoubleHelix".
Optical Transfer Function generated in the Fourier domain: Koehler simulation, defocus simulation.
PSF Generator is provided for several environments: as ImageJ/Fiji plugin, as an Icy plugin, and as a Java standalone application. The program requires only few parameters which are readilyavailable for microscopy practitioners. Our Java implementation achieves fast execution times, as it is based on multithreading the computational tasks and on a numerical method that adapts to the oscillatory nature of the required integrands. Potential applications are 3D deconvolution, 3D particle localization and tracking, and extended depth of field estimation to name a few.
H. Kirshner, F. Aguet, D. Sage, M. Unser, 3D PSF Fitting for Fluorescence Microscopy: Implementation and Localization Application, Journal of Microscopy, vol. 249, 2013.
A. Griffa, N. Garin and D. Sage, Comparison of Deconvolution Software in 3D Microscopy. A User Point of View, Part I and Part II, G.I.T. Imaging & Microscopy, vol 1, 2010.
D. Sage, L. Donati, F. Soulez, D. Fortun, G. Schmit, A. Seitz, R. Guiet, C. Vonesch, M. Unser, "DeconvolutionLab2: An OpenSource Software for Deconvolution Microscopy," Methods—, vol. 115, 2017.
D. Sage, H. Kirshner, T. Pengo, N. Stuurman, J. Min, S. Manley, M. Unser, "Quantitative Evaluation of Software Packages for SingleMolecule Localization Microscopy," Nature Methods—, vol. 12, no. 8, pp. 717724, August 2015.
D. Sage, T.A. Pham, H. Babcock, T. Lukes, T. Pengo, J. Chao, R. Velmurugan, A. Herbert, A. Agrawal, S. Colabrese, A. Wheeler, A. Archetti, B. Rieger, R. Ober, G.M. Hagen, J.B. Sibarita, J. Ries, R. Henriques, M. Unser, S. Holden, "SuperResolution Fight Club: Assessment of 2D and 3D SingleMolecule Localization Microscopy Software," Nature Methods—Techniques for Life Scientists and Chemists, vol. 16, no. 5, pp. 387395, May 2019.
Object  File  Size  Version  Comment 
Plugin for Icy/ImageJ/Fiji  PSF_Generator.jar  508 Kb  18.12.2017 (for JRE 1.6)  Do not unzip 
Java application for standalone/Matlab  PSFGenerator.jar  2.5 Mb  18.12.2017 (for JRE 1.6)  ImageJ bundled 
Example of Gibson and Lanni PSF [256x256x128]  psfgl.zip  37.8 Mb  18.07.2014 
PSFGenerator is a plugin for Icy, an open community platform for bioimage informatics running on Linux, Windows, and Mac OSX. The installation of the plugin is performed through the centralized distribution service of Icy. Go to Online plugin of Icy and installed PSFGenerator. 

PSFGenerator is a plugin for ImageJ, a general purpose imageprocessing and imageanalysis package running on Linux, Windows, and Mac OSX. Download PSF_Generator.jar. The plugin consist in one single JAR file; place it into the "plugins" folder of ImageJ. Do not unzip the JAR file. 

PSFGenerator is a plugin for Fiji, a distribution of ImageJ and ImageJ2 running on Linux, Windows, and Mac OSX. Download PSF_Generator.jar. The plugin consist in one single JAR file; place it into the "plugins" folder of Fiji. Do not unzip the JAR file. 

PSFGenerator is a Java application. Download PSFGenerator.jar and from the terminal type: java cp PSFGenerator.jar PSFGenerator java cp PSFGenerator.jar PSFGenerator config_filename.txt 

PSFGenerator is a set of Java classes callable from Matlab. Download PSFGenerator.jar and save the file in the java folder of Matlab. To run with the GUI enter on the Matlab console: >> javaaddpath /Applications/MATLAB_R2013a.app/java/PSFGenerator.jar >> PSFGenerator.gui; % with Graphical User Interface >> psf = PSFGenerator.get; % Compute a PSF from the GUI parameters >> psf = PSFGenerator.compute('config.txt'); % Compute a PSF using the parameters of config.txt (without GUI) 
All the parameters are stored in a humanreadable text file config.txt.
#PSFGenerator #Sun Jan 14 21:27:57 CET 2018 PSFshortname=GL ResLateral=100.0 ResAxial=250.0 NY=256 NX=256 NZ=65 Type=32bits NA=1.4 LUT=Fire Lambda=610.0 Scale=Linear psfBWNI=1.5 psfBWaccuracy=Good psfRWNI=1.5 psfRWaccuracy=Good psfGLNI=1.5 psfGLNS=1.33 psfGLaccuracy=Good psfGLZPos=2000.0 psfGLTI=150.0 psfTVNI=1.5 psfTVZPos=2000.0 psfTVTI=150.0 psfTVNS=1.0 psfCircularPupildefocus=100.0 psfCircularPupilaxial=Linear psfCircularPupilfocus=0.0 psfOrientedGaussianaxial=Linear psfOrientedGaussianfocus=0.0 psfOrientedGaussiandefocus=100.0 psfAstigmatismfocus=0.0 psfAstigmatismaxial=Linear psfAstigmatismdefocus=100.0 psfDefocusDBot=30.0 psfDefocusZI=2000.0 psfDefocusDTop=30.0 psfDefocusDMid=1.0 psfDefocusK=275.0 psfCardinaleSineaxial=Linear psfCardinaleSinedefocus=100.0 psfCardinaleSinefocus=0.0 psfLorentzaxial=Linear psfLorentzfocus=0.0 psfLorentzdefocus=100.0 psfKoehlerdMid=3.0 psfKoehlerdTop=1.5 psfKoehlern1=1.0 psfKoehlern0=1.5 psfKoehlerdBot=6.0 psfDoubleHelixdefocus=100.0 psfDoubleHelixaxial=Linear psfDoubleHelixfocus=0.0 psfGaussianaxial=Linear psfGaussianfocus=0.0 psfGaussiandefocus=100.0 psfCosineaxial=Linear psfCosinefocus=0.0 psfCosinedefocus=100.0 psfVRIGLNI=1.5 psfVRIGLaccuracy=Good psfVRIGLNS2=1.4 psfVRIGLNS1=1.33 psfVRIGLTG=170.0 psfVRIGLNG=1.5 psfVRIGLTI=150.0 psfVRIGLRIvary=Linear psfVRIGLZPos=2000.0
PSFGenerator on Icy 
PSFGenerator on ImageJ 
You are free to use this software for research purposes, but you should not redistribute it without our consent. In addition, we expect you to include adequate citations and acknowledgments whenever you present or publish results that are based on it.
This PSFGenerator is based on a previous version including 7 PSF models and running only as a ImageJ plugin. The version is still available PSF_Generator19.03.13.jar.
This model describes the vectorialbased diffraction that occurs in the microscope [9, 10]. The phase aberration W(Θ) is given by the Gibson and Lanni model, but the three electric field components are evaluated independently. The PSF of this model is shift invariant in the lateral directions only. This model is defined by the following equation:
Spatial section XY 
Axial section YZ 
Running time: 12.53 ms to generate a 256x256x64 stack. 
This model describes the scalarbased diffraction that occurs in the microscope [7]. It accounts for the immersion, the coverslip and the sample layers. The PSF of this model is shift invariant in the lateral directions only. This model is defined by the following equation:
Parameter  Description 
NA  Numerical Aperture of the objective lens. This value is given by NA = ni sin(Θ) where Θ is one half of the angular aperture of the lens. 
n_{s}  Refractive index of the sample layer. 
t_{s}  Axial location of the point source within the sample layer. The corresponding input field in the plugin is "z". 
n_{g}  Actual value of the refractive index of the coverslip. This value is assumed to be equal to n_{g}* and it is therefore not used by the plugin. 
n_{g}*  Nominal value of the refractive index of the coverslip. This value is assumed to be equal to n_{g} and it is therefore not used by the plugin. 
n_{i}  Actual value of the refractive index of the immersion layer (the paper by Gibson and Lanni uses the notations n_{oil}). 
n_{i}*  Nominal value of the refractive index of the immersion layer (the paper by Gibson and Lanni paper uses the notations n_{oil}*. This value is assumed to be equal to n_{i} and it is therefore not used by the plugin. 
t_{g}  Actual value of the coverslip thickness. This value is assumed to be equal to t_{g}* and it is therefore not used by the plugin. 
t_{g}*  Nominal value of the coverslip thickness. This value is assumed to be equal to t_{g} and it is therefore not used by the plugin. 
t_{i}  Actual working distance between the objective and the coverslip (the Gibson and Lanni paper uses the notation t_{oil}). 
t_{i}*  Nominal working distance between the objective lens and the coverslip (the Gibson and Lanni paper uses the notation t_{oil}*). This value is given by t_{i}* = t_{i} + Δ where Δ is the stage displacement. When generating a zstack, stage displacement values are determined by the "Axial resolution" and by the "slices" input parameters of the plugin. If the number of slices is odd, then the middle slice corresponds to Δ = 0. 
λ  Wavelength of the light emitted by the point source. 
k  Wavenumber in vacuum of the emitted light, k = 2Π/λ. 
xd, yd  Lateral position for evaluating the PSF at the detector plane. The sampling points are {x_{d,n}, y_{d,m}} = {nΔ, mΔ}_{n,m} where Δ is the value of the "Pixel size in object space" input parameter, n =  (N1)/2 ... (N1)/2 and m =  (M1)/2 ... (M1)/2. N and M are the "width" and the "height" input parameters, respectively of the plugin. If N and M are odd, then the middle pixel is (0,0). 
z_{d}  Axial distance between the detector and the tube lens. This value is assumed to be equal to the focal length of the tube lens, and for this reason the plugin substitutes NA = a/z_{d} in h(x, y, z). 
W  The Gibson and Lanni phase aberration. 
C  A normalizing constant. The value C/z_{d} that appear in h(x, y, z) is determined by the "normalization" input parameter of the plugin. 
Spatial section XY 
Axial section YZ 
Running time: 3.92 s to generate a 256x256x64 stack. 
This model is an extension to the Gibson and Lanni model, that describes the scalarbased diffraction that occurs in the microscope [10]. It captures the aberration that caused due to variation of refractive index within the thick specimen. This model captures shift varying nature of PSF in axial direction only by three predefined functions: linear Logarithmic, and Exponential. This model defined by the following equations:
where:
Parameter  Description 
NA  Numerical Aperture of the objective lens. This value is given by NA = ni sin(Θ) where Θ is one half of the angular aperture of the lens. 
n_{s}  Refractive index of the sample layer. 
t_{s}  Axial location of the point source within the sample layer. The corresponding input field in the plugin is "z". 
n_{g}  Actual value of the refractive index of the coverslip. This value is assumed to be equal to n_{g}* and it is therefore not used by the plugin. 
n_{g}*  Nominal value of the refractive index of the coverslip. This value is assumed to be equal to n_{g} and it is therefore not used by the plugin. 
n_{i}  Actual value of the refractive index of the immersion layer (the paper by Gibson and Lanni uses the notations n_{oil}). 
n_{i}*  Nominal value of the refractive index of the immersion layer (the paper by Gibson and Lanni paper uses the notations n_{oil}*. This value is assumed to be equal to n_{i} and it is therefore not used by the plugin. 
t_{g}  Actual value of the coverslip thickness. This value is assumed to be equal to t_{g}* and it is therefore not used by the plugin. 
t_{g}*  Nominal value of the coverslip thickness. This value is assumed to be equal to t_{g} and it is therefore not used by the plugin. 
t_{i}  Actual working distance between the objective and the coverslip (the Gibson and Lanni paper uses the notation t_{oil}). 
t_{i}*  Nominal working distance between the objective lens and the coverslip (the Gibson and Lanni paper uses the notation t_{oil}*). This value is given by t_{i}* = t_{i} + Δ where Δ is the stage displacement. When generating a zstack, stage displacement values are determined by the "Axial resolution" and by the "slices" input parameters of the plugin. If the number of slices is odd, then the middle slice corresponds to Δ = 0. 
λ  Wavelength of the light emitted by the point source. 
k  Wavenumber in vacuum of the emitted light, k = 2Π/λ. 
xd, yd  Lateral position for evaluating the PSF at the detector plane. The sampling points are {x_{d,n}, y_{d,m}} = {nΔ, mΔ}_{n,m} where Δ is the value of the "Pixel size in object space" input parameter, n =  (N1)/2 ... (N1)/2 and m =  (M1)/2 ... (M1)/2. N and M are the "width" and the "height" input parameters, respectively of the plugin. If N and M are odd, then the middle pixel is (0,0). 
z_{d}  Axial distance between the detector and the tube lens. This value is assumed to be equal to the focal length of the tube lens, and for this reason the plugin substitutes NA = a/z_{d} in h(x, y, z). 
W  The Gibson and Lanni phase aberration. 
C  A normalizing constant. The value C/z_{d} that appear in h(x, y, z) is determined by the "normalization" input parameter of the plugin. 
Spatial section XY 
Axial section YZ 
Running time: 3.92 s to generate a 256x256x64 stack. 
This model describes the scalarbased diffraction that occurs in the microscope when the particle is in focus [5, 6]. The imaging plane, however, need not be in focus. The PSF of this model is shift invariant in all directions. This model is defined by the following equation:
Spatial section XY 
Axial section YZ 
Running time: 942 ms to generate a 256x256x64 stack. 
This models simulates defocusing in the Fourier domain by a modulated Gaussian function. The variance of Gaussian (σ) changes linearly with the axial axis. ω is the radial frequency which is defined by: ω^{2} = ω_{x}^{2} + ω_{y}^{2}. This model is defined by the following equation:
Spatial section XY 
Axial section YZ 
Running time: 2300 ms to generate a 256x256x64 stack. 
This model simulates the blurring effect with a 2D gaussian function. The variance of Gaussian (σ) changes linearly with the axial axis. This model is defined by the following equation:
Spatial section XY 
Axial section YZ 
Running time: 1800 ms to generate a 256x256x64 stack. 
© 2019 EPFL • webmaster.big@epfl.ch • 17.07.2019