NOTICE! This is a static HTML version of a legacy Fiji BugZilla bug.

The Fiji project now uses GitHub Issues for issue tracking.

Please file all new issues there.

Bug 768 - SCIFIO not opening .tif files properly
SCIFIO not opening .tif files properly
Status: RESOLVED FIXED
Product: Fiji
Classification: Unclassified
Component: Plugins
unspecified
Macintosh Mac OS
: P4 normal
Assigned To: ImageJ Bugs Mailing List
Depends on:
Blocks:
 
Reported: 2014-06-10 07:50 CDT by Graeme Ball
Modified: 2014-06-10 16:28 CDT
3 users (show)

See Also:

Description Graeme Ball 2014-06-10 07:50:28 CDT
SCIFIO does not seem to reliably open .tif files (created by ImageJ): where/how should I upload them? In one case, an image '080514CENPNctl-01_R3D_REG.tif' with 305 frames opens as a virtual stack with only 1 frame (virtual stack is not a good default for anything other than massive files). In another case 'Flybrain_3ch_57z_2t.tif', an image with 3 channels, 57Z and 2 frames does not open at all (just gives "Computing min/max complete" in status bar and then ... nothing). 

Has SCIFIO been thoroughly tested on all the bio-formats test data? If not, it may be better to stick with bio-formats as the default for Fiji I/O for now. I guess some people might not understand what is going on if they suddenly can't open some of their images.

Information about your version of Java:

  os.arch => x86_64
  os.name => Mac OS X
  os.version => 10.9.3
  java.version => 1.6.0_65
  java.vendor => Apple Inc.
  java.runtime.name => Java(TM) SE Runtime Environment
  java.runtime.version => 1.6.0_65-b14-462-11M4609
  java.vm.name => Java HotSpot(TM) 64-Bit Server VM
  java.vm.version => 20.65-b04-462
  java.vm.vendor => Apple Inc.
  java.vm.info => mixed mode
  java.awt.graphicsenv => apple.awt.CGraphicsEnvironment
  java.specification.name => Java Platform API Specification
  java.specification.version => 1.6
  sun.cpu.endian => little
  sun.desktop => null
  file.separator => /

The up-to-date check says: REMIND_LATER

Information relevant to JAVA_HOME related problems:

  JAVA_HOME is set to: null
  imagej.dir => /Applications/Fiji.app

Information about the version of each plugin:

Activated update sites:
ImageJ: http://update.imagej.net/ (last check:20140608215836)
Fiji: http://fiji.sc/update/ (last check:20140608023306)
3D ImageJ Suite: http://sites.imagej.net/Tboudier/ (last check:20140604070506)
BioVoxxel: http://sites.imagej.net/BioVoxxel/ (last check:20140519192603)
Cookbook: http://sites.imagej.net/Cookbook/ (last check:20131220231857)

Files not up-to-date:
  5d5835b0 (MODIFIED) 20140609102817 Contents/Info.plist
  a3ecc6b9 (NOT_INSTALLED) 20140605230254 jars/imagej-ui-swing-0.4.4.jar
  f96af9c5 (LOCAL_ONLY) 20140528155339 macros/BatchMacro.ijm
  8de72b0a (LOCAL_ONLY) 20140519122352 macros/DisplayRangeMacros.txt
  0d6e4e4a (LOCAL_ONLY) 20140519123218 macros/Gamma.txt
  c6a2a812 (LOCAL_ONLY) 20140528012911 macros/StartupMacros.txt
  0a5c1981 (LOCAL_ONLY) 20140509155303 plugins/Color_Profiler.jar
  37955112 (LOCAL_ONLY) 20140529103845 plugins/FRAP_Analysis.class
  2099d7a7 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/LoG3D.class
  964e5dbe (LOCAL_ONLY) 20060217161502 plugins/LoG3D/LoG_3D.class
  1fe5cd25 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Access.class
  7cdd61d3 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Buffer.class
  f1da288c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Builder.class
  9052d070 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ByteAccess.class
  d122c864 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ByteBuffer.class
  dd47fc25 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/BytePointwise.class
  140ed17c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ByteProcess.class
  31c0d21f (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ByteSet.class
  11d4a88b (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Convolver.class
  03cca71a (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Display.class
  4d942e3d (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/DoubleAccess.class
  ff3fd92c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/DoubleBuffer.class
  d59278f6 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/DoublePointwise.class
  23badf1a (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/DoubleProcess.class
  b75069ca (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/DoubleSet.class
  60c4dbb3 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FMath.class
  856f718c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FloatAccess.class
  1a374b16 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FloatBuffer.class
  95dce0f9 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FloatPointwise.class
  9b8a6a1c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FloatProcess.class
  bbdd7dd7 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/FloatSet.class
  159fd13f (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ImageAccess.class
  bb737658 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ImageWare.class
  45772d84 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Pointwise.class
  7de57b9b (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/Process.class
  a4464928 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ShortAccess.class
  2ef85e24 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ShortBuffer.class
  42737fb1 (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ShortPointwise.class
  3829fc6c (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ShortProcess.class
  b1207f2a (LOCAL_ONLY) 20060217161502 plugins/LoG3D/imageware/ShortSet.class
  27dcbe2a (LOCAL_ONLY) 20140519122235 plugins/Macros/DisplayRangeMacros.txt
  ec17890b (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/JHotDraw.jar
  91ece67d (LOCAL_ONLY) 20131128104658 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/JWlz.jar
  36cb5c0a (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/TableLayout.jar
  ff61a1b4 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ai_path.jar
  c3a86bd0 (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/assumeng.jar
  364315a9 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/axis.jar
  0af1624e (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/backport-util-concurrent.jar
  c9d60a9e (LOCAL_ONLY) 20140224162818 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/blitz.jar
  189f61fa (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/bufr.jar
  19c30fe9 (LOCAL_ONLY) 20140224162650 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/common.jar
  940245e0 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-codec.jar
  64d8a654 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-collections.jar
  86ab9004 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-digester.jar
  9e9eb622 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-discovery.jar
  c62bea1b (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-httpclient.jar
  d59d3e4c (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-io.jar
  f6139801 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-lang.jar
  7018824c (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-logging.jar
  60a83b54 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/commons-validator.jar
  abf211c5 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ehcache-core.jar
  991b5e8a (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/gicentreUtils.jar
  dbcde867 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/gluegen-rt.jar
  e33cecc2 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/grib.jar
  ac0dfbec (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/guava-jdk5.jar
  85c28658 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/hibernate-jpa-2.0-api.jar
  1911c9e1 (LOCAL_ONLY) 20131120130114 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ice-glacier2.jar
  b1d709fb (LOCAL_ONLY) 20131120130114 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ice-grid.jar
  c49b8fa2 (LOCAL_ONLY) 20131120130114 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ice-storm.jar
  53aa5393 (LOCAL_ONLY) 20131120130114 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ice.jar
  6e7614ee (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ij.jar
  6ce638fb (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ini4j.jar
  f1b65457 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/java-getopt.jar
  c827227f (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/java-image-scaling.jar
  e72f9b2b (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/jaxrpc.jar
  4156c7b5 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/jcommon.jar
  c57f20b0 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/jfreechart.jar
  df7a0b63 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/jna.jar
  4c09d41c (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/joda-time.jar
  9a9b947a (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/jogl.jar
  d2af3ac9 (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/kryo.jar
  c6b60cce (LOCAL_ONLY) 20140224162614 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/lwf-stubs.jar
  91c79a92 (LOCAL_ONLY) 20140224162648 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/model-psql.jar
  a127d67c (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/nanoxml.jar
  e1a35a80 (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/native-lib-loader.jar
  a51a31db (LOCAL_ONLY) 20131128104658 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/netcdf.jar
  e665d66a (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ols-client.jar
  18382f06 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/ome-java.jar
  7af6ddeb (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/perf4j.jar
  6340be70 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/physics.jar
  b3056152 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/platform.jar
  4ef2cfd3 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/poi.jar
  af4b3176 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/processing-controlP5.jar
  1cb045e1 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/processing-core.jar
  2e6cf711 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/saaj.jar
  eedc0cd9 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/serializer.jar
  572a727b (LOCAL_ONLY) 20131104155522 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/slf4j-api.jar
  f4d01930 (LOCAL_ONLY) 20140224162610 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/specification.jar
  ba32bfdf (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/swingx.jar
  7c4005e7 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/wsdl4j.jar
  c8694e76 (LOCAL_ONLY) 20131104155444 plugins/OMERO.insight-ij-5.0.0-ice35-b19/libs/xalan.jar
  56a05ff0 (LOCAL_ONLY) 20140224163050 plugins/OMERO.insight-ij-5.0.0-ice35-b19/omero_ij.jar
  b7319cc1 (LOCAL_ONLY) 20140606170132 plugins/SIMcheck_.jar
  71331805 (LOCAL_ONLY) 20140501010801 plugins/jacop_.jar
Comment 1 Mark Hiner 2014-06-10 09:04:50 CDT
Hi Graeme,

>Has SCIFIO been thoroughly tested on all the bio-formats test data? If not, it 
>may be better to stick with bio-formats as the default for Fiji I/O for now.

So I wanted to point out that there is a difference between SCIFIO (https://github.com/scifio/scifio) and what we call SCIFIO that is used by the Fiji I/O (which is really ImageJ2, using SCIFIO for its image I/O). There are many layers here, including an ImageJ 1.x compatibility layer (https://github.com/imagej/imagej-legacy) - which means there are many points for potential failure.

SCIFIO is not fully tested against the Bio-Formats test repository, although it is something we have wanted to do for some time (https://github.com/scifio/scifio/issues/85). But even if all the formats worked perfectly, there would still be problems in the other layers that need to be resolved.

There is a fundamental challenge for small, open-source development teams: we would love to develop our software until it is perfect, to avoid any pain on the user side. But for software of the scope of ImageJ2, it is not reasonable to try and achieve complete test coverage ahead of time.

>I guess some people might not understand what is going on if they suddenly 
>can't open some of their images.

We agree completely. That was exactly why we created a toggle for disabling SCIFIO, so if users needed to get back to classic ImageJ 1.x behavior they could. This was supposed to be well-explained by the "Welcome to ImageJ2" message, but due to problems with it displaying, the ImageJ2 release ended up being more disruptive than we intended.

On the other hand, the ImageJ2 release was pretty much the greatest thing ever for ImageJ2 and SCIFIO development. It has been kicked into high gear, and we've been able to focus on fundamental problems by receiving excellent feedback from users like you.

Our biggest problem right now, I think, is that we're not doing a satisfactory job getting our releases deployed as soon as possible. With a bit of work on our release framework, this should be greatly improved. For example, I think some of these problems you mentioned in this bug report may already be resolved - at the least, error reporting should be improved with the next Fiji update (so you don't just get.. nothing). And Johannes revised the memory detection heuristics (https://github.com/scifio/scifio/commit/5b0c5cf894ad7b458454464215d2556c219b3e67) to mitigate the unnecessary virtual stack creation.

Finally, I wanted it to be clear that ImageJ2 and SCIFIO provide a complete framework for image I/O (among other things). They are highly extensible, and in fact Bio-Formats is already shipped as a plugin for SCIFIO (https://github.com/scifio/scifio-bf-compat) - so when you are using File > Open it's automatically checking Bio-Formats. Because of this, we really don't want to take a step backwards and revert to "just" Bio-Formats, especially as it would again slow our development. As long as users can disable SCIFIO if needed, things are going as intended and we'll just keep knocking out bugs as quickly as possible.

So, when you have problematic images, you can upload them from Fiji via Help > Upload Sample Image and let us know in a bug report. If you upload your failing TIFFs I'll make sure they get tested with the latest Fiji code.

And thank you again for taking the time and patience to report issues. It has really been fantastic this past week to see the level of improvements in SCIFIO and ImageJ2, because of the community's support.
Comment 2 Graeme Ball 2014-06-10 10:17:58 CDT
Hi Mark,

Thanks for the reply, and sorry if I sounded grumpy / unappreciative (bit tired today perhaps). I noticed the "Upload Sample Image" option, but I wasn't sure it is intended for bug-fixing test images and is private. I have uploaded a smaller version of one of the failing .tif hyperstacks, "Flybrain_3ch_4z_2t.tif", which fails in the same way as the first one I reported (well I *think* I have -- didn't see any feedback). I can upload a shorter version of the multi-frame sequence if needed, and if "Upload Sample Images" is private? (it's unpublished data that comes from somebody else) 

I know it's important for ImageJ2 development that things are released and tested in the wild, and I will persevere with the IJ2/SCIFIO import and continue to report any potential bugs. I do appreciate all the hard work that has gone into these projects, and the responsiveness and helpfulness of everyone involved.

Best regards,

Graeme
Comment 3 Mark Hiner 2014-06-10 10:55:16 CDT
>Thanks for the reply, and sorry if I sounded grumpy / unappreciative (bit tired 
>today perhaps)

No worries! I totally understand that, because of a few missteps on our part (the welcome message, especially) the ImageJ2 transition was bumpy and caused unnecessary confusion. I'm sure there are others who felt frustrated as well, so that's why I wanted to lay out a complete response to your issues, to ensure our reasoning and intentions are transparent.

>I can upload a shorter version of the multi-frame sequence if needed, and if >"Upload Sample Images" is private?

Upload Sample Images goes to a private page on the Fiji wiki. You need to have a wiki account with special authorization to access these images, so it is intended to accommodate unpublished data. If you'd like, you can see a list of accounts with this authorization here: http://fiji.sc/index.php?title=Special:ListUsers&group=incoming

Thanks!
- Mark
Comment 4 Mark Hiner 2014-06-10 14:53:09 CDT
Hi Graeme,

 Fiji has been updated with a number of fixes as of a few minutes ago. I tested your Flybrain_3ch_4z_2t.tif dataset with the new version, and it's looking good I think!

 Also, the quality of life issues you mentioned (e.g. opening small datasets as a virtual stack, not opening and not displaying a message) should be resolved.

 Could you test this when you get a chance? Just want to be sure there are no other problems with your data when opened via SCIFIO/ImageJ2 before closing this ticket.

Thanks!
- Mark
Comment 5 Graeme Ball 2014-06-10 15:04:30 CDT
Oops, mid-air collision on a comment I was just about to make -- here it is repeated:

"After a Fiji update just now, the .tif image I reported a problem with now opens. However, the Edit->Options->ImageJ2 menu item seems to have disappeared: that *is* where it was, right? (perhaps I should've read the ImageJ2 message I got with the update more carefully :-\)"
Comment 6 Graeme Ball 2014-06-10 15:05:52 CDT
PS. Thanks for the fix :-)
Comment 7 Mark Hiner 2014-06-10 15:08:26 CDT
>However, the Edit->Options->ImageJ2 menu item seems to have disappeared: that >*is* where it was, right? (perhaps I should've read the ImageJ2 message I got >with the update more carefully :-\)

haha.. nope you're right on here. We merged a patch set at the last second to remove invisible plugins from the menu, and the ImageJ2 options plugin is set to be invisible to hide it in ImageJ2.

Expect it to be fixed shortly...
Comment 8 Johannes Schindelin 2014-06-10 16:28:36 CDT
It is fixed!