Skip to content

Basics (CLI)

In this example, we will demonstrate how to use faser to simulate the point spread function (PSF) of an optical microscope, using a 1.2 NA objective lens with a 488 nm excitation wavelength, and explore the impact of two different beam profiles on the PSF shape. This example will focus on using the faser command-line interface (CLI) to generate the PSF.

Step by Step Guide

  1. Open Terminal

    To get started with faser, open a terminal inside a working directory where you would like to output the PSF files (and their corresponding parameter configs).

  2. Familiarize yourself with the CLI Parameters

    The faser cli accepts a number of parameters that can be used to customize the PSF simulation. To see the available parameters, you can run the following command:

    Terminal window
    faser --help

    This will display a list of available parameters that can be used to customize the PSF simulation.

    Terminal window
    Usage: faser [OPTIONS]
    ╭─ Options ────────────────────────────────────────────────────────────────────╮
    --config FILENAME Path to a JSON file
    --detector_gaussian_noise FLOAT Detector Gaussian noise
    --gaussian_beam_noise FLOAT Gaussian_beam noise
    --add_noise NOISE
    --loaded_phase_mask OPTIONAL Loaded Phasemak
    --p FLOAT Ratio between Donut (p) and │
    Bottle (1-p) intensity │
    --mask_offset_y FLOAT Y offset of the phase mask in
    regard to pupil center
    --mask_offset_x FLOAT X offset of the phase mask in
    regard to pupil center
    --ring_radius FLOAT Radius of the ring phase mask
    (on unit pupil) │
    --rc FLOAT Ring charge (should be odd to
    produce bottle) │
    --vc FLOAT Vortex charge (should be
    integer to produce donut) │
    --epsilon FLOAT Ellipticity of the
    polarization (in °) │
    --psi FLOAT Direction of the polarization
    (in °) │
    --ampl_offset_y FLOAT Y offset of the amplitude
    profile in regard to pupil
    center
    --ampl_offset_x FLOAT X offset of the amplitude
    profile in regard to pupil
    center
    --waist FLOAT Diameter of the input beam on
    the objective pupil (in µm) │
    --wavelength FLOAT Wavelength of light (in µm) │
    --polarization POLARIZATION
    --mode MODE
    --aberration_offset_y FLOAT Y offset of the aberration
    function in regard to pupil
    center
    --aberration_offset_x FLOAT X offset of the aberration
    function in regard to pupil
    center
    --a24 ABERRATIONFLOAT Secondary spherical
    --a12 ABERRATIONFLOAT Primary spherical
    --a9 ABERRATIONFLOAT Oblique Trefoil
    --a8 ABERRATIONFLOAT Horizontal Coma
    --a7 ABERRATIONFLOAT Vertical Coma
    --a6 ABERRATIONFLOAT Vertical Trefoil
    --a5 ABERRATIONFLOAT Vertical Astigmatism
    --a4 ABERRATIONFLOAT Defocus
    --a3 ABERRATIONFLOAT Oblique Astigmatism
    --a2 ABERRATIONFLOAT Horizontal Tilt
    --a1 ABERRATIONFLOAT Vertical Tilt
    --a0 ABERRATIONFLOAT Piston
    --wind_offset_y FLOAT Y offset of the cranial window
    in regard to pupil center
    --wind_offset_x FLOAT X offset of the cranial window
    in regard to pupil center
    --wind_depth FLOAT Depth of the cranial window
    (in mm) │
    --wind_radius FLOAT Diameter of the cranial window
    (in mm) │
    --window WINDOW
    --tilt FLOAT Tilt angle of the coverslip
    (in °) │
    --depth FLOAT Imaging depth in the sample
    (in µm) │
    --collar FLOAT Correction collar setting to
    compensate coverslip thickness
    --thickness FLOAT Thickness of the coverslip (in
    µm) │
    --n3 FLOAT Refractive index of the sample
    --n2 FLOAT Refractive index of the
    coverslip
    --n1 FLOAT Refractive index of the
    immersion medium
    --wd FLOAT Working Distance of the
    objective lens (in µm) │
    --na FLOAT Numerical Aperture of
    Objective Lens
    --normalize NORMALIZE
    --nphi INTEGER Integration sted of the
    aximutal angle on the pupil
    --ntheta INTEGER Integration sted of the
    focalization angle
    --nz INTEGER Discretization of Z axis -
    better be odd number for
    perfect 0
    --nxy INTEGER Discretization of image plane
    - better be odd number for
    perfect 0
    --l_obs_z FLOAT Observation scale in Z (in µm) │
    --l_obs_xy FLOAT Observation scale in XY (in
    µm) │
    --help Show this message and exit.
    ╰──────────────────────────────────────────────────────────────────────────────╯
  3. Run the PSF Simulation

    Terminal window
    faser --na=1.2 --wavelength=0.488
  4. Inspect the PSF

    Once the simulation is complete, you can inspect the PSF by opening the generated TIFF file in an image viewer or analysis software. You can also import the psf into napari for visualization or reopen the psf_config.json file to see the parameters used for the simulation.

    • psf_config.json
    • psf.tif