Page history Edit this page How do I edit this website?

BigDataViewer Playground

As announced in the forum here and here, bigdataviewer playground aims at a better integration of BigDataViewer into Fiji by using the SciJava Framework.

Installation

Enable the PTBIOP update site. The BIOP is maintaining this library.

What bigdataviewer-playground brings ?

  • Modularity for bigdataviewer! Bigdataviewer playground creates a way to access existing BDV instances when scripting or writing java code. Being able to combine scripts or code for display and processing is doable easily via scripting (Groovy, ImageJ macro, etc.)
  • Provide a set of macro recordable commands for bigdataviewer. Makes it possible to script basic actions on BigDataViewer with the ImageJ macro recorder.
  • Direct and lazy opening of multiresolution files, supported by bioformats. It is possible to open and visualize large files in bigdataviewer without resaving files. This is particularly convenient for large 2D images (à la QuPath).

Opening images in bigdataviewer-playground

Several options are available. Note that there’s a difference between opening and visualising an image. Images opened in bigdataviewer-playground are not visualized directly, but are sorted into a hierarchical tree displayed into an extra window. From this tree, images can be displayed using the right click contextual menu (see next section).

Open any bioformats supported files (tiff, vsi, czi, lif…)

Files (which can even be multi series) can be opened via the command [Plugins>BigDataViewer>Playground>BDVDataset>Open [BioFormats Bdv Bridge (Basic)]. Many files can be opened at the same time. To avoid going through all the hierarchy of Fiji’s menu, you can directly type bridge into Fiji’s search bar and click run.

/media/plugins/bdv/playground/bdvpg-bioformats-bridge-basic-open.png

Note that this WSI dataset demo-ed in this documentation is accessible from Zenodo.

Open a Bigdataviewer xml Dataset

A BigDataViewer dataset is an xml file which links to raw data and which contains additional metadata (positions, voxel size, channel descriptions etc.). These datasets can be generated by other BigDataViewer plugins such as BigStitcher, and bigdataviewer playground also provides a way to generate an xml bdv dataset.

Such datasets can be opened in bigdataviewer playground either via the command [Plugins>BigDataViewer>Playground>BDVDataset>Open XML BDV Datasets] (type open xml bdv into the search bar) or can be directly dragged and dropped into the bigdataviewer playground window (this window can be made visible with [Plugins>BigDataViewer>Playground>Show Bdv Playground Window]).

An xml bdv dataset contains the information used to load the images (the backend). The most used backend for bigdataviewer is the XML/HDF5 backend, but others exist (N5, Tiff, Remote, Imaris…). BigDataViewer Playground actually adds several backends which can facilitates the definitation of bio-formats, omero images, and QuPath projects into a bdv xml dataset.

Import the current ImageJ image

Similar to the command [Plugins>BigDataViewer>Open Current Image], it is possible to import the current ImageJ image as an image in the bigdataviewer playground hierarchical tree via the command [Plugins>BigDataViewer>Sources>Import>Get Sources From ImagePlus]

Visualizing images in bigdataviewer-playground

Standard view : with the spatial context from the dataset metadata

After one or several images have been opened in bigdataviewer playground, a window shows up which sorts the accessible images into a tree view:

/media/plugins/bdv/playground/bdvpg-tree-collapsed.png

The root node, always named Sources contains in brackets the number of accessible images contained in bigdataviewer-playground. This root node can be double clicked to be expanded and reveal its hierarchy:

/media/plugins/bdv/playground/bdvpg-tree-expanded.png

You can then right-click on any node to select the underlying sources (number indicated within brackets) and display a contextual menu:

/media/plugins/bdv/playground/bdvpg-tree-right-click.png

💡

All the actions in the contextual menu are available as standard Fiji plugins / commands. If you look for them if the search bar, you will find them.

In this contextual menu, you can click BDV - Show Sources to display the selected sources into a BigDataViewer window. A first pop-up menu appears

/media/plugins/bdv/playground/bdvpg-show-sources.png

To be safe, it is advised to click Adjust View on Source. Auto-contrast can take a significant amount of time if the data takes a long time to load. Only the lowest resolution level of a single plane (the middle one) is read, to try to make it fast.

/media/plugins/bdv/playground/bdvpg-bdv-example-image.png

To navigate within BigDataViewer, please look here for the commands.

If you are lost and the image do not seem to appear back, just right-click again the sources in the tree view, and select BDV - Show Sources, check adjust view on source, and BDV will go back to a decent viewer location. You can also close the window and reopen one from the tree view.

💡

You can open many viewers different viewers (for different channels, images, etc.), and even synchronize them.

How to select a subset of images using the tree view and display them with the Grid view

The bdv window displayed above actually displays 39 multiresolution images (the number in brackets when the tree view was right-clicked). If you expand the selected node in the tree view, you can visualize each source that was selected:

/media/plugins/bdv/playground/bdvpg-expanded-node.png

In BigDataViewer in general, a single source is goes up to 4D (XY, XYZ, XY+T, XYZ + T). Multiple channels are however separated in multiple sources, with the notable exception of RGB images where a single source contains all Red Green Blue components.

If you want to perform an action only on a subset of the images, it is quite easy to do in bigdataviewer-playground, because the tree view already sorts your dataset into many potential useful ways.

For instance, you will find all the DAPI images of the dataset by expanding the node coronal-sectionsChannel1All Sources :

/media/plugins/bdv/playground/bdvpg-expanded-node-dapi.png

Selecting all DAPI images is then as simple as selecting this node. If you right-click on this node, the action clicked will be performed on these sources only. To demo this subset selection, you can use a very convenient functionality of BigDataViewer-playground which is to rescale and display many images a big grid view. To launch this command look for Display sources on grid in Fiji’s search bar and click run:

/media/plugins/bdv/playground/bdvpg-display-sources-on-grid.png

And then select the DAPI node, and fill the other parameters as shown in the image below, and click OK:

/media/plugins/bdv/playground/bdvpg-display-sources-on-grid-selection.png

You can navigate all the DAPI images, and zoom in without losing any information.

/media/plugins/bdv/playground/bdvpg-bdv-dapi.png

If instead, you want to see all the images contained in a single file, you can instead select the node coronal-sectionsFileIndex…/Slice_02.vsi and get the following result:

/media/plugins/bdv/playground/bdvpg-bdv-slide02.png

All sources are split for different channels, because the images are split by the following dataset entities fileseries,tile,channel, but it’s possible to merge channels by removing the channel entity from the list:

/media/plugins/bdv/playground/bdvpg-bdv-slide02-nosplitchannel.png

/media/plugins/bdv/playground/bdvpg-bdv-slide02-nosplitchannel-show.png

Using BigDataViewer orthoviewer

Look for ortho bdv in Fiji’s search bar

/media/plugins/bdv/playground/bdvpg-bdv-ortho-command.png

These are the settings available : you can tune the bdv windows location and size. Checking Synchronize_sources allow to synchronize sources between windows : if you add or remove a source in one of the three views, the same action will be performed on the other views.

/media/plugins/bdv/playground/bdvpg-bdv-ortho-command-settings.png

/media/plugins/bdv/playground/bdvpg-bdv-ortho-windows.png

All movements and timepoints are synchronized between windows:

/media/plugins/bdv/playground/bdvpg-orthobdv.gif

Using BigVolumerViewer orthoviewer

BigVolumeViewer only supports unsigned 16-bits images currently

Look for ortho bvv in Fiji’s search bar

/media/plugins/bdv/playground/bdvpg-bvv-ortho-command.png

These are the settings available : you can tune the bvv windows location and size. Checking Synchronize_sources allow to synchronize sources between windows : if you add or remove a source in one of the three views, the same action will be performed on the other views.

/media/plugins/bdv/playground/bdvpg-bvv-ortho-command-settings.png

/media/plugins/bdv/playground/bdvpg-bvv-ortho-windows.png

All movements and timepoints are synchronized between windows:

/media/plugins/bdv/playground/bdvpg-orthobvv.gif

Another demo with a cell division

Setting the number of timepoints of viewers

The viewers do not adapt automatically to the number of timepoints from the sources which are displayed.

You need to explicitely set the number of timepoints. You can modify this a posteriori with the following commands (for BDV and BVV):

/media/plugins/bdv/playground/bdvpg-set-timepoints.png

I want a Z-slider!

Because BDV can display many sources in any direction and potentially warped them arbitrarily, it is not obvious to define “Z”. “For instance “X” can become “Z” if you rotate the stack by 90 degrees. It is nonetheless possible to add a Z-slider to BDV windows with the command PluginsBigDataViewer-PlaygroundBDVBDV - Add Z Slider. This slider only looks at the center of the bdv window and ‘casts a ray’ in this direction. Each time this ray crosses a plane, a corresponding step exists in the slider, however, the distance between each step do not reflect the z distance, but is simply in index of the plane crossed. the number of steps is dynamically computed.

Working with multiple viewers

Synchronization of viewers location

It is possible to synchronize the view between differents windows, it is even possible to synchronize views between bigvolumeviewer windows (3D) and bigdataviewer windows (2D section). Look for Synchronize views in Fiji’s search bar:

/media/plugins/bdv/playground/bdvpg-sync-views.png

You can then select one or several viewers, and they will be synchronized after pressing ok. A pop-up window then appears, and closing the window will stop the synchronization.

Do not synchronize a front and a right view! They can’t be orthogonal and at the same location.

In this example below, by synchronizing the front view of the bvv ortho viewers and the front view of the bdv ortho viewers, you can get an hybrid ortho 2D/3D view that provides a lot of information at the same time:

/media/plugins/bdv/playground/bdvpg-orthobvv-sync-orthobdv.gif

Synchronization of sources between viewers

You can synchronize the sources that are added or removed between windows with the Synchronize States command:

/media/plugins/bdv/playground/bdvpg-sync-states.png

💡

States in ortho viewers can be synchronized with a checkbox when they are created

Tutorials