Curtis Rueden,
UW-Madison LOCI
Tweets to #NEUBIAS
https://imagej.github.io/presentations/2017-02-16-imagej2-neubias
LOCI develops advanced optical and computational techniques for imaging and experimentally manipulating living specimens.
// Create a new ImageJ gateway with all available services.
ij = new ImageJ()
// Load a dataset from somewhere.
dataset = ij.io().open(imageSource)
// Filter the image.
fft = ij.op().fft(dataset)
lowpass(fft, 10)
result = ij.op().ifft(fft)
// Display the result.
ij.ui().show(result)
"Write once, run anywhere" image processing
Schindelin, J., et al. "The ImageJ ecosystem: an open platform for biomedical image analysis." Molecular reproduction and development 82.7-8 (2015): 518-529.
Why use ImageJ? Why improve ImageJ?
Why not use Imaris and MATLAB for everything?
Why join this community?
Why do science in the first place?
Is this good data?
The Internet makes sharing easy
"When in doubt, make it public."
—Jeff Atwood (co-creator of Stack Overflow)
Publish a compendium, not just a result
"An article about computational science in a scientific publication is not the scholarship itself, it is merely advertising of the scholarship."
—David Donoho, "Wavelab and Reproducible Research," 1995
Deep reproducibility demands the source code
"Software is a cornerstone of science. Without software, twenty-first century science would be impossible. Without better software, science cannot progress."
—Science Code Manifesto
And it is good for your career:
"Papers describing software published as open source are amongst the most widely cited publications (e.g., BLAST, and Clustal-W), suggesting many scientific studies may not have been possible without some kind of open software to collect observations, analyze data, or present results."
—Andreas Prlić & James Procter
"Ten Simple Rules for the Open Development of Scientific Software"
And it is good for your career:
"Science is hard enough already."
—Andreas Prlić & James Procter
"Ten Simple Rules for the Open Development of Scientific Software"
And it is good for your career:
Seriously.
^ Look familiar? ;-)
ImageJ2
SciJava
(base)
ImgLib2
(data model)
SCIFIO
(image I/O)
Ops
(image processing)
ImageJ Legacy
(compatibility)
A pledge to cooperate and reuse code
A collection of software components curated together
A promise of compatibility
ImageJ 1.x | ImageJ2 | |
---|---|---|
Image types | uint8, uint16, float32, rgb | bit, uint2, uint4, uint8, uint12, uint16, uint32, uint64, uint128, int8, int16, int32, int64, float32, float64, cfloat32, cfloat64, bigint, bigdec, argb, <your-image-type-here> |
Plugin types | PlugIn, PlugInFilter, PlugInTool | Command, Op, Tool, IOPlugin, Service, Converter, Codec, Format, DataHandle, TextFormat, ScriptLanguage, Display, UserInterface, Platform, App, Gateway, ModulePreprocessor, ModulePostprocessor, CodeRunner, ..., <your-plugin-type-here> |
Dimensions | 5D—XYZCT | N-dimensional—X, Y, Z, time, channel, emission spectra, lifetime, cell polarity, <your-dimension-here> |
Image formats | HandleExtraFileTypes | SCIFIO—including Bio-Formats plugin; <your-format-here> |
Parameters | GenericDialog | SciJava module @ parameter syntax—callable from ImageJ, KNIME, OMERO, CellProfiler, ..., <your-tool-here> |
Script languages | IJ1 macro, JavaScript, BeanShell, Java | BeanShell, Clojure (Lisp), Groovy, Java, JavaScript, JRuby, Jython (Python), Renjin (R), Scala, <your-language-here> |
User interface | AWT | Legacy, Swing, AWT, Apache Pivot, Eclipse SWT, JavaFX, KNIME, CellProfiler, OMERO, <your-ui-here> |
Distribution | Download, install and update manually | Hundreds of update sites; receive updates automatically (when you want!) |
"Of course there is plans..."
—Florian Jug
Help others to avoid repeating your pain.
You are custodians of the OSS ecosystem!
PIs: write grants to fund ImageJ-based development!
Academic paper
Rueden, C. T., et al. "ImageJ2: ImageJ for the next generation of scientific image data." arXiv preprint (2017).
45-minute presentation
Rueden, C. T. "ImageJ2 and Fiji: The ImageJ2 platform, and the Fiji distribution of ImageJ." ImageJ Conference 2015. video, slides
Kevin
Eliceiri
Pavel
Tomancak
Jason
Swedlow
Michael
Berthold
Anne
Carpenter
Christian
Dietz
Tobias
Pietzsch
Stephan
Saalfeld
Wayne
Rasband
And all supporters of open science and open software!