Shortening Z-Stacks

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
7 messages Options
Reply | Threaded
Open this post in threaded view
|

Shortening Z-Stacks

Jacob Keller-2
Dear Imagers,

I have some .czi z-stack timelapses which are 40-60 slices in z, but it
would be nice to merge them down to, say, 10-20 slices by binning adjacent
slices. The bin command is not working on them, perhaps because they are
timelapses. Is this potentially a bug?

All the best,

Jacob Keller

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

ctrueden
Hi Jacob,

> The bin command is not working on them, perhaps because they are
> timelapses. Is this potentially a bug?

It would help greatly to have a Minimal, Complete, Verifiable Example
(MCVE) illustrating the issue. For guidance, see this article:
http://imagej.net/Bug_reporting_best_practices

Regards,
Curtis

--
Curtis Rueden
LOCI software architect - https://loci.wisc.edu/software
ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
Did you know ImageJ has a forum? http://forum.imagej.net/


On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <[hidden email]>
wrote:

> Dear Imagers,
>
> I have some .czi z-stack timelapses which are 40-60 slices in z, but it
> would be nice to merge them down to, say, 10-20 slices by binning adjacent
> slices. The bin command is not working on them, perhaps because they are
> timelapses. Is this potentially a bug?
>
> All the best,
>
> Jacob Keller
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

Jacob Keller-2
Got it--those guidelines make a lot of sense, and will try to follow them
in the future. I've attached a really-minimized data set (1 MB) hereto for
an MCVE. Binning, interestingly enough, does work in xy, but not z. When
this data set is cut to one timepoint, z-binning works, so there might be
some confusion between z/t. Maybe binning should ask explicitly for all
(xyzt? maybe even c too?)

Jacob

On Thu, Aug 24, 2017 at 10:45 AM, Curtis Rueden <[hidden email]> wrote:

> Hi Jacob,
>
> > The bin command is not working on them, perhaps because they are
> > timelapses. Is this potentially a bug?
>
> It would help greatly to have a Minimal, Complete, Verifiable Example
> (MCVE) illustrating the issue. For guidance, see this article:
> http://imagej.net/Bug_reporting_best_practices
>
> Regards,
> Curtis
>
> --
> Curtis Rueden
> LOCI software architect - https://loci.wisc.edu/software
> ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> Did you know ImageJ has a forum? http://forum.imagej.net/
>
>
> On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <[hidden email]>
> wrote:
>
> > Dear Imagers,
> >
> > I have some .czi z-stack timelapses which are 40-60 slices in z, but it
> > would be nice to merge them down to, say, 10-20 slices by binning
> adjacent
> > slices. The bin command is not working on them, perhaps because they are
> > timelapses. Is this potentially a bug?
> >
> > All the best,
> >
> > Jacob Keller
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>
--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html

UnBinnable.tif (1M) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

ctrueden
Hi Jacob,

Thanks, that helps.

It looks like the logic in the Binner class which handles hyperstacks is
commented out for some reason:

https://github.com/imagej/ImageJA/blob/v1.51p/src/main/java/ij/plugin/Binner.java#L76-L77

That also explains why it works when there is only one timepoint, since
IIRC, XYZT data constitutes a "hyperstack" but XYZ data does not.

So I'd call this a bug.

Here is a Groovy script which calls the hyperstack binning method directly:

#@ImagePlus image
#@int(label = "Z shrink factor", value = 2) zshrink
#@output ImagePlus result
import ij.plugin.Binner
result = new Binner().shrinkHyperstackZ(image, zshrink as int)

It appears to work in my tests, but be warned that that code might have
been commented out for a good reason -- e.g. to avoid bugs. So caveat
emptor.

Hopefully Wayne will have more insight into this.

Regards,
Curtis

--
Curtis Rueden
LOCI software architect - https://loci.wisc.edu/software
ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
Did you know ImageJ has a forum? http://forum.imagej.net/


On Thu, Aug 24, 2017 at 10:24 AM, Jacob Keller <[hidden email]>
wrote:

> Got it--those guidelines make a lot of sense, and will try to follow them
> in the future. I've attached a really-minimized data set (1 MB) hereto for
> an MCVE. Binning, interestingly enough, does work in xy, but not z. When
> this data set is cut to one timepoint, z-binning works, so there might be
> some confusion between z/t. Maybe binning should ask explicitly for all
> (xyzt? maybe even c too?)
>
> Jacob
>
> On Thu, Aug 24, 2017 at 10:45 AM, Curtis Rueden <[hidden email]> wrote:
>
> > Hi Jacob,
> >
> > > The bin command is not working on them, perhaps because they are
> > > timelapses. Is this potentially a bug?
> >
> > It would help greatly to have a Minimal, Complete, Verifiable Example
> > (MCVE) illustrating the issue. For guidance, see this article:
> > http://imagej.net/Bug_reporting_best_practices
> >
> > Regards,
> > Curtis
> >
> > --
> > Curtis Rueden
> > LOCI software architect - https://loci.wisc.edu/software
> > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > Did you know ImageJ has a forum? http://forum.imagej.net/
> >
> >
> > On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <[hidden email]>
> > wrote:
> >
> > > Dear Imagers,
> > >
> > > I have some .czi z-stack timelapses which are 40-60 slices in z, but it
> > > would be nice to merge them down to, say, 10-20 slices by binning
> > adjacent
> > > slices. The bin command is not working on them, perhaps because they
> are
> > > timelapses. Is this potentially a bug?
> > >
> > > All the best,
> > >
> > > Jacob Keller
> > >
> > > --
> > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > >
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

Jacob Keller-2
Okay, but it seems like binning should be a pretty commonly-used operation,
especially in the realm of hyperstacks. Is there something that can be done
in lieu of it? I have thought perhaps of making a macro which splits the
timepoints into individual substacks, bins, then reassembles, but that
seems a little clumsy...

JPK

On Thu, Aug 24, 2017 at 11:46 AM, Curtis Rueden <[hidden email]> wrote:

> Hi Jacob,
>
> Thanks, that helps.
>
> It looks like the logic in the Binner class which handles hyperstacks is
> commented out for some reason:
>
> https://github.com/imagej/ImageJA/blob/v1.51p/src/main/
> java/ij/plugin/Binner.java#L76-L77
>
> That also explains why it works when there is only one timepoint, since
> IIRC, XYZT data constitutes a "hyperstack" but XYZ data does not.
>
> So I'd call this a bug.
>
> Here is a Groovy script which calls the hyperstack binning method directly:
>
> #@ImagePlus image
> #@int(label = "Z shrink factor", value = 2) zshrink
> #@output ImagePlus result
> import ij.plugin.Binner
> result = new Binner().shrinkHyperstackZ(image, zshrink as int)
>
> It appears to work in my tests, but be warned that that code might have
> been commented out for a good reason -- e.g. to avoid bugs. So caveat
> emptor.
>
> Hopefully Wayne will have more insight into this.
>
> Regards,
> Curtis
>
> --
> Curtis Rueden
> LOCI software architect - https://loci.wisc.edu/software
> ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> Did you know ImageJ has a forum? http://forum.imagej.net/
>
>
> On Thu, Aug 24, 2017 at 10:24 AM, Jacob Keller <[hidden email]>
> wrote:
>
> > Got it--those guidelines make a lot of sense, and will try to follow them
> > in the future. I've attached a really-minimized data set (1 MB) hereto
> for
> > an MCVE. Binning, interestingly enough, does work in xy, but not z. When
> > this data set is cut to one timepoint, z-binning works, so there might be
> > some confusion between z/t. Maybe binning should ask explicitly for all
> > (xyzt? maybe even c too?)
> >
> > Jacob
> >
> > On Thu, Aug 24, 2017 at 10:45 AM, Curtis Rueden <[hidden email]>
> wrote:
> >
> > > Hi Jacob,
> > >
> > > > The bin command is not working on them, perhaps because they are
> > > > timelapses. Is this potentially a bug?
> > >
> > > It would help greatly to have a Minimal, Complete, Verifiable Example
> > > (MCVE) illustrating the issue. For guidance, see this article:
> > > http://imagej.net/Bug_reporting_best_practices
> > >
> > > Regards,
> > > Curtis
> > >
> > > --
> > > Curtis Rueden
> > > LOCI software architect - https://loci.wisc.edu/software
> > > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > > Did you know ImageJ has a forum? http://forum.imagej.net/
> > >
> > >
> > > On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <[hidden email]>
> > > wrote:
> > >
> > > > Dear Imagers,
> > > >
> > > > I have some .czi z-stack timelapses which are 40-60 slices in z, but
> it
> > > > would be nice to merge them down to, say, 10-20 slices by binning
> > > adjacent
> > > > slices. The bin command is not working on them, perhaps because they
> > are
> > > > timelapses. Is this potentially a bug?
> > > >
> > > > All the best,
> > > >
> > > > Jacob Keller
> > > >
> > > > --
> > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > >
> > >
> > > --
> > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > >
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

ctrueden
Hi Jacob,

> it seems like binning should be a pretty commonly-used operation,
> especially in the realm of hyperstacks. Is there something that can
> be done in lieu of it?

Let's wait to see what Wayne says. I am guessing he will change ImageJ
somehow to adjust for this situation.

In the meantime, feel free to try the Groovy script I posted earlier.

Regards,
Curtis

--
Curtis Rueden
LOCI software architect - https://loci.wisc.edu/software
ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
Did you know ImageJ has a forum? http://forum.imagej.net/


On Thu, Aug 24, 2017 at 1:38 PM, Jacob Keller <[hidden email]>
wrote:

> Okay, but it seems like binning should be a pretty commonly-used operation,
> especially in the realm of hyperstacks. Is there something that can be done
> in lieu of it? I have thought perhaps of making a macro which splits the
> timepoints into individual substacks, bins, then reassembles, but that
> seems a little clumsy...
>
> JPK
>
> On Thu, Aug 24, 2017 at 11:46 AM, Curtis Rueden <[hidden email]> wrote:
>
> > Hi Jacob,
> >
> > Thanks, that helps.
> >
> > It looks like the logic in the Binner class which handles hyperstacks is
> > commented out for some reason:
> >
> > https://github.com/imagej/ImageJA/blob/v1.51p/src/main/
> > java/ij/plugin/Binner.java#L76-L77
> >
> > That also explains why it works when there is only one timepoint, since
> > IIRC, XYZT data constitutes a "hyperstack" but XYZ data does not.
> >
> > So I'd call this a bug.
> >
> > Here is a Groovy script which calls the hyperstack binning method
> directly:
> >
> > #@ImagePlus image
> > #@int(label = "Z shrink factor", value = 2) zshrink
> > #@output ImagePlus result
> > import ij.plugin.Binner
> > result = new Binner().shrinkHyperstackZ(image, zshrink as int)
> >
> > It appears to work in my tests, but be warned that that code might have
> > been commented out for a good reason -- e.g. to avoid bugs. So caveat
> > emptor.
> >
> > Hopefully Wayne will have more insight into this.
> >
> > Regards,
> > Curtis
> >
> > --
> > Curtis Rueden
> > LOCI software architect - https://loci.wisc.edu/software
> > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > Did you know ImageJ has a forum? http://forum.imagej.net/
> >
> >
> > On Thu, Aug 24, 2017 at 10:24 AM, Jacob Keller <[hidden email]>
> > wrote:
> >
> > > Got it--those guidelines make a lot of sense, and will try to follow
> them
> > > in the future. I've attached a really-minimized data set (1 MB) hereto
> > for
> > > an MCVE. Binning, interestingly enough, does work in xy, but not z.
> When
> > > this data set is cut to one timepoint, z-binning works, so there might
> be
> > > some confusion between z/t. Maybe binning should ask explicitly for all
> > > (xyzt? maybe even c too?)
> > >
> > > Jacob
> > >
> > > On Thu, Aug 24, 2017 at 10:45 AM, Curtis Rueden <[hidden email]>
> > wrote:
> > >
> > > > Hi Jacob,
> > > >
> > > > > The bin command is not working on them, perhaps because they are
> > > > > timelapses. Is this potentially a bug?
> > > >
> > > > It would help greatly to have a Minimal, Complete, Verifiable Example
> > > > (MCVE) illustrating the issue. For guidance, see this article:
> > > > http://imagej.net/Bug_reporting_best_practices
> > > >
> > > > Regards,
> > > > Curtis
> > > >
> > > > --
> > > > Curtis Rueden
> > > > LOCI software architect - https://loci.wisc.edu/software
> > > > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > > > Did you know ImageJ has a forum? http://forum.imagej.net/
> > > >
> > > >
> > > > On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <
> [hidden email]>
> > > > wrote:
> > > >
> > > > > Dear Imagers,
> > > > >
> > > > > I have some .czi z-stack timelapses which are 40-60 slices in z,
> but
> > it
> > > > > would be nice to merge them down to, say, 10-20 slices by binning
> > > > adjacent
> > > > > slices. The bin command is not working on them, perhaps because
> they
> > > are
> > > > > timelapses. Is this potentially a bug?
> > > > >
> > > > > All the best,
> > > > >
> > > > > Jacob Keller
> > > > >
> > > > > --
> > > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > > >
> > > >
> > > > --
> > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > >
> > >
> > > --
> > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > >
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html
Reply | Threaded
Open this post in threaded view
|

Re: Shortening Z-Stacks

Jacob Keller-2
Yes, that works swimmingly, although the progress bar looks a little
fraught during the process!

Thanks very much,

Jacob

On Thu, Aug 24, 2017 at 3:03 PM, Curtis Rueden <[hidden email]> wrote:

> Hi Jacob,
>
> > it seems like binning should be a pretty commonly-used operation,
> > especially in the realm of hyperstacks. Is there something that can
> > be done in lieu of it?
>
> Let's wait to see what Wayne says. I am guessing he will change ImageJ
> somehow to adjust for this situation.
>
> In the meantime, feel free to try the Groovy script I posted earlier.
>
> Regards,
> Curtis
>
> --
> Curtis Rueden
> LOCI software architect - https://loci.wisc.edu/software
> ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> Did you know ImageJ has a forum? http://forum.imagej.net/
>
>
> On Thu, Aug 24, 2017 at 1:38 PM, Jacob Keller <[hidden email]>
> wrote:
>
> > Okay, but it seems like binning should be a pretty commonly-used
> operation,
> > especially in the realm of hyperstacks. Is there something that can be
> done
> > in lieu of it? I have thought perhaps of making a macro which splits the
> > timepoints into individual substacks, bins, then reassembles, but that
> > seems a little clumsy...
> >
> > JPK
> >
> > On Thu, Aug 24, 2017 at 11:46 AM, Curtis Rueden <[hidden email]>
> wrote:
> >
> > > Hi Jacob,
> > >
> > > Thanks, that helps.
> > >
> > > It looks like the logic in the Binner class which handles hyperstacks
> is
> > > commented out for some reason:
> > >
> > > https://github.com/imagej/ImageJA/blob/v1.51p/src/main/
> > > java/ij/plugin/Binner.java#L76-L77
> > >
> > > That also explains why it works when there is only one timepoint, since
> > > IIRC, XYZT data constitutes a "hyperstack" but XYZ data does not.
> > >
> > > So I'd call this a bug.
> > >
> > > Here is a Groovy script which calls the hyperstack binning method
> > directly:
> > >
> > > #@ImagePlus image
> > > #@int(label = "Z shrink factor", value = 2) zshrink
> > > #@output ImagePlus result
> > > import ij.plugin.Binner
> > > result = new Binner().shrinkHyperstackZ(image, zshrink as int)
> > >
> > > It appears to work in my tests, but be warned that that code might have
> > > been commented out for a good reason -- e.g. to avoid bugs. So caveat
> > > emptor.
> > >
> > > Hopefully Wayne will have more insight into this.
> > >
> > > Regards,
> > > Curtis
> > >
> > > --
> > > Curtis Rueden
> > > LOCI software architect - https://loci.wisc.edu/software
> > > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > > Did you know ImageJ has a forum? http://forum.imagej.net/
> > >
> > >
> > > On Thu, Aug 24, 2017 at 10:24 AM, Jacob Keller <[hidden email]
> >
> > > wrote:
> > >
> > > > Got it--those guidelines make a lot of sense, and will try to follow
> > them
> > > > in the future. I've attached a really-minimized data set (1 MB)
> hereto
> > > for
> > > > an MCVE. Binning, interestingly enough, does work in xy, but not z.
> > When
> > > > this data set is cut to one timepoint, z-binning works, so there
> might
> > be
> > > > some confusion between z/t. Maybe binning should ask explicitly for
> all
> > > > (xyzt? maybe even c too?)
> > > >
> > > > Jacob
> > > >
> > > > On Thu, Aug 24, 2017 at 10:45 AM, Curtis Rueden <[hidden email]>
> > > wrote:
> > > >
> > > > > Hi Jacob,
> > > > >
> > > > > > The bin command is not working on them, perhaps because they are
> > > > > > timelapses. Is this potentially a bug?
> > > > >
> > > > > It would help greatly to have a Minimal, Complete, Verifiable
> Example
> > > > > (MCVE) illustrating the issue. For guidance, see this article:
> > > > > http://imagej.net/Bug_reporting_best_practices
> > > > >
> > > > > Regards,
> > > > > Curtis
> > > > >
> > > > > --
> > > > > Curtis Rueden
> > > > > LOCI software architect - https://loci.wisc.edu/software
> > > > > ImageJ2 lead, Fiji maintainer - https://imagej.net/User:Rueden
> > > > > Did you know ImageJ has a forum? http://forum.imagej.net/
> > > > >
> > > > >
> > > > > On Wed, Aug 23, 2017 at 5:54 PM, Jacob Keller <
> > [hidden email]>
> > > > > wrote:
> > > > >
> > > > > > Dear Imagers,
> > > > > >
> > > > > > I have some .czi z-stack timelapses which are 40-60 slices in z,
> > but
> > > it
> > > > > > would be nice to merge them down to, say, 10-20 slices by binning
> > > > > adjacent
> > > > > > slices. The bin command is not working on them, perhaps because
> > they
> > > > are
> > > > > > timelapses. Is this potentially a bug?
> > > > > >
> > > > > > All the best,
> > > > > >
> > > > > > Jacob Keller
> > > > > >
> > > > > > --
> > > > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > > > >
> > > > >
> > > > > --
> > > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > > >
> > > >
> > > > --
> > > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > > >
> > >
> > > --
> > > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> > >
> >
> > --
> > ImageJ mailing list: http://imagej.nih.gov/ij/list.html
> >
>
> --
> ImageJ mailing list: http://imagej.nih.gov/ij/list.html
>

--
ImageJ mailing list: http://imagej.nih.gov/ij/list.html