[ome-users] Exception trying to open Nikon confocal image with Bio-formats 5.1 (was working with version 5.0)

Melissa Linkert melissa at glencoesoftware.com
Wed Apr 22 21:17:55 BST 2015


Hi Pierre,

> Each time I try to open a ICS or IDS file generated by
> 
> Nikon confocal microscope software 
> 
> EZ-C1,   Silver Version 3.91 build 880,
> 
> I get this exception with 5.1 plugin (while 5.0 allows opening of this
> file):
> 
>  
> 
> (Fiji Is Just) ImageJ 2.0.0-rc-29/1.49q; Java 1.6.0_24 [64-bit]; Windows 7
> 6.1; 23MB of 6127MB (<1%)
> 
> java.lang.NullPointerException
> 
>                 at
> loci.plugins.in.ImagePlusReader.constructSliceLabel(ImagePlusReader.java:598
> )
> 
>                 at
> loci.plugins.in.ImagePlusReader.readPlanes(ImagePlusReader.java:385)

Thank you very much for reporting this problem, and for investigating
the cause.  We are reviewing a fix:

https://github.com/openmicroscopy/bioformats/pull/1756

This will unfortunately not be included in the forthcoming 5.1.1
release, but I would expect it to be included in the 5.1.2 release.

If you wish to try the fix prior to 5.1.2, you can do so by enabling the
Bio-Formats update site in Fiji.  Once the status of the above changes
from "Open" to "Merged", updating Fiji should install a pre-release
version of Bio-Formats that contains the fix.  For instructions, see:

http://imagej.net/Bio-formats#Daily_builds

Regards,
-Melissa

On Tue, Apr 21, 2015 at 04:29:51PM +0200, Pierre Muller wrote:
> Each time I try to open a ICS or IDS file generated by
> 
> Nikon confocal microscope software 
> 
> EZ-C1,   Silver Version 3.91 build 880,
> 
> I get this exception with 5.1 plugin (while 5.0 allows opening of this
> file):
> 
>  
> 
> (Fiji Is Just) ImageJ 2.0.0-rc-29/1.49q; Java 1.6.0_24 [64-bit]; Windows 7
> 6.1; 23MB of 6127MB (<1%)
> 
> java.lang.NullPointerException
> 
>                 at
> loci.plugins.in.ImagePlusReader.constructSliceLabel(ImagePlusReader.java:598
> )
> 
>                 at
> loci.plugins.in.ImagePlusReader.readPlanes(ImagePlusReader.java:385)
> 
>                 at
> loci.plugins.in.ImagePlusReader.readImage(ImagePlusReader.java:277)
> 
>                 at
> loci.plugins.in.ImagePlusReader.readImages(ImagePlusReader.java:238)
> 
>                 at
> loci.plugins.in.ImagePlusReader.readImages(ImagePlusReader.java:216)
> 
>                 at
> loci.plugins.in.ImagePlusReader.openImagePlus(ImagePlusReader.java:111)
> 
>                 at loci.plugins.in.Importer.readPixels(Importer.java:146)
> 
>                 at loci.plugins.in.Importer.run(Importer.java:85)
> 
>                 at loci.plugins.LociImporter.run(LociImporter.java:78)
> 
>                 at ij.IJ.runUserPlugIn(IJ.java:199)
> 
>                 at ij.IJ.runPlugIn(IJ.java:163)
> 
>                 at ij.Executer.runCommand(Executer.java:131)
> 
>                 at ij.Executer.run(Executer.java:64)
> 
>                 at java.lang.Thread.run(Thread.java:662)
> 
>  
> 
>  
> 
> I am using FIJI and was not able to compile the plugin to get more detailed
> debug information.
> 
> But from comparison of 5.0 source and 5.1 source, I suspect that this
> change:
> 
> @@ -575,9 +575,19 @@ public class ImagePlusReader implements
> 
>      r.setSeries(series);
> 
>  
> 
>      final int[] zct = r.getZCTCoords(ndx);
> 
> -    final int[] subC = r.getChannelDimLengths();
> 
> -    final String[] subCTypes = r.getChannelDimTypes();
> 
> +    final int sizeC = r.getSizeC();
> 
>      final StringBuffer sb = new StringBuffer();
> 
> +
> 
> +    int[] subC;
> 
> +    String[] subCTypes;
> 
> +    Modulo moduloC = r.getModuloC();
> 
> +    if (moduloC.length() > 1) {
> 
> +      subC = new int[] {r.getSizeC() / moduloC.length(), moduloC.length()};
> 
> +      subCTypes = new String[] {moduloC.parentType, moduloC.type};
> 
> +    } else {
> 
> +      subC = new int[] {r.getSizeC()};
> 
> +      subCTypes = new String[] {FormatTools.CHANNEL};
> 
> +    }
> 
>  
> 
>      boolean first = true;
> 
>      if (cCount > 1) {
> 
>       if (first) first = false;
> 
>       else sb.append("; ");
> 
>       int[] subCPos = FormatTools.rasterToPosition(subC, zct[1]);
> 
>       for (int i=0; i<subC.length; i++) {
> 
> >>>> Line 598 of exception >>>>        boolean ch =
> subCTypes[i].equals(FormatTools.CHANNEL);
> 
>         sb.append(ch ? "c" : subCTypes[i]);
> 
>         sb.append(":");
> 
>  
> 
> might be the cause of the exception, if SubCTypes array ends up having less
> elements than subC array.
> 
>  
> 
>   Please add me a CC as I am not subscribed to this mailing list.
> 
>  
> 
>   I can provide a example file if needed.
> 
>  
> 
> Pierre Muller
> 
> Institut Charles Sadron
> 
> 23 rue du Loess
> BP 84047
> 67034 STRASBOURG Cedex 2 
> tél 33 (0)3 88 41 40 07
> 
> email : pierre.muller at ics-cnrs.unistra.fr
> 
>  
> 
>  
> 

> _______________________________________________
> ome-users mailing list
> ome-users at lists.openmicroscopy.org.uk
> http://lists.openmicroscopy.org.uk/mailman/listinfo/ome-users




More information about the ome-users mailing list