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: scalar-based diffraction model Born & Wolf, scalar-based diffraction model with 3 layers Gibson & Lanni, and vectorial-based 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", "Cardinale-Sine", "Cosine", "Circular-Pupil", "Astigmatism", "Oriented-Gaussian", "Double-Helix".
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 readily-available for microscopy practitioners. Our Java implementation achieves fast execution times, as it is based on multi-threading 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, 3-D 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 Open-Source 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 Single-Molecule Localization Microscopy," Nature Methods—, vol. 12, no. 8, pp. 717-724, 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, "Super-Resolution Fight Club: Assessment of 2D and 3D Single-Molecule Localization Microscopy Software," Nature Methods—Techniques for Life Scientists and Chemists, vol. 16, no. 5, pp. 387-395, 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] | psf-gl.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 image-processing and image-analysis 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 human-readable text file config.txt.
#PSFGenerator #Sun Jan 14 21:27:57 CET 2018 PSF-shortname=GL ResLateral=100.0 ResAxial=250.0 NY=256 NX=256 NZ=65 Type=32-bits NA=1.4 LUT=Fire Lambda=610.0 Scale=Linear psf-BW-NI=1.5 psf-BW-accuracy=Good psf-RW-NI=1.5 psf-RW-accuracy=Good psf-GL-NI=1.5 psf-GL-NS=1.33 psf-GL-accuracy=Good psf-GL-ZPos=2000.0 psf-GL-TI=150.0 psf-TV-NI=1.5 psf-TV-ZPos=2000.0 psf-TV-TI=150.0 psf-TV-NS=1.0 psf-Circular-Pupil-defocus=100.0 psf-Circular-Pupil-axial=Linear psf-Circular-Pupil-focus=0.0 psf-Oriented-Gaussian-axial=Linear psf-Oriented-Gaussian-focus=0.0 psf-Oriented-Gaussian-defocus=100.0 psf-Astigmatism-focus=0.0 psf-Astigmatism-axial=Linear psf-Astigmatism-defocus=100.0 psf-Defocus-DBot=30.0 psf-Defocus-ZI=2000.0 psf-Defocus-DTop=30.0 psf-Defocus-DMid=1.0 psf-Defocus-K=275.0 psf-Cardinale-Sine-axial=Linear psf-Cardinale-Sine-defocus=100.0 psf-Cardinale-Sine-focus=0.0 psf-Lorentz-axial=Linear psf-Lorentz-focus=0.0 psf-Lorentz-defocus=100.0 psf-Koehler-dMid=3.0 psf-Koehler-dTop=1.5 psf-Koehler-n1=1.0 psf-Koehler-n0=1.5 psf-Koehler-dBot=6.0 psf-Double-Helix-defocus=100.0 psf-Double-Helix-axial=Linear psf-Double-Helix-focus=0.0 psf-Gaussian-axial=Linear psf-Gaussian-focus=0.0 psf-Gaussian-defocus=100.0 psf-Cosine-axial=Linear psf-Cosine-focus=0.0 psf-Cosine-defocus=100.0 psf-VRIGL-NI=1.5 psf-VRIGL-accuracy=Good psf-VRIGL-NS2=1.4 psf-VRIGL-NS1=1.33 psf-VRIGL-TG=170.0 psf-VRIGL-NG=1.5 psf-VRIGL-TI=150.0 psf-VRIGL-RIvary=Linear psf-VRIGL-ZPos=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_Generator-19.03.13.jar.
This model describes the vectorial-based 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 scalar-based diffraction that occurs in the microscope [7]. It accounts for the immersion, the cover-slip 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. |
ns | Refractive index of the sample layer. |
ts | Axial location of the point source within the sample layer. The corresponding input field in the plugin is "z". |
ng | Actual value of the refractive index of the coverslip. This value is assumed to be equal to ng* and it is therefore not used by the plugin. |
ng* | Nominal value of the refractive index of the coverslip. This value is assumed to be equal to ng and it is therefore not used by the plugin. |
ni | Actual value of the refractive index of the immersion layer (the paper by Gibson and Lanni uses the notations noil). |
ni* | Nominal value of the refractive index of the immersion layer (the paper by Gibson and Lanni paper uses the notations noil*. This value is assumed to be equal to ni and it is therefore not used by the plugin. |
tg | Actual value of the coverslip thickness. This value is assumed to be equal to tg* and it is therefore not used by the plugin. |
tg* | Nominal value of the coverslip thickness. This value is assumed to be equal to tg and it is therefore not used by the plugin. |
ti | Actual working distance between the objective and the coverslip (the Gibson and Lanni paper uses the notation toil). |
ti* | Nominal working distance between the objective lens and the coverslip (the Gibson and Lanni paper uses the notation toil*). This value is given by ti* = ti + Δ where Δ is the stage displacement. When generating a z-stack, 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 {xd,n, yd,m} = {nΔ, mΔ}n,m where Δ is the value of the "Pixel size in object space" input parameter, n = - (N-1)/2 ... (N-1)/2 and m = - (M-1)/2 ... (M-1)/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). |
zd | 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/zd in h(x, y, z). |
W | The Gibson and Lanni phase aberration. |
C | A normalizing constant. The value C/zd 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 scalar-based 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. |
ns | Refractive index of the sample layer. |
ts | Axial location of the point source within the sample layer. The corresponding input field in the plugin is "z". |
ng | Actual value of the refractive index of the coverslip. This value is assumed to be equal to ng* and it is therefore not used by the plugin. |
ng* | Nominal value of the refractive index of the coverslip. This value is assumed to be equal to ng and it is therefore not used by the plugin. |
ni | Actual value of the refractive index of the immersion layer (the paper by Gibson and Lanni uses the notations noil). |
ni* | Nominal value of the refractive index of the immersion layer (the paper by Gibson and Lanni paper uses the notations noil*. This value is assumed to be equal to ni and it is therefore not used by the plugin. |
tg | Actual value of the coverslip thickness. This value is assumed to be equal to tg* and it is therefore not used by the plugin. |
tg* | Nominal value of the coverslip thickness. This value is assumed to be equal to tg and it is therefore not used by the plugin. |
ti | Actual working distance between the objective and the coverslip (the Gibson and Lanni paper uses the notation toil). |
ti* | Nominal working distance between the objective lens and the coverslip (the Gibson and Lanni paper uses the notation toil*). This value is given by ti* = ti + Δ where Δ is the stage displacement. When generating a z-stack, 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 {xd,n, yd,m} = {nΔ, mΔ}n,m where Δ is the value of the "Pixel size in object space" input parameter, n = - (N-1)/2 ... (N-1)/2 and m = - (M-1)/2 ... (M-1)/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). |
zd | 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/zd in h(x, y, z). |
W | The Gibson and Lanni phase aberration. |
C | A normalizing constant. The value C/zd 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 scalar-based 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 = ωx2 + ωy2. 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