Command Line Interface

If you installed pycudadecon using conda, the original binaries for OTF generation (radialft) and deconvolution (cudadecon) will also be installed in your conda environment. The CLI is not created by pycudadecon; it is entirely defined by cudadecon.

cudadecon

The cudadecon command runs deconvolution (with deskewing and rotation if desired) on all of the files in the --input-dir whose names match the pattern --filename-pattern, using the OTF specified by --otf-arg.

Examples

# deconvolve a folder of images
cudadecon /folder/of/images 488nm /path/to/488nm_otf.tif -z 0.3

# a typical lattice experiment might also add the deskew flag and maybe MIPs
cudadecon /folder/of/images 488nm /path/to/488nm_otf.tif -z 0.3 -D 31.5 -M 0 0 1

Run cudadecon --help at the command prompt for the full menu of options. (the output below may be slightly out of date)

$ cudadecon -h

cudaDeconv.  Version: 0.7.0
:
  --input-dir arg                   Folder of input images
  --filename-pattern arg            File name pattern to find input images
                                    to process
  --otf-file arg                    OTF file
  --drdata arg (=0.104)             Image x-y pixel size (um)
  -z [ --dzdata ] arg (=0.25)       Image z step (um)
  --drpsf arg (=0.104)              PSF x-y pixel size (um)
  -Z [ --dzpsf ] arg (=0.1)         PSF z step (um)
  -l [ --wavelength ] arg (=0.525)  Emission wavelength (um)
  -W [ --wiener ] arg (=-1)         Wiener constant (regularization
                                    factor); if this value is positive then
                                    do Wiener filter instead of R-L
  -b [ --background ] arg (=90)     User-supplied background
  -e [ --napodize ] arg (=15)       # of pixels to soften edge with
  -E [ --nzblend ] arg (=0)         # of top and bottom sections to blend
                                    in to reduce axial ringing
  -d [ --dupRevStack ]              Duplicate reversed stack prior to decon
                                    to reduce Z ringing
  -n [ --NA ] arg (=1.2)            Numerical aperture
  -i [ --RL ] arg (=15)             Run Richardson-Lucy, and set how many
                                    iterations
  -D [ --deskew ] arg (=0)          Deskew angle; if not 0.0 then perform
                                    deskewing before deconv
  --dcbds                           If deskewing, do it after decon;
                                    require sample-scan PSF and non-RA 3D OTF
  --padval arg (=0)                 Value to pad image with when deskewing
  -w [ --width ] arg (=0)           If deskewed, the output image's width
  -x [ --shift ] arg (=0)           If deskewed, the output image's extra
                                    shift in X (positive->left
  -R [ --rotate ] arg (=0)          Rotation angle; if not 0.0 then perform
                                    rotation around y axis after deconv
  -S [ --saveDeskewedRaw ]          Save deskewed raw data to files
  -C [ --crop ] arg                 Crop final image size to [x1:x2, y1:y2,
                                    z1:z2]; takes 6 integers separated by
                                    space: x1 x2 y1 y2 z1 z2;
  -M [ --MIP ] arg                  Save max-intensity projection along x,
                                    y, or z axis; takes 3 binary numbers
                                    separated by space: 0 0 1
  -m [ --rMIP ] arg                 Save max-intensity projection of raw
                                    deskewed data along x, y, or z axis;
                                    takes 3 binary numbers separated by
                                    space: 0 0 1
  -u [ --uint16 ]                   Save result in uint16 format; should be
                                    used only if no actual decon is
                                    performed
  -a [ --DoNotAdjustResForFFT ]     Don't change data resolution size.
                                    Otherwise data is cropped to perform
                                    faster, more memory efficient FFT: size
                                    factorable into 2,3,5,7)
  --Pad arg (=0)                    Pad the image data with mirrored values
                                    to avoid edge artifacts. Currently only
                                    enabled when rotate and deskew are
                                    zero.
  --LSC arg                         Lightsheet correction file
  --FlatStart                       Start the RL from a guess that is a
                                    flat image filled with the median image
                                    value.  This may suppress noise.
  -p [ --bleachCorrection ]         Apply bleach correction when running
                                    multiple images in a single batch
  --lzw                             Use LZW tiff compression
  --skip arg (=0)                   Skip the first 'skip' number of files.
  --no_overwrite                    Don't reprocess files that are already
                                    deconvolved (i.e. exist in the GPUdecon
                                    folder).
  -Q [ --DevQuery ]                 Show info and indices of available GPUs
  -h [ --help ]                     This help message.
  -v [ --version ]                  show version and quit

radialft

The radialft command turns a 3D PSF volume into a radially-averaged 2D complex OTF file that can be used by cudaDecon (or a 3D OTF file if –3Dout is specified).

Examples

radialft /path/to/psf_file.tif /path/to/new_otf_file.tif --fixorigin 10 --nocleanup

Run radialft --help at the command prompt for the full menu of options

$ radialft --help

    --input-file arg           input PSF file
    --output-file arg          output OTF file to write
    --na arg (=1.25)           NA of detection objective
    --nimm arg (=1.29999995)   refractive index of immersion medium
    --xyres arg (=0.104000002) x-y pixel size
    --zres arg (=0.104000002)  z pixel size
    --wavelength arg (=530)    emission wavelength in nm
    --fixorigin arg (=5)       for all kz, extrapolate using pixels kr=1 to this
                                pixel to get value for kr=0
    --krmax arg (=0)           pixels outside this limit will be zeroed
                                (overwriting estimated value from NA and NIMM)
    --nocleanup                elect not to do clean-up outside OTF support
    --background arg           use user-supplied background instead of the
                                estimated
    -3 [ --3Dout ]             Output 3D, instead of rotationally averaged, OTF
    -h [ --help ]              produce help message