Deconvolution for 3D Quantitative Fluorescence Microscopy Imaging
Deconvolution, a computationally intensive image processing technique, has become an established procedure for restoring quantitative information from optical sectioning images acquired by fluorescence microscopy.
Deconvolution Software Package
This software package provides an application programming interface for generating a 3D point spread function (PSF) derived from on a theoretical PSF model and routines to perform 3D deconvolution using either of three constrained iterative deconvolution algorithms: one based on a Poisson noise model and two others based on a Gaussian noise model. The deconvolution library is written in C++ and and has been designed to provide a simple programmatic interface for inclusion of these capabilities into other software. Included is a 3D image viewer application that is useful for visualization of 3D data sets. Also available are command-line applications which provide standalone deconvolution capabilities.
Installing the Deconvolution Software Package
NOTE: If you follow along with the Ubuntu Dapper installation instructions, you'll have to make sure that the universe sources are uncommented in /etc/apt/sources.list
1. Setup build environment
For those not using Ubuntu, you need at minimal, gcc/g++, scons, and subversion to get the software. Building your own compiler is outside the scope of this document. scons and subversion are the only two nonstandard packages, although subversion is becomming much more standard, and scons is readily availible from most package repositories.
$ sudo apt-get install build-essential manpages-dev automake1.9 scons subversion
2. Get some extra libraries
Extra libraries needed:
- boost headers - Boost Library
- libfftw3 libfftw3f - FFTW3 Library
- libgslcblas libgsl - Gnu Science Library
- libglut libGL libGLU - GL Library, only if you plan on installing viewers
Install libraties using apt-get
$ sudo apt-get libboost-dev $ sudo apt-get fftw3 fftw3-dev fftw3-doc $ sudo apt-get libgsl0 libgsl0-dbg libgsl0-dev gsl-bin gsl-doc-pdf gsl-ref-html gsl-ref-psdoc $ sudo apt-get freeglut3 freeglut3-dbg freeglut3-dev libglut3 libglut3-dev libglew1 $ sudo apt-get libglu1-mesa libglu1-mesa-dev libgl1-mesa libgl1-mesa-dev libgl1-mesa-dri
3. Building deconv
Get sources from the repository:
$ svn co http://svn.lsdcas.engineering.uiowa.edu/repos/lsdcas/trunk/deconv $ cd deconv
- Build all in the "/usr/local/" directory: (default, make sure that you have the permission)
$ scons $ sudo scons install
- Build all in the current directory:
$ scons Local=1 $ sudo scons install
- Build libdeconv and its utilities only in the "/usr/local/" directory:
$ scons LibOnly=1 $ sudo scons install
- Build libdeconv and its utilities only in the current directory:
$ scons Local=1 LibOnly=1 $ sudo scons install
If you get errors while the software is building, try using:
$ scons -h
To get a list of all the possible build options. Most likely, a required library is installed somewhere other than expected. This is common for libraries you may have built locally.
4. Update ld configuration
Chances are, if you got too excited and tried running one of the programs, you recieved an error about not being able to find the shared libraries. This is because ld (dynamic linker) doesn't know where to locate 'libdeconv'. There are two easy fixes for this.
- The first, is to set the following environment variable in your ~/.bash_profile:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib (if you install 'deconv' in the default mode)
- The Second, is to type the following command in a terminal where you want to run deconv programs:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:the_path_of_libdeconv (if you install 'deconv' using 'Local=1' )
To make this configuration system wide you can do the following:
$ sudo vi /etc/ld.so.conf
This may or may not be an empty file. The format is a single directory entry per line. Regardless, just add to the end of the file with /usr/local/lib (if you install 'deconv' in the default mode) or 'the_path_of_libdeconv' (if you install 'deconv' using 'Local=1') Now all you need is one last command to inform ld of its new configuration
$ sudo ldconfig
Contact
You can contact the author at mailto://yuansheng-sun@uiowa.edu
