Hi all,
I'm currently getting infos about deconvolution solutions (for a 4-5D microscope I'm setting up as a postdoc project). I know there are three plugins that seem to propose deconvolution in ImageJ, namely DeconvolutionJ from Nick Linnenbrügger (last update 2002, not much informations), IterativeDeconvolve3D from Bob Dougherty at Optinav (last update April 2005, seems to be used in aeroacoustics), and 3D Deconvolution by Pierre Besson at BIG (last updated March 2005, seems aimed at transmission images). I was wondering if somebody tested these plugins comparatively and could tell me about their respective performance and differences. If not, do anyone use these plugin now ? I'm interested in deconvolving 3D stacks of fluorescence widefield images. Are you aware of any active or currently-developed plugin that could be used ? On a related note, do anyone still use the free XCOSM deconvolution software ? Dr Conchello, who developed it, is announcing a new deconvolution software called ORMFCOSM for quite a while now. Is this software still in development ? More generally, it seems like there are very few free options for free/open source deconvolution software. I was wondering if it has to do with every specialist in this field being sponsored by a company developing commercial software (I'm thinking about Huygens, Autoquant etc...). |
-----Original Message-----
From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of Christophe Leterrier Sent: dinsdag 17 oktober 2006 15:16 To: [hidden email] Subject: Deconvolution with ImageJ <...> More generally, it seems like there are very few free options for free/open source deconvolution software. I was wondering if it has to do with every specialist in this field being sponsored by a company developing commercial software (I'm thinking about Huygens, Autoquant etc...). Dear Christophe, I think it is a great challenge to program 3D deconvolution software in Java (with for instance the lucy-richardson iterative process) and let it compete with commercial available software. I'm using the Huygens pro software with 2 processor and 64bit support. Still, it takes me 10 minutes to deconvolve a stack with dimensions of 600X450X45 (XYZ) pixels. I think Java cannot compete with this dedicated software in terms of speed, but I am no expert. Can anyone who is really into the subject of computing speeds comment on this? It is al about 3D Fourier transforms, can Java compete in this area? Best Regards, Sjoerd Ligthart |
Hi,
Java has an undeserved bad rap when it comes to performance, left over from when Java was first released many years ago. Sure, it was slow then, but not so much anymore. There is no reason deconvolution in an open source Java application cannot be as fast as in a commercial application. Java 1.4.2 performs most mathematical operations as fast or faster than C++ and C# (http://www.osnews.com/story.php?news_id=5602&page=3). And Java 1.5 seems quite similar to 1.4.2 in terms of performance (http://www.shudo.net/jit/perf/). Even Java memory allocation and garbage collection is reportedly faster than direct memory management in C++ (http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html). And Java 1.6 will supposedly have substantial speed improvements, especially for Java2D on Mac OS X (http://www.javalobby.org/java/forums/t66270.html). -Curtis On 10/17/06, Ligthart, Sjoerd (TNW) <[hidden email]> wrote: > -----Original Message----- > From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of > Christophe Leterrier > Sent: dinsdag 17 oktober 2006 15:16 > To: [hidden email] > Subject: Deconvolution with ImageJ > > <...> > > More generally, it seems like there are very few free options for > free/open source deconvolution software. I was wondering if it has to > do with every specialist in this field being sponsored by a company > developing commercial software (I'm thinking about Huygens, Autoquant > etc...). > > > Dear Christophe, > > I think it is a great challenge to program 3D deconvolution software in > Java (with for instance the lucy-richardson iterative process) and let > it compete with commercial available software. > > I'm using the Huygens pro software with 2 processor and 64bit support. > Still, it takes me 10 minutes to deconvolve a stack with dimensions of > 600X450X45 (XYZ) pixels. I think Java cannot compete with this dedicated > software in terms of speed, but I am no expert. Can anyone who is really > into the subject of computing speeds comment on this? It is al about 3D > Fourier transforms, can Java compete in this area? > > Best Regards, > > Sjoerd Ligthart > |
Hi,
even if I doubt that a "straight" Java implementation of a 3D FFT will be as efficient as a highly optimized and self-adaptive package like FFTW (See www.fftw.org, it also uses SIMD instructions as AltiVec, SSE, 3dNow etc)., Bob Dougherty reported very good timing results on the Luxembourg conference for his 3D FFT routines that seem comparable to implementations in other languages. Java's JIT "hotspot" optimization seems to be able to acchieve very good runtime optimizations that many more "static" compilers might miss. Joachim Wesner |---------+---------------------------> | | Curtis Rueden | | | <[hidden email]| | | DU> | | | Gesendet von: | | | ImageJ Interest | | | Group | | | <[hidden email]| | | .GOV> | | | | | | | | | 17.10.2006 16:36| | | Bitte antworten | | | an ImageJ | | | Interest Group | |---------+---------------------------> >-------------------------------------------------------------------------------------------------------------------------------| | | | An: [hidden email] | | Kopie: (Blindkopie: Joachim Wesner/DEWET/LMSCentral/Leica) | | Thema: Re: Deconvolution with ImageJ | >-------------------------------------------------------------------------------------------------------------------------------| Hi, Java has an undeserved bad rap when it comes to performance, left over from when Java was first released many years ago. Sure, it was slow then, but not so much anymore. There is no reason deconvolution in an open source Java application cannot be as fast as in a commercial application. Java 1.4.2 performs most mathematical operations as fast or faster than C++ and C# (http://www.osnews.com/story.php?news_id=5602&page=3). And Java 1.5 seems quite similar to 1.4.2 in terms of performance (http://www.shudo.net/jit/perf/). Even Java memory allocation and garbage collection is reportedly faster than direct memory management in C++ (http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html ). And Java 1.6 will supposedly have substantial speed improvements, especially for Java2D on Mac OS X (http://www.javalobby.org/java/forums/t66270.html). -Curtis On 10/17/06, Ligthart, Sjoerd (TNW) <[hidden email]> wrote: > -----Original Message----- > From: ImageJ Interest Group [mailto:[hidden email]] On Behalf Of > Christophe Leterrier > Sent: dinsdag 17 oktober 2006 15:16 > To: [hidden email] > Subject: Deconvolution with ImageJ > > <...> > > More generally, it seems like there are very few free options for > free/open source deconvolution software. I was wondering if it has to > do with every specialist in this field being sponsored by a company > developing commercial software (I'm thinking about Huygens, Autoquant > etc...). > > > Dear Christophe, > > I think it is a great challenge to program 3D deconvolution software in > Java (with for instance the lucy-richardson iterative process) and let > it compete with commercial available software. > > I'm using the Huygens pro software with 2 processor and 64bit support. > Still, it takes me 10 minutes to deconvolve a stack with dimensions of > 600X450X45 (XYZ) pixels. I think Java cannot compete with this dedicated > software in terms of speed, but I am no expert. Can anyone who is really > into the subject of computing speeds comment on this? It is al about 3D > Fourier transforms, can Java compete in this area? > > Best Regards, > > Sjoerd Ligthart > ______________________________________________________________________ This email has been scanned by the MessageLabs Email Security System. For more information please visit http://www.messagelabs.com/email ______________________________________________________________________ |
In reply to this post by lechristophe
On 18 Oct 2006, at 07:01, IMAGEJ automatic digest system wrote:
> Date: Tue, 17 Oct 2006 09:36:26 -0500 > From: Curtis Rueden <[hidden email]> > Subject: Re: Deconvolution with ImageJ > > Hi, > > Java has an undeserved bad rap when it comes to performance, left over > from when Java was first released many years ago. Sure, it was slow > then, but not so much anymore. > > There is no reason deconvolution in an open source Java application > cannot be as fast as in a commercial application. Java 1.4.2 performs > most mathematical operations as fast or faster than C++ and C# > (http://www.osnews.com/story.php?news_id=5602&page=3). And Java 1.5 > seems quite similar to 1.4.2 in terms of performance > (http://www.shudo.net/jit/perf/). Even Java memory allocation and > garbage collection is reportedly faster than direct memory management > in C++ (http://www-128.ibm.com/developerworks/java/library/j- > jtp09275.html). > And Java 1.6 will supposedly have substantial speed improvements, > especially for Java2D on Mac OS X > (http://www.javalobby.org/java/forums/t66270.html). > > -Curtis What about Java support for multiple processors/cores? New computers will nearly all have them soon, and higher end workstations might have many processors. For instance the MacPro already has 4, and that might be 8 soon. Is Java multithreaded? What about altivec/SSE? Does java use these vector processor extensions that are available an our modern CPUs to speed things up by vectorisation of loops? At the BioImageXD project we have started the job of using converting the java deconvolution code for fluorescence images into C++, so it can use the same maths as ImageJ, and do batch deconvolution of many images, hopefully with thread parallelism on multiple processors and vectorisable loops for altivec/SSE (if it is written properly) We haven't completed this task and could use some help with it.... cheers Dan Dr. Daniel James White BSc. (Hons.) PhD Bioimaging Coordinator Nanoscience Centre and Department of Biological and Environmental Sciences Division of Molecular Recognition Ambiotica C242 PO Box 35 University of Jyväskylä Jyväskylä FIN 40014 Finland +358 14 260 4183 (work) +358 468102840 (mobile) http://www.bioimagexd.org http://www.chalkie.org.uk [hidden email] [hidden email] |
In reply to this post by lechristophe
Dear Christophe,
The Conchello algorithms were incorporated into a Mac-only application called ImageTrak. You can find it here: http://www.ohri.ca/programs/neuroscience/White_Matter_Injury/stysWeb/ stysImageTrak.htm I've not used it. I would like to test it and the three ImageJ-based options you mention, and I'm looking for a sample dataset. Does anyone have one? This would require an image stack and the relevant point spread function information (or a measured PSF). Bob Dougherty said he didn't have a microscope dataset for testing his, at least the last time I contacted him. Cheers, Jeff ---------------------------------------------- Jeff Hardin Professor, Department of Zoology Director, Biology Core Curriculum University of Wisconsin 1117 W. Johnson St. Madison, WI 53706 voice: (608) 262-9634 fax: (608) 262-7319 email: [hidden email] On Oct 17, 2006, at 11:01 PM, IMAGEJ automatic digest system wrote: > Date: Tue, 17 Oct 2006 15:16:05 +0200 > From: Christophe Leterrier <[hidden email]> > Subject: Deconvolution with ImageJ > > Hi all, > > I'm currently getting infos about deconvolution solutions (for a 4-5D > microscope I'm setting up as a postdoc project). I know there are > three plugins that seem to propose deconvolution in ImageJ, namely > DeconvolutionJ from Nick Linnenbrügger (last update 2002, not much > informations), IterativeDeconvolve3D from Bob Dougherty at Optinav > (last update April 2005, seems to be used in aeroacoustics), and 3D > Deconvolution by Pierre Besson at BIG (last updated March 2005, seems > aimed at transmission images). > > I was wondering if somebody tested these plugins comparatively and > could tell me about their respective performance and differences. If > not, do anyone use these plugin now ? I'm interested in deconvolving > 3D stacks of fluorescence widefield images. Are you aware of any > active or currently-developed plugin that could be used ? > > On a related note, do anyone still use the free XCOSM deconvolution > software ? Dr Conchello, who developed it, is announcing a new > deconvolution software called ORMFCOSM for quite a while now. Is this > software still in development ? > > More generally, it seems like there are very few free options for > free/open source deconvolution software. I was wondering if it has to > do with every specialist in this field being sponsored by a company > developing commercial software (I'm thinking about Huygens, Autoquant > etc...). |
In reply to this post by Daniel White
Hi,
On the subject of Java performance: I find the slowness of the jpg reader to be a problem. It, along with the poor zoom interface, make me use alternative programs ( Irfanview) to view and browse digital images. When I want to do some special function on an image I then must switch to ImageJ. Jon Dan White wrote: > On 18 Oct 2006, at 07:01, IMAGEJ automatic digest system wrote: > >> Date: Tue, 17 Oct 2006 09:36:26 -0500 >> From: Curtis Rueden <[hidden email]> >> Subject: Re: Deconvolution with ImageJ >> >> Hi, >> >> Java has an undeserved bad rap when it comes to performance, left over >> from when Java was first released many years ago. Sure, it was slow >> then, but not so much anymore. >> >> There is no reason deconvolution in an open source Java application >> cannot be as fast as in a commercial application. Java 1.4.2 performs >> most mathematical operations as fast or faster than C++ and C# >> (http://www.osnews.com/story.php?news_id=5602&page=3). And Java 1.5 >> seems quite similar to 1.4.2 in terms of performance >> (http://www.shudo.net/jit/perf/). Even Java memory allocation and >> garbage collection is reportedly faster than direct memory management >> in C++ >> (http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html). >> And Java 1.6 will supposedly have substantial speed improvements, >> especially for Java2D on Mac OS X >> (http://www.javalobby.org/java/forums/t66270.html). >> >> -Curtis > > What about Java support for multiple processors/cores? > New computers will nearly all have them soon, > and higher end workstations might have many processors. > For instance the MacPro already has 4, and that might be 8 soon. > Is Java multithreaded? > > What about altivec/SSE? > Does java use these vector processor extensions > that are available an our modern CPUs to speed things up > by vectorisation of loops? > > At the BioImageXD project we have started the job of > using converting the java deconvolution code for > fluorescence images into C++, so it can use the same maths as ImageJ, > and do batch deconvolution of many images, > hopefully with thread parallelism on multiple processors > and vectorisable loops for altivec/SSE (if it is written properly) > We haven't completed this task and could use some help with it.... > > cheers > > Dan > > > Dr. Daniel James White BSc. (Hons.) PhD > Bioimaging Coordinator > Nanoscience Centre and Department of Biological and Environmental > Sciences > Division of Molecular Recognition > Ambiotica C242 > PO Box 35 > University of Jyväskylä > Jyväskylä > FIN 40014 > Finland > > +358 14 260 4183 (work) > +358 468102840 (mobile) > http://www.bioimagexd.org > http://www.chalkie.org.uk > [hidden email] > [hidden email] > |
I've just had a look at ImageTrak (stysImageTrack). It seems to run on
an Intel Mac, surely using Rosetta emulation (that could mean poor speed performances). It seems to be quite powerfull based on the help file, of course more thorough testing is needed. Sadly the development of this software seems to be stopped since 2004 (with the promise of computer-distibuted deconvolution "to come" in the software !). Concerning experimental data, I could send you a stack from datas we used to deconvolve using Improvision's Volocity software. We used theoretical PSFs, not experimental ones so I can't give you PSFs.In fact, we only had few experimental PSFs that we only used to estimate the real parameters used to generate the theoretical PSF. To our surprise, based on the XZ cone angle of the experimental PSFs, the real NA of our 1.4 objective was around 1,15... But we had too few experimental beads stack to get a good experimental PSF that could be used to feed a deconvolution algorithm (I mean bead-averaged, circularily-averaged experimental PSFs with a reasonable S/N). Christophe Leterrier 2006/10/19, Jon Harman <[hidden email]>: > Hi, > > On the subject of Java performance: I find the slowness of the jpg > reader to be a problem. It, along with the poor zoom interface, make me > use alternative programs > ( Irfanview) to view and browse digital images. When I want to do > some special function on an image I then must switch to ImageJ. > > Jon > > Dan White wrote: > > On 18 Oct 2006, at 07:01, IMAGEJ automatic digest system wrote: > > > >> Date: Tue, 17 Oct 2006 09:36:26 -0500 > >> From: Curtis Rueden <[hidden email]> > >> Subject: Re: Deconvolution with ImageJ > >> > >> Hi, > >> > >> Java has an undeserved bad rap when it comes to performance, left over > >> from when Java was first released many years ago. Sure, it was slow > >> then, but not so much anymore. > >> > >> There is no reason deconvolution in an open source Java application > >> cannot be as fast as in a commercial application. Java 1.4.2 performs > >> most mathematical operations as fast or faster than C++ and C# > >> (http://www.osnews.com/story.php?news_id=5602&page=3). And Java 1.5 > >> seems quite similar to 1.4.2 in terms of performance > >> (http://www.shudo.net/jit/perf/). Even Java memory allocation and > >> garbage collection is reportedly faster than direct memory management > >> in C++ > >> (http://www-128.ibm.com/developerworks/java/library/j-jtp09275.html). > >> And Java 1.6 will supposedly have substantial speed improvements, > >> especially for Java2D on Mac OS X > >> (http://www.javalobby.org/java/forums/t66270.html). > >> > >> -Curtis > > > > What about Java support for multiple processors/cores? > > New computers will nearly all have them soon, > > and higher end workstations might have many processors. > > For instance the MacPro already has 4, and that might be 8 soon. > > Is Java multithreaded? > > > > What about altivec/SSE? > > Does java use these vector processor extensions > > that are available an our modern CPUs to speed things up > > by vectorisation of loops? > > > > At the BioImageXD project we have started the job of > > using converting the java deconvolution code for > > fluorescence images into C++, so it can use the same maths as ImageJ, > > and do batch deconvolution of many images, > > hopefully with thread parallelism on multiple processors > > and vectorisable loops for altivec/SSE (if it is written properly) > > We haven't completed this task and could use some help with it.... > > > > cheers > > > > Dan > > > > > > Dr. Daniel James White BSc. (Hons.) PhD > > Bioimaging Coordinator > > Nanoscience Centre and Department of Biological and Environmental > > Sciences > > Division of Molecular Recognition > > Ambiotica C242 > > PO Box 35 > > University of Jyväskylä > > Jyväskylä > > FIN 40014 > > Finland > > > > +358 14 260 4183 (work) > > +358 468102840 (mobile) > > http://www.bioimagexd.org > > http://www.chalkie.org.uk > > [hidden email] > > [hidden email] > > > |
In reply to this post by Daniel White
On Oct 18, 2006, at 7:32 AM, Dan White wrote:
> What about Java support for multiple processors/cores? > New computers will nearly all have them soon, > and higher end workstations might have many processors. > For instance the MacPro already has 4, and that might be 8 soon. > Is Java multithreaded? Oh, yes. I kludged up a multithreaded stack reslicer some time ago, and recently tested it on a four-processor G5 system, reslicing a 400x400x100 16-bit volume: 1 thread: 36 seconds 2 threads: 18 seconds 4 threads: 9.5 seconds This code was based on an ancient version of ImageJ (1.27?), and it's possible that more current reslicing code (which is much more efficient) won't gain quite *that* much from multiprocessing. But Java, at least in versions 1.3 and later on OS X, definitely allows you to take advantage of multiple processors. (And there was no significant penalty when running multithreaded on a single-processor machine, at least until I went to hundreds of threads.) > What about altivec/SSE? > Does java use these vector processor extensions > that are available an our modern CPUs to speed things up > by vectorisation of loops? I don't know the answer, but I'm sure the answer is out there. It seems likely that hand-crafted assembly code will always have an advantage over Java. Then again, they used to say assembly would always allow better performance than compiled high-level languages; this was only true until compilers got better at optimizing than people are. :-) > At the BioImageXD project we have started the job of > using converting the java deconvolution code for > fluorescence images into C++, so it can use the same maths as ImageJ, > and do batch deconvolution of many images, > hopefully with thread parallelism on multiple processors > and vectorisable loops for altivec/SSE (if it is written properly) > We haven't completed this task and could use some help with it.... Based on my experience, if you've got computation-intensive (as opposed to memory- or disk-intensive) code, and it's "embarrassingly parallel" (there's no dependence among parallel compute threads), multi-threaded Java is a big win. I want to revisit the multithreaded-stack code and turn it into something fit for release, but I'm not sure how soon I'll be able to do so. As you say, multi-core processors are quickly becoming standard, and the population that can benefit from multithreaded code is growing. -- -jeffB (Jeff Brandenburg, Duke Center for In-Vivo Microscopy) |
In reply to this post by lechristophe
We would love to see fast decon in imagej. We have been thinking about doing one using the NVIDA array processor o n the video board (or Fermi or Tesla). We saw an FFT algorithm that some japanese guys did for the Tesla that would do a 256^3 FFT in 30ms. And that was a board of several years ago. It would be so much fun to have the highest speed decon be free and in imageJ. This would allow realtime decon of a Weiner transform. A bit slower with iterative but at those speeds it could be interactive. Please, somebody do this!!!!!!!!!!!!!!!!!!
|
In reply to this post by lechristophe
We would love to see fast decon in imagej. We have been thinking about doing
one using the NVIDA array processor o n the video board (or Fermi or Tesla). We saw an FFT algorithm that some japanese guys did for the Tesla that would do a 256^3 FFT in 30ms. And that was a board of several years ago. It would be so much fun to have the highest speed decon be free and in imageJ. This would allow realtime decon of a Weiner transform. A bit slower with iterative but at those speeds it could be interactive. Please, somebody do this!!!!!!!!!!!!!!!!!! |
Free forum by Nabble | Edit this page |