[ome-users] BioFormats (5.0.2) can't handle very large NDPI files
Melissa Linkert
melissa at glencoesoftware.com
Mon Jun 9 19:15:59 BST 2014
Hi Kristian,
> I have a few very large (>4GB) NDPI files from a HAMAMATSU scanner.
> The scanned slides are sometimes very large (like blood smears) and
> scanned in three or five layers.
>
> In BioFormats 5.0.2 with bftools, running "showinf -nopix 65.ndpi", I get
*snip*
> The problem seems to be related to integer overflow. I think,
> however, that a solution isn't as simple as changing ints to longs
> (I tried, didn't work).
>
> I have five sample files at http://micro.sdu.dk/media/bioformats -
> 66.ndpi and 67.ndpi works; 65.ndpi, 68.ndpi, and 69.ndpi don't work.
Thank you for reporting this problem. The issue definitely does have to
do with file size - anything larger than 4GB will not be readable as
.ndpi files do not follow the BigTIFF specification. I have filed a
ticket for this on our issue tracking system:
http://trac.openmicroscopy.org.uk/ome/ticket/12367
and would expect this to be working in the next release.
Regards,
-Melissa
On Wed, Jun 04, 2014 at 11:17:11AM +0200, Kristian Kjærgaard wrote:
> Dear fellow users
>
> I have a few very large (>4GB) NDPI files from a HAMAMATSU scanner.
> The scanned slides are sometimes very large (like blood smears) and
> scanned in three or five layers.
>
> In BioFormats 5.0.2 with bftools, running "showinf -nopix 65.ndpi", I get
>
> Checking file format [Hamamatsu NDPI]
> Initializing reader
> NDPIReader initializing 65.ndpi
> Reading IFDs
> Populating metadata
> Exception in thread "main" java.lang.IllegalArgumentException:
> Negative position
> at sun.nio.ch.FileChannelImpl.read(FileChannelImpl.java:675)
> at loci.common.NIOByteBufferProvider.allocateDirect(NIOByteBufferProvider.java:131)
> at loci.common.NIOByteBufferProvider.allocate(NIOByteBufferProvider.java:116)
> at loci.common.NIOFileHandle.buffer(NIOFileHandle.java:551)
> at loci.common.NIOFileHandle.seek(NIOFileHandle.java:273)
> at loci.common.RandomAccessInputStream.seek(RandomAccessInputStream.java:154)
> at loci.formats.tiff.TiffParser.getIFDValue(TiffParser.java:479)
> at loci.formats.tiff.TiffParser.fillInIFD(TiffParser.java:460)
> at loci.formats.in.MinimalTiffReader.initFile(MinimalTiffReader.java:451)
> at loci.formats.in.BaseTiffReader.initFile(BaseTiffReader.java:540)
> at loci.formats.in.NDPIReader.initFile(NDPIReader.java:269)
> at loci.formats.FormatReader.setId(FormatReader.java:1315)
> at loci.formats.ImageReader.setId(ImageReader.java:753)
> at loci.formats.ReaderWrapper.setId(ReaderWrapper.java:569)
> at loci.formats.tools.ImageInfo.testRead(ImageInfo.java:992)
> at loci.formats.tools.ImageInfo.main(ImageInfo.java:1074)
>
> The problem seems to be related to integer overflow. I think,
> however, that a solution isn't as simple as changing ints to longs
> (I tried, didn't work).
>
> I have five sample files at http://micro.sdu.dk/media/bioformats -
> 66.ndpi and 67.ndpi works; 65.ndpi, 68.ndpi, and 69.ndpi don't work.
>
> I may be able to provide more samples if needed.
>
> - Kristian Kjærgaard, BSc.med, happy user of BioFormats
> _______________________________________________
> 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