The BigData I webinar for NEUBIAS Academy is now on YouTube .
We’ve been arranging the questions asked during the webinar, resulting in this post (and formatted thanks to @petebankhead’s script ).
If you want to discuss anything further, feel free to start a new topic on the forum.
We’d like to give a huge thanks to @Kota @Julien_Colombelli, @MarionLouveaux @RoccoDAntuono for all their work as moderators and in helping put this together, and @romainGuiet and everyone else at NEUBIAS who are making the webinars happen !
Slides for each part:
Concepts & Challenges & BDV presentation
link to PDF
For the BigDataViewer demo, 3 datasets are used:
- The first dataset is included with Fiji as sample image.
Just open “File > Open Samples > First-instar brain (6.3MB)” from the Fiji menu.
- The second dataset is not public.
A simple alternative one can be downloaded from Index of /~pietzsch/bdv-example/.
(This is the example dataset linked from the BigDataViewer - ImageJ wiki page. It comprises two views and three time-points. This is an excerpt of a 6 angle 715 time-point sequence of drosophila melanogaster embryonal development, imaged with a Zeiss Lightsheet Z.1. Download both the XML and the HDF5 file and place them somewhere next to each other.)
- The third dataset can be downloaded from http://preibischlab.mdc-berlin.de/BigStitcher/Grid_3d_h5_aligned.zip. (This is a BigStitcher example dataset, linked from the BigStitcher - ImageJ wiki page. It is a 3D confocal scan of the nervous system of a Drosophila larva containing 6 tiles with 3 channels each.)
BigDataViewer - Playground
- Presentation : (https://docs.google.com/presentation/d/1HjxFNbmBwAgjs_SLjcOfGNIgf-0Z2jbs7qoGuCrUGSE)
- Information : GitHub - bigdataviewer/bigdataviewer-playground
Questions and answers
Table of contents
Q1: What are the computer requirements for Big data viewer to run smoothly?
The requirements are conservative, both in RAM and CPU speed. Basically, a “normal” 10 year old (?) laptop should work. BigDataViewer is written in pure java, so it will work on all major OSes. BigDataViewer adapts the size of its cache to the available memory (4GB of memory should be more than enough). The initial rendering quality is increased or decreased depending on the CPU speed and the data content. On a slow computer it should still remain interactive, although the rendering quality drops significantly while moving around. After you stop browsing, the image quality will increase to higher resolution. With more computing power and fast data transfer rate, you will get the higher resolution faster.
Q2: Can BDV combine data acquired from a large volume at low resolution and from small regions of the same volume acquired at higher resolution?
Yes, for instance multi modal imaging (cryo em + fluo for instance) is handled very conveniently and efficiently in bigdataviewer. Each acquisition can be positioned arbitrarily in 3d space. Simple case scenario: an affine transform defines the location of all pixels of an image, and several images can be imported into BigDataViewer. For transformations more complex than affine ones, BigWarp can be used (3d splines).
Q3: Is BDV recommended for slide scanning data?
Slide scanner data can be used in BigDataViewer. Notably, bigdataviewer-playground allows to open some of these data (it is the equivalent of the bioformats image server in qupath). Compared to other software solution, it is more complicated to perform some analysis. However, it is nice for spatial context. For instance overlaying several slide scanner data and warping one onto another can be done in BigDataViewer.
Q4: Bigdata viewer plugin- It is also useful for hight throughput data from 96 well plate or 384 well plate, where multiple fields are acquired per well?
There are several options to visualise HCS data in bigdataviewer (bigdataviewer-playground for instance, or another plugin by Christian Tischer : GitHub - embl-cba/plateviewer). The analysis part will probably require more customization than HCS dedicated software.
Q5: Can you use BDV to manually align multiview images obtained with the lightsheet Z1?
Yes. You can do basic manual transformations directly in BigDataViewer and save them to settings.xml files. For advanced alignment (automatic/non-rigid) have a look at BigStitcher and/or BigWarp.
Q6: philosophic/Technical question. From how many tiles do we consider it a big dataset? in other words, when do we have an advantage using BigDataViewer?
Definition heard in a webinar with Ramon Perez ramonprz01 (Ramon Perez) · GitHub : Big Data - usually above 50-80 GB, not fitting our local machine RAM or HD; requiring clusters of machine and engineering to get analyzed.
Q7: Can BVD with additional plug-ins in principle also be used for designing multimodal correlative image analysis (e.g. CLEM)?
Sure. For example, this project by Christian Tischer goes into this direction: GitHub - mobie/mobie-viewer-fiji.
Q8: I tried an early but impressive demo of maximum intensity projection rendering using BDV a few years ago discussed on image.sc a few years ago. Is this still in development?
Assuming the question refers to BigVolumeViewer forum posts (BigVolumeViewer Tech Demo, BigVolumeViewer "vistools"): Yes, that is still in development, but at the moment only very slowly. The volume renderer is also used in the SciView plugin SciView - ImageJ (where development moves a lot faster).
Q9: Can you comment on the status of Big*Volume*Viewer? I know the tech demo is around and its absolutely awesome! :) is there new development?
Not much. It is planned to update to the latest dependency versions, so it should have the BDV “side-panel” in the near future. If you missed it, there has been some API to use it from Java for a while: BigVolumeViewer "vistools"
Q10: is there a way to see this render in 3D using this tool? or only as ortho-slice?
BigDataViewer shows only slices (although slices can be arbitrary, not only axis-orthogonal). For volumetric rendering, look at the SciView or BigVolumeRenderer plugins.
Q11: Is it possible to use bigdata viewer with heavy tif file ? What would be the preprocessing otherwise ?
Yes, you can use big tiff files. Laziness and handling of missing data allows for responsiveness even if the loading takes time. Depending on your use case, you may want to resave your data for faster access, or not.
Q12: For Tobias: Tobias, will you be able to talk more about file format of Arivis ? Arivis is very proud of being table to handle large data sets easily. Is there any difference from Imaris file format, or HDF5 ? Please advice.
HDF5 is often described as a “file-system in a file”, it is more a family of formats. Imaris’s .ims format and and the BDV format are both “dialects” of HDF5, and internally quite comparable. Arivis uses the proprietary .sis file format, so I know no technical details. I think they proud themselves of somehow saving storage space for the resolution pyramid (which adds ~1/7 on top of the original datasize).
Q13: are there tools to convert from bioformats coming from the microscopes to HDF5,N5 or Zarr?
You can convert using the BigDataViewer provided plugins into FIJI (to N5 and Hdf5), but if you’re lucky, your microscope file format is multiresolution and bioformats supports its multiresolution features (look at the bioformats documentation: Supported Formats — Bio-Formats 6.6.0 documentation - pyramid indicates whether multiresolution is supported). If that’s the case, no conversion is needed, if you directly use the bigdataviewer-playground module.
Q14: I have an XYZT dataset organized so that each timepoint T is saved into its own XYZ tif stack (so if there are 200 timepoints, there are 200 tif stacks, each containing 40 z slices) - could you show us how to load such a dataset into bigdataviewer or similar software?
An easy way to do this is to define a dataset using BigStitcher Define new dataset - ImageJ. This will create a new XML file which you can open in BigDataViewer, and which references the TIFFs directly. If you choose to, you can then also use BigStitcher > Batch Processing > Resave > As HDF5 to resave the dataset for faster access.
Q15: sorry, I’m confused. what I must do if I have “PGM�? or any ordinary iamge format?
If the image is not too big, simply open it with ImageJ (File>Open), and then you can open it in BigDataViewer using the command Plugins > BigDataViewer > Open Current Image
Q16: thank you ! I'm actually trying in parallel with open > myfile.tif and the big data viewer > open current image, but I get Exception error message when trying to open the file in the first place ...
Q17: Can I open a large tiled 2D image file in BDV without first opening it in FIJI? FIJI won´t let me open images larger than 2 gigapixels so I can´t open it using the demonstrated method.
It all depends on the original file format of your tiled 2D file. Any bioformats supported formats can in theory be opened thanks to the bigdataviewer-playground plugin, even if its number of pixels is beyond 2 gigapixels.
Q18: I have collected large montage TEM data using serialEM which I stitch using IMOD. The resultant data is a single flat image about 30-40GB in .mrc format (can also convert to .tiff). I found a script which was able to pyrimidize the data as I could not find a way to load it into Fiji. Do you have any tips for loading this type of data? Is there a way that BDV could format this type of data that I was missing?
@constantinpape is working on a bridge between serialEM and bdv, maybe he can comment on this one ?
Q19: How do you generate this new dataformat if you need to acquire several "neighbour" image-stacks? Is there an example available?
I’m not sure, what is meant by “neighbor”. If it is timepoints, tiles, or aquisition angles or something like that, you can use BigStitcher to define a dataset, possibly perform manual or automatic registration, and save a BigDataViewer dataset.
Q20: Do you know if BigDataViewer could directly open OME TIFF (with multiresolution )?
Bigdataviewer-playground is able to do this.
Q21: Is there any plans to create web version of BigDataViewer ? If not, what are the blocking challenges ?
There are no plans to do that currently. There are projects similar to BigDataViewer which are web-based, for example GitHub - google/neuroglancer: WebGL-based viewer for volumetric data
Q22: Do you think BDV could ever work with ImageJ.JS (i.e. in the browser?)
I think cross-compilation would work, but I don’t think it is a very attractive option. It would be better to do something natively in JS, maybe using the cross-compiled BigDataViewer backend.
Q23: When showing overlapping sources in BDV, can one change form "sum" to "average" fusion?
Not currently. In the BigDataViewer Java API there is an extension point where a fusion method can be plugged in, but there is nothing ready-made yet.
Q24: Can the „grouping“ xml file be transferred to other files?
In practice, probably no. (Yes, but only if they have exactly the same number of sources. You can just explicitly load a settings.xml file for the currently opened dataset and see whether it works.)
Q25: Can you do screenshots with this standard version of BDV?
You can record movies (from the menu), which are stored as sequences of png files. You can just export a movie with a single timepoint.
Q26: Do you need to go through Big Data Stitcher or can this tile position be defined in XML?
It can be defined in XML. In the XML, every source comprises an affine transform into global coordinate space. (Every tile is a source.)
Q27: Is it possible to create groups in BDV with a script (macro) instead of doing it by hand ?
You can create groups of sources programmatically using the bigdataviewer-playground plugins (command Plugins > BigDataViewer > Playground > Sources > Make Global Source Group.)
Q28: Is annotation in the different views of BDV possible? Or measuring/ROIs? For instance measuring/tracing lines in 3D.
There are no integrated annotation tools. BigDataViewer provides facilities for annotation tools to build on top of (e.g. Mastodon, Labkit, Bigwarp, …) but provides no annotation capabilities out-of-the-box.
Q29: can you save and/or create animation?
- Can you take snapshots of what is displayed in view window in BDV?
You can use “Tools > Record Movie” from the BigDataViewer menu for that.
Q30: DO you know of any efforts to put add joystick (eg playstation) functionality to operate BDV?
No, we don’t know of any such effort.
Q31: Is BDV playground agnostic to slide scanner native file type as long as it's readable in BioFormats?
- Will BDV Playground open slide scanner data in any format that BioFormats understands, e.g. Leica .scn?
In theory yes. Please post in image.sc forum and share a failing dataset if that’s not the case.
Q32: So, you have to convert from vsi (in this case) to xml? Or you can also open the vsi version with Playground?
The xml file takes no time to create. What it contains is simple metadata information (location in space, colors, and contrast settings essentially). If you are familiar with QuPath, it is a bit equivalent to the QuPath project file project.qupath. Vsi files can be opened directly into BigDataViewer-Playground, but if you don’t save the attached xml file, you will have to set over and over again the display settings each time you open a file. In short : there’s no conversion from vsi to xml. The xml file is simply a short file which actually refers to the vsi file and which contain additional metadata.
Q33: Does this work for other slide scanner formats (Like TissueFAXS from tissunostics)?
Any bioformats supported format should work. I’m not aware of tissuefaxs, but it doesn’t seem to show up in Supported Formats — Bio-Formats 6.6.0 documentation, so if the file format is proprietary, I doubt this specific file format will be supported. Interesting read about the multiplication of file formats : OME's position regarding file formats · The OME Blog
Q34: do you think it could be useful to integrate bigdataviewer with data management system like Omero?
Definitely. An omero bigdataviewer backend, compatible with the bigdataviewer ecosystem, would be terribly useful.
Q35: How would one define the properties of the different parts of the slides/images (channel definition, slice number and region etc.) in the BDV playground? (basically how to generate the xml file?)
The xml file is easily automatically generated, as demoed in these two minutes : (2 minutes from here : https://youtu.be/LHI7vXiUUms?t=4071, command Plugins > BigDataViewer > Playground > BDVDataset > Open [BioFormats Bdv Bridge (basic)]) the xml file is auto generated based on the metadata provided by the bioformats API (channels, tiles, etc.). If these data are not correct, an advanced command (Plugins > BigDataViewer > Playground > BDVDataset > Open [BioFormats Bdv Bridge]), exists, which can solve a few issues (missing metadata size, image flip). If the advanced command is not enough, the generated xml file can be manually edited.
Q36: @Nicolas: I am using BigStitcher to work on Zeiss LS data, and the first step is to re-save the data to BDV xml/h5. With your file loader, do I understand porpperly that this resaving step would now not be necessary anymore?
One issue with the LS data is that it can be positioned arbitrarily in 3D. The bioformats specifications only allow to specifiy an origin in 3D and a pixel size. Because of this limitation in the bioformats specifications, bigdataviewer-playground won’t be useful for this use case. To be more specific : it won’t work with multi angle dataset, but it should work for multi channel multi tiles acquisition. However BigStitcher contains a CZIReader which cna be directly used for registration. In fact you don’t need to resave your original tiles, but a first resaving allows to go faster for the registration. This part is better covered in the second neubias bigdata seminar, so please have a look at it.
Q37: Is there an option to align those brain slices in BDV, such that you can use 3D options like rotation that Tobias showed off?
You can import a dataset and manually position it in 3D using either the manual transformation in the ‘standard’ BigDataViewer, or using the command (Plugins>BigDataViewer>Playground>Sources>Transform>Manual Sources Transformation) in bigdataviewer-playground. Now for the specific case of slide scanner data registration to the Allen Adult Mouse brain atlas, the ABBA plugin (GitHub - BIOP/ijp-imagetoatlas: Atlas display and registration tools) will soon be released and should simplify a lot this sort of procedure. For a broader comparison of such tools, check this thread from the image.sc forum : Comparison of some tools for brain slice to atlas registration
Q38: can you do alignement of the slices with brain Atlas images for example?
BigWarp can do this, but there is in development a plugin dedicated to multi slices registration to the allen brain atlas (ABBA). For a broader comparison of such tools, check this thread from the image.sc forum : Comparison of some tools for brain slice to atlas registration
Q39: Great tool, Nicolas! Is the export to ImageJ1 (and other operations) macro recordable?
Yes, it is macro recordable. However, one thing which is not correctly recorded, is the way sources are selected for a specific command. Some documentation should arrive soon ® in order to explain this. But briefly, most of the sources to which you apply a command can be specified by their path within the tree view. For instance, a dataset called ‘MyDataset.xml’ with 2 channels, setting the color to all sources of the second channel will be : run(“Set Sources Color”, "color=30,136,229 sacs=[Sources>MyDataset.xml>Channel>2] ");
Q40: Where would the plug-in that you are working on be available?
Q41: Is there a good web resource that discusses all these options for working with big data?
Good question! Unfortunatly not that we know of.
Q42: Is it possible to register also light sheet data to Allen brain references, as the slide scanner images? Thanks!
Yes, not with BDV directly, but with tools build on top of BDV. In particular, BigStitcher and/or BigWarp should be usable for this. They are discussed in the next webinar of this series. For 2D slices to 3D atlas brain registration, this project will soon be available (GitHub - BIOP/ijp-imagetoatlas: Atlas display and registration tools)
Q43: What will you use for the atlas brain registration? For which image types should it work?
For 3D to 3D atlas registration : BigWarp or BigStitcher. For 2D to 3D, in the bigdataviewer ecosystem, please have a look at this project : GitHub - BIOP/ijp-imagetoatlas: Atlas display and registration tools
Q44: Can you perform alignment (instead of stacking)?
Yes, it’s just more involved. There are many efforts made in order to have registration supported into BigDataViewer. Depending on the use case you have to look at different options. The registration plugin mentioned in the webinar is dedicated to atlas brain registration. The best is probably to ask for advice and specifying what is your precise application in the image.sc forum. For manual registration, BigWarp is awesome. For automated registration, nothing is really standard.
Q45: How does the Atlas Registration Plugin you mentioned relate to BigWarp?
ABBA helps to position the slides approximately along the atlas in Z. Each slice is then handled individually. Then there are 3 options to register brain slice to the current atlas slice : automated affine, automated spline, or manual spline. Manual spline registration consists of calling BigWarp. Automated spline registration correspond to generating a thin plate spline transform from an elastix registration. This thin plate spline transform can be manually edited with BigWarp. So BigWarp is used in a lot of places in the Atlas registration plugin.
Q46: Christian - this is great, thank you. Any plans to integrate 3D image registration using fiducial markers? Or do you know any useful tools that can do this already?
I am not planning on adding 3D registration support as there are many other good tools around! My personal favorite is elastix: https://elastix.lumc.nl/; I like it so much that I even wrote a FIJI user interface for it: GitHub - embl-cba/elastixWrapper However, elastix is more for “intensity distribution based whole image registration”, not specifically relying on fiducials. I must admit I am not an expert on fiducial based image registration so I cannot recommend anything there. For manual registration of big image data BigWarp is awesome: BigWarp - ImageJ
Q47: In BDP2 are you planning to implement automatic registration in addition of the manual drift correct
I am not currently planning this, because I had this feature in BDP1 and it never worked 100% reliably. If you have 200 time-points and it just fails in one of them it essentially “does not work”. Thus my strategy for BDP2 is to try to come up with an efficient and convenient way of doing it manually. Any feedback is warmly welcome!
Q48: could we correct multiple drift in the same dataset my zebrafish move a bit in x, y z
I am not sure I understand the question fully, please get back to us if you need more details, but I can say that 3D (x,y,z) drift correction is supported.
Q49: Is drift correction on BDP2 only xy or also possible in z?
It is always 3D.
Q50: In general, for Big data storage and access do you have any recommendations? Or a “how to�? guide for newbies? Also, big data can also be in .tiff format. Will BDV, BDPG and BDP2 open it? Sorry maybe I missed that during the webinar...
I have no general guidelines yet. My hope is that this initiative will provide an answer: https://forum.image.sc/t/next-generation-file-formats-for-bioimaging/31361; With regards to opening TIFF: yes you can open this in BDP2! Please see the [ Open > Help] menu item or contact us.
Q51: Do you plan to support saving as N5 or HDF5 from BDP2?
BDP2 allows for saving in one flavor of HDF5, namely the Imaris HDF5 flavor. N5 is currently not planned, but should be possible to add. Please get back to us if you have a use case for this; either on the forum or here: Issues · bigdataprocessor/bigdataprocessor2 · GitHub
Q52: Can we save pyramidal OME-TIFF (or OME-Zarr?) from BDP2? (Like in “ijp-kheops but with pre-processing�?)
Good question! That would be great! But, no, currently not implemented! Please feel free to raise an issue here if you really need it: Issues · bigdataprocessor/bigdataprocessor2 · GitHub
Q53: I wanted to ask also again my original question - is there a way to open up a set of tif z stacks representing timepoints in bioformats, and then open it up in bigdataprocessor2?
You can open such data in BDP2: [ Open > Open Custom File Series … ] with the regular expression (?.*). Please see [ Open > Help ] for more information, in particular about the regular expressions.
Q54: Can I use a GPU for processing? Is it compatible with other Fiji plugins for GPU processing(CLIJ)?
BDP2 currently has no GPU support and is not compatible with CLIJ. It would be amazing if we as a community got all of those things working smoothly together, but it is a lot of work and needs a lot of coordination, but we try our best!
Q55: Do you have a guideline about how to work with big data on the cloud? Actually is there any solution offered?
not an immediate answer, but along this series of Big Data webinars, the 4th webinar (Feb 3) will tackle “annotations and big data in the cloud”, registration will soon open, keep tuned
Q56: Are there 'how to' guides for everything online?
Unfortunately nothing for “everything”. I know for BigDataViewer: https://imagej.net/BigDataViewer; and for BigDataProcessor2: bigdataprocessor2/README.md at master · bigdataprocessor/bigdataprocessor2 · GitHub