<html>
    <head>
      <base href="http://fiji.sc/bugzilla/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - "Analyse particles" - potential bug if applied to 4-dimensional stack"
   href="http://fiji.sc/bugzilla/show_bug.cgi?id=969">969</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>"Analyse particles" - potential bug if applied to 4-dimensional stack
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Fiji
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P4
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Plugins
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>imagej-bugs@imagej.net
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>k.schink@gmail.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>k.schink@gmail.com
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Hi,

I have recently come across a problem in the "Analyse Particles" function which
I think might be a bug in handling of hyperstacks or ROI position handling. 

I analyse a thresholded timeseries (Z + T) and add identified particles to the
ROI manager. I should note that I get the time series by the "Duplicate"
command from a composite image.

At the first timepoint, ROIs are added to the ROI manager for each for each of
the Z-Planes. 
However, problems start to occur once the stack reaches the last z-plane of
timepoint 1. I would expect that now the ROIs from timepoint 2 should be added
to the manager. 

However, when reaching the end of the Z-Stack of timepoint 1, the ROI positions
jump not to timepoint 2, but rather to the next timepoint that would come after
the Z-Stack, e.g. if the z-stack has 5 planes, the next added ROIs will be
localized to Timepoint 6, Z-Position 5.  After this, the ROI-Positions will
cycle not through the Z-planes, but rather through the time-axis until the end
is reached. After this, the time-axis jumps to a later timepoint (in the case
of the "Mitosis 5D" sample timeseries to timepoint 11) and from there on
behaves as expected, e.g. ROIs are added first to z-planes and when the
last-Z-plane is reached, ROIs will be added to the first Z-plane of the next
timepoint..
I do not think that the problem is with the definition of the ROIs as such,
since the shape of the ROIs corresponds to the segmented particles at the
expected timepoints. I rather think that wrong position info is written to the
ROIs when adding them to the ROI manager. 
The problem occurs both in FIJI and in plain ImageJ, both in a current version
and in the FIJI lifeline version.
I use Windows 7 64bit version, and run ImageJ / Fiji in 64 bit. However, I have
tested the plain ImageJ 32 bit version and find the same behaviour.

I have attached a minimal macro (see below) that calls the "Mitosis" sample,
extracts the first channel, applies a threshold  and then runs the Particle
analyser which adds the ROIs to the manager. Then the positions of the ROIs in
question are printed to the log in order to illustrate the problem.

Thanks a lot for your help

Kay



// Begin sample macro

run("Mitosis (26MB, 5D stack)");
run("Duplicate...", "duplicate channels=1");
//run("Threshold...");
setAutoThreshold("Triangle dark");
setOption("BlackBackground", true);
run("Convert to Mask", "method=Triangle background=Dark black");

run("Analyze Particles...", "size=1-Infinity add stack");

// Printing of the ROI positions to the log, not necessary for bug 

roiManager("Select", 0);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 1);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 2);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 3);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 4);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
//normal behaviour until here, then the "Frame" position jumps not to Frame "2"
but to Frame 6 (continues from the "Z" position).
roiManager("Select", 5);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 6);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);

//end of the Timeseries for Z=5 reached, jumps to T=11 and Z=1

roiManager("Select", 51);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 52);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);
roiManager("Select", 53);
Stack.getPosition(channel, slice, frame);
print("Position (C, Z, T): "+channel+", "+slice+", "+frame);

Information about your version of Java:

  os.arch => amd64
  os.name => Windows 7
  os.version => 6.1
  java.version => 1.6.0_24
  java.vendor => Sun Microsystems Inc.
  java.runtime.name => Java(TM) SE Runtime Environment
  java.runtime.version => 1.6.0_24-b07
  java.vm.name => Java HotSpot(TM) 64-Bit Server VM
  java.vm.version => 19.1-b02
  java.vm.vendor => Sun Microsystems Inc.
  java.vm.info => mixed mode
  java.awt.graphicsenv => sun.awt.Win32GraphicsEnvironment
  java.specification.name => Java Platform API Specification
  java.specification.version => 1.6
  sun.cpu.endian => little
  sun.desktop => windows
  file.separator => \

The up-to-date check says: UP_TO_DATE

Information relevant to JAVA_HOME related problems:

  JAVA_HOME is set to: D:\Fiji.app/java/win64/jdk1.6.0_24//jre
  imagej.dir => D:\Fiji.app

Information about the version of each plugin:

Activated update sites:
ImageJ: <a href="http://update.imagej.net/">http://update.imagej.net/</a> (last check:20141126221327)
Fiji: <a href="http://fiji.sc/update/">http://fiji.sc/update/</a> (last check:20141125171145)
BigDataViewer: <a href="http://sites.imagej.net/Pietzsch/">http://sites.imagej.net/Pietzsch/</a> (last check:20141126120148)
BioVoxxel: <a href="http://sites.imagej.net/BioVoxxel/">http://sites.imagej.net/BioVoxxel/</a> (last check:20141201130413)
CMCI-EMBL: <a href="http://sites.imagej.net/Miura/">http://sites.imagej.net/Miura/</a> (last check:20140718160940)
GDSC: <a href="http://sites.imagej.net/GDSC/">http://sites.imagej.net/GDSC/</a> (last check:20141118185052)
GDSC-SMLM: <a href="http://sites.imagej.net/GDSC-SMLM/">http://sites.imagej.net/GDSC-SMLM/</a> (last check:20140918121334)
NucleusJ: <a href="http://sites.imagej.net/PouletAxel/">http://sites.imagej.net/PouletAxel/</a> (last check:20141101103602)

Files not up-to-date:
  8c286564 (LOCAL_ONLY) 20141111230316 macros/BatchMacro.ijm
  ec6d8e8c (LOCAL_ONLY) 20141111182043 macros/Measure_Nuclei.ijm
  10411e90 (LOCAL_ONLY) 20141015104827 plugins/Calc_TIRF.class
  011c812b (LOCAL_ONLY) 20141009112831 plugins/Drop_Script-1.0.0.jar
  ec17890b (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/JHotDraw.jar
  91ece67d (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/JWlz.jar
  36cb5c0a (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/TableLayout.jar
  ff61a1b4 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/ai_path.jar
  c3a86bd0 (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/assumeng.jar
  364315a9 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/axis.jar
  0af1624e (LOCAL_ONLY) 20140714110422
plugins/Omero/omero/backport-util-concurrent.jar
  52e3b543 (LOCAL_ONLY) 20140805165734 plugins/Omero/omero/blitz-javadoc.jar
  d336fa64 (LOCAL_ONLY) 20140805165708 plugins/Omero/omero/blitz-sources.jar
  28e0f97f (LOCAL_ONLY) 20140805165740 plugins/Omero/omero/blitz.jar
  189f61fa (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/bufr.jar
  a2a2616b (LOCAL_ONLY) 20140805165522 plugins/Omero/omero/common-javadoc.jar
  793e910c (LOCAL_ONLY) 20140805165520 plugins/Omero/omero/common-sources.jar
  d7cff6e6 (LOCAL_ONLY) 20140805165522 plugins/Omero/omero/common.jar
  940245e0 (LOCAL_ONLY) 20140714110222 plugins/Omero/omero/commons-codec.jar
  64d8a654 (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/commons-collections.jar
  86ab9004 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/commons-digester.jar
  9e9eb622 (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/commons-discovery.jar
  c62bea1b (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/commons-httpclient.jar
  d59d3e4c (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/commons-io.jar
  f6139801 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/commons-lang.jar
  7018824c (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/commons-logging.jar
  60a83b54 (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/commons-validator.jar
  abf211c5 (LOCAL_ONLY) 20140714110422 plugins/Omero/omero/ehcache-core.jar
  991b5e8a (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/gicentreUtils.jar
  dbcde867 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/gluegen-rt.jar
  e33cecc2 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/grib.jar
  69cd59e7 (LOCAL_ONLY) 20120802213046 plugins/Omero/omero/guava.jar
  85c28658 (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/hibernate-jpa-2.0-api.jar
  1911c9e1 (LOCAL_ONLY) 20140714110422 plugins/Omero/omero/ice-glacier2.jar
  b1d709fb (LOCAL_ONLY) 20140714110422 plugins/Omero/omero/ice-grid.jar
  c49b8fa2 (LOCAL_ONLY) 20140714110422 plugins/Omero/omero/ice-storm.jar
  53aa5393 (LOCAL_ONLY) 20140714110422 plugins/Omero/omero/ice.jar
  6e7614ee (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/ij.jar
  6ce638fb (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/ini4j.jar
  f1b65457 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/java-getopt.jar
  c827227f (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/java-image-scaling.jar
  e72f9b2b (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/jaxrpc.jar
  4156c7b5 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/jcommon.jar
  c57f20b0 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/jfreechart.jar
  df7a0b63 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/jna.jar
  4c09d41c (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/joda-time.jar
  9a9b947a (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/jogl.jar
  d2af3ac9 (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/kryo.jar
  b2911375 (LOCAL_ONLY) 20140805165430 plugins/Omero/omero/lwf-stubs.jar
  19da6ad6 (LOCAL_ONLY) 20140805165516
plugins/Omero/omero/model-psql-javadoc.jar
  0a346f32 (LOCAL_ONLY) 20140805165508
plugins/Omero/omero/model-psql-sources.jar
  407db314 (LOCAL_ONLY) 20140805165516 plugins/Omero/omero/model-psql.jar
  a127d67c (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/nanoxml.jar
  6c7ec21f (LOCAL_ONLY) 20140714110424
plugins/Omero/omero/native-lib-loader.jar
  a51a31db (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/netcdf.jar
  e665d66a (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/ols-client.jar
  18382f06 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/ome-java.jar
  7af6ddeb (LOCAL_ONLY) 20131104145522 plugins/Omero/omero/perf4j.jar
  6340be70 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/physics.jar
  b3056152 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/platform.jar
  4ef2cfd3 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/poi.jar
  af4b3176 (LOCAL_ONLY) 20131104145444
plugins/Omero/omero/processing-controlP5.jar
  1cb045e1 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/processing-core.jar
  2e6cf711 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/saaj.jar
  eedc0cd9 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/serializer.jar
  5085d943 (LOCAL_ONLY) 20140714110424 plugins/Omero/omero/slf4j-api.jar
  1deeabc9 (LOCAL_ONLY) 20140805165428 plugins/Omero/omero/specification.jar
  ba32bfdf (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/swingx.jar
  7c4005e7 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/wsdl4j.jar
  c8694e76 (LOCAL_ONLY) 20131104145444 plugins/Omero/omero/xalan.jar
  8c81f781 (LOCAL_ONLY) 20140805170144 plugins/Omero/omero_ij.jar
  46cc7ddc (LOCAL_ONLY) 20141029210256 plugins/SaveAsMovie_win64.jar
  b2afde18 (LOCAL_ONLY) 20141113134553 plugins/cell_counter.jar</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>