Hehe, the first game of life I code (in #FijiSc
using #BigDataViewer
obviously). Naive implementation, but still functionally defined and lazy computed - see how the data arrives as I scroll, and is cached.
Hehe, the first game of life I code (in #FijiSc
using #BigDataViewer
obviously). Naive implementation, but still functionally defined and lazy computed - see how the data arrives as I scroll, and is cached.
A tradition - showing off with #BigDataViewer This time by making the ABBA (go.epfl.ch/abba) logo with 4900 multiresolution images, each with a custom affine transform. Smooth when zoomed in, lagging a bit from afar but still very manageable.
A classic in dynamical systems: the Lorenz attractor, computed and visualized using #Fiji in #BigDataViewer
Too lazy for a movie today, but look at this nice procedural image! It's a plane wave spherically transformed 2 times. Still with #BigDataViewer
Spherical coordinates live transformation with #BigDataViewer .
Left: a view of a drosophila egg chamber, with a fitted ellipsoid on top of it,
right: a theta / phi view of the egg chamber. I also scroll along the r dimension, and rotate the poles.
Another day, another #BigDataViewer
video. This time an orthoviewer + a BigVolumeViewer. Dataset = Allen Brain Atlas CCFv3.
All those demos will be accessible in Fiji with the PTBIOP update site soon.
Yep, it lags a little. But still quite impressive considering that each "pixel" is a 150 MPixel multires image. Overall the total number of 'adressable' pixels in this 2D image are 225x225x150 Mpix = 7.6 Tera pixels. #ImageJ
#Fiji
#BigDataViewer
Why would one want to run machine learning inference from #java?
To do so on 3D, 4D, ND datasets, trivially accessible from image processing and visualization libraries such as #ImgLib2, the #BigDataViewer, #LabKit and more, all integral parts of #FijiSc.
* LabKit: https://imagej.net/plugins/labkit/
* BigDataViewer: https://imagej.net/plugins/bdv/
* ImgLib2: https://imagej.net/libs/imglib2/
* Fiji: https://fiji.sc
Doncs ...
#BigStitcher https://www.nature.com/articles/s41592-019-0501-0
#BigDataViewer https://www.nature.com/articles/nmeth.3392
#ImgLib2 https://academic.oup.com/bioinformatics/article-abstract/28/22/3009/240540
#CATMAID https://academic.oup.com/bioinformatics/article-abstract/25/15/1984/210794
Elastic volume registration https://www.nature.com/articles/nmeth.2072
#vEM #volumeEM https://l1em.catmaid.virtualflybrain.org/?pid=1&zp=59900&yp=36430.399999999994&xp=32311.00000000001&tool=tracingtool&sid0=1&s0=3
#FIJI development is mainly concentrated at #LOCI based at #UWMadison.
#imglib2 development is currently focused at @HHMI Janelia where I work.
Tobias Pietzsch, an independent developer, is now picking up of #imglib2 and #BigDataViewer development with support from #CZI and @HHMI .
If you happen to own the cheap but amazing Behringer X-TOUCH mini #MIDI controller, you can use it to navigate in #Fiji 's #N5 #BigDataViewer plugin. The video is an older capture from when I was playing around with the controller but it work's exactly the same. The API works for all #MCU devices but you would have to provide the layout https://github.com/saalfeldlab/n5-viewer/blob/master/src/main/java/org/janelia/saalfeldlab/control/mcu/XTouchMiniMCUControlPanel.java (also, infinity VPots without physical min and max are useful for this). PRs welcome!
Now onto #FijiSc: Fiji is a recursive acronym meaning "Fiji is just ImageJ" https://fji.sc (and the paper https://www.nature.com/articles/nmeth.2019 ) –and #ImageJ is a #java open source software for image processing https://imagej.nih.gov/ij/index.html written by Wayne Rasband from the #NIH Research Branch.
An analogy: think of ImageJ as the kernel and Fiji as the rest of the operating system.
#FijiSc brings to #ImageJ:
(1) a package manager to install and update plugins, and that crucially enables reproducible science by exporting the whole set of plugins and libraries as an executable;
(2) a Script Editor https://imagej.net/scripting/script-editor supporting many languages (#python, #groovy #ruby #scala #clojure and more), all with access to a huge collection of #JVM libraries;
(3) huge amount of libraries such as #ImgLib2, #JFreeChart for plotting, for GUIs, etc.
There are many, many plugins. A tiny sample:
Machine learning-based image segmentation:
- #LabKit https://imagej.net/plugins/labkit/
- #WEKA Trainable Segmentation https://imagej.net/plugins/tws/index
3D/4D/ND Visualization:
- 3D/4D Viewer #3DViewer https://imagej.net/plugins/3d-viewer/index with ray-tracing, orthoslices, volume rendering, and more
- #BigDataViewer #BDV https://imagej.net/plugins/bdv/index for interactively navigate N-dimensional image volumes larger than RAM
Image registration and serial section alignment:
- #BigStitcher for registering 3D/4D tiled datasets, with multiview deconvolution and more https://imagej.net/plugins/bigstitcher/index
- #TrakEM2 for montaging in 2D and alinging in 3D collections of serial sections, typically from #vEM (volume electron microscopy) https://syn.mrc-lmb.cam.ac.uk/acardona/INI-2008-2011/trakem2.html
- #mpicbg libraries for extracting #SIFT and #MOPS features, then finding feature correspondences and estimating rigid and elastic transformation models https://www.nature.com/articles/nmeth.2072
Summarizing #FijiSc is impossible. See the online forum where questions find answers by the hand of the broader community of users and developers https://forum.image.sc/