[chimerax-users] Bio-Formats with ChimeraX?
Tom Goddard
goddard at sonic.net
Thu Feb 7 17:43:53 PST 2019
Hi Matt,
ChimeraX by default shows a single plane if the 3D grid size has more than a certain number of grid points (I believe 2**28) for example 2048x2048x100 would show as a single plane initially. But then the volume viewer panel will have a Plane slider and you can show the full volume by right click on the histogram and choose menu entry “Show full region”. This single plane behavior is just to speed up opening the data. It is the same in Chimera. The initial single plane behavior can be turned off in Chimera (volume viewer menu Features / Data Display Options) but ChimeraX does not have a way to adjust that setting yet.
If that is not what you are seeing let me know, and tell me the grid size, number of channels, number of time points, and what software wrote the tiff file, and is it just one file or multiple files. The cache size has no effect on whether an plane is shown initially but can effect performance (avoiding reloading the data), and having the SSD definitely will help performance.
Tom
> On Feb 7, 2019, at 4:57 PM, Matthew Akamatsu <matt.akamatsu at berkeley.edu> wrote:
>
> Hi Tom,
>
> Thanks very much for your reply. I am interested in helping out however I can (probably with test use cases) as ChimeraX seems like the best hope to handle and render large 4D-5D optical microscopy data (e.g. the flood of data coming from lattice light sheet microscopes). So far I have noticed that if I try to open a TIFF hyperstack larger than ~3GB it opens as a single plane instead, even if I increase the dataCacheSize to 15000-25000 MB on my 32GB RAM machine with a fast SSD drive (reads at 2.5 GB/s). I tried saving the file in other TIF based formats like ome TIFF and have not had any luck. I am happy to try to share an example file, or take any other suggestions you have for other formats I should try to save the movies as before loading them into ChimeraX.
>
>
> Matt
>
>
>
>
> On Thu, Feb 7, 2019 at 12:06 PM Tom Goddard <goddard at sonic.net <mailto:goddard at sonic.net>> wrote:
> Hi Matt,
>
> ChimeraX tries to handle multi-channel, multi-time TIFFs such as OME TIFF and ImageJ TIFF. I am interested in seeing examples where that is not working as I’d definitely like to improve ChimeraX for 3D optical microscopy. Handling the many optical microscopy formats is a big problem, I think bioformats reads over 100 formats many of them proprietary from microscope vendors. The trouble is bioformats is written in Java and ChimeraX is Python and C++. It is hard to integrate Java with Python. I looked at solutions for this specifically to make use of bioformats but a year ago it looked like this would both require shipping some poorly supported Java/Python interoperability with ChimeraX, either requiring users to install Java (which will greatly limit the number people who will ever use it) or including a Java which would make ChimeraX downloads even more enormous, and even accepting all that the speed reading the very large optical microscopy data would like be glacial. So it didn’t look feasible with the limited resources we have to develop ChimeraX. If you think there is a way I missed, tell me.
>
> So my strategy is to go with the lowest common denominator in optical microscopy which is TIFF. TIFF is a horrible format for performance with 3D-5D data — it is designed for sets of 2D images and those are in a linked list in the file where you cannot simply jump to the 1000th 2D image without reading the first 999 images. That isn’t always true, some formats (e.g. MicroManager tiff) create an index in the TIFF header so they can find the 2d images efficiently. At any rate, TIFF is the common exchange format. For higher performance my effort has been to use HDF5 which is specifically intended for high performance with large multidimensional arrays. There are many formats based on HDF5 like Imaris *.ims files or .minc files used in optical microscopy. But there is no standard HDF5 format — it is basically just a directory structure for numeric arrays in a single file and to define an HDF5 format you need to know what that directory structure in the file looks like. About 10 years ago I used HDF5 to make a format called Chimera map format (suffix *.cmap) for electron microscopy. ChimeraX reads and writes that (and also will read IMS format and EMAN HDF5). Chimera map format is what I use when I want to process 3d multichannel optical microscopy time series. But it turns out HDF5 often has very poor speed, 5x or more times slower than expected. HDF5 is pretty complex, it tiles the data, can compress individual tiles, it has caches to keep recently used tiles in memory. Your code can control all the parameters (like tile size, cache sizes) and ChimeraX sometimes sets those, or HDF5 will use defaults. Either way it is very common to get very poor performance due to reading tiles from all over the disk (fragmentation of 3d arrays), or HDF5 running out of cache and reading tiles over and over and over, or you try to get one slice and reads 50x times more data because the tiles to cover that slice are 50 slices thick. Sadly, the main way to compensate for this is to use a fast SSD drive, current ones can read at 3 Gbytes/second instead of spinning drives at 0.1 Gbytes/second.
>
> I’m interested in improving ChimeraX for optical microscopy but we have little time and little (really no) funding for that so if you have suggestions they need to confer maximum benefit for minimum effort to have a chance of getting implemented.
>
> Tom
>
>
> > On Feb 6, 2019, at 9:02 PM, Matthew Akamatsu wrote:
> >
> > Hi,
> >
> > I just started using ChimeraX to render and save 3D time lapse microscopy data as a high-performance replacement of Fiji. I am wondering how flexible ChimeraX can be in opening different TIF-derived file formats - particularly hyperstacks (multi color, multi Z, multi time). Other desired formats would be proprietary formats like .nd2 and .sld . Bio-Formats does all of this in an open-source manner - how feasible would it be to have bio-formats type functionality in ChimeraX?
> >
> > Thanks,
> > Matt
> >
> >
> > _______________________________________________
> > ChimeraX-users mailing list
> > ChimeraX-users at cgl.ucsf.edu <mailto:ChimeraX-users at cgl.ucsf.edu>
> > Manage subscription:
> > http://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users <http://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users>
>
>
>
> --
> Matthew Akamatsu, PhD
> Arnold O. Beckman Postdoctoral research fellow, Drubin lab
> University of California at Berkeley
> Department of Molecular and Cellular Biology
> 510-642-0940
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimerax-users/attachments/20190207/8536337a/attachment.html>
More information about the ChimeraX-users
mailing list