SlideShare a Scribd company logo
ImageJ and the
SciJava software stack
Curtis Rueden, LOCI Software Architect
https://loci.wisc.edu/software
Open Science
Motivation
Open Science
 Stand on each others’ shoulders
Motivation
Open Science
 Stand on each others’ shoulders
 Discover new knowledge
Motivation
Open Science
 Stand on each others’ shoulders
 Discover new knowledge
 Improve the human condition
Motivation
Open Science
Computers help studies
Open Science
 Quantitative research
Computers help studies
Open Science
 Quantitative research
 Keep track of everything
Computers help studies
Open Science
 Information provenance
 Remember what you did
 Remember how you did it
Computers help studies
Open Science
 Information provenance
 Remember what you did
 Remember how you did it
 Explain it to someone else
Computers help studies
Open Science
 Information provenance
 Remember what you did
 Remember how you did it
 Explain it to someone else
 Reproducibility
 Verify or invalidate others’ work
Computers help studies
Open Science
 The Internet makes sharing easy
 Wikipedia: public encyclopedia
 Stack Exchange: public Q & A
 GitHub: public source control
 Facebook: public socializing
 Google: public etc.
Computers help share
“When in doubt, make it public.”
—Jeff Atwood (co-creator of Stack Overflow)
“When in doubt, make it public.”
—Jeff Atwood (co-creator of Stack Overflow)
Open Science
 Publish a compendium, not just a result
 Protocols & methodology
 Raw data
 Computer code
Computers help share
“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
“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
Open Science
 Reproducibility demands the source code
Why share?
http://sciencecodemanifesto.org/http://sciencecodemanifesto.org/
Open Science
 Reproducibility demands the source code
 It is good for your career anyway
Why share?
“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”
http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
“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”
http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
Open Science
 Reproducibility demands the source code
 It is good for your career anyway
Why share?
“Science is hard enough already.”
—Andreas Prli & James Procterć
“Ten Simple Rules for the Open Development of Scientific Software”
http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
“Science is hard enough already.”
—Andreas Prli & James Procterć
“Ten Simple Rules for the Open Development of Scientific Software”
http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
Open Science
 Source code itself is just an open result
Beyond open results
Open Science
 Source code itself is just an open result
 We can do better!
 Open development process
 Improve software as a community
 Open access resources
 Responsive, reliable maintainers
 Powerful collaboration tools (GitHub!)
Beyond open results
Why ImageJ2?
 What’s so great about ImageJ?
Strengths
Why ImageJ2?
 What’s so great about ImageJ?
 Extensibility
Strengths
Why ImageJ2?
 What’s so great about ImageJ?
 Extensibility
 What else is needed?
 Modularity
 Interoperability
Weaknesses
ImageJ2
 A standalone application
What is ImageJ2?
http://imagej.net/http://imagej.net/
ImageJ2
 A standalone application
 A reusable library
What is ImageJ2?
http://imagej.net/http://imagej.net/
ImageJ2
 A standalone application
 A reusable library
 An extensible collection of services & plugins
What is ImageJ2?
http://imagej.net/http://imagej.net/
ImageJ2
 A framework for image processing routines
What is ImageJ2?
KNIPnodes
Java API
imagej-omero
Java bridge
http://imagej.net/http://imagej.net/
ImageJ2
 An effort to overcome the constraints of ImageJ:
 A new, supremely extensible plugin framework
 Dimensions beyond X, Y, Z, time and channel
 Planes larger than 2 gigapixels
 Pixel types beyond uint8, uint16 and float32
 Access data beyond only files on disk
 Beyond one user, one desktop, one machine
Technical
http://imagej.net/http://imagej.net/
ImageJ2
 A hub for worldwide development efforts
 Central documentation resource & support
 A distributed network of >100 update sites
extending ImageJ’s capabilities
 A focus on interoperability & collaboration
Social
http://imagej.net/http://imagej.net/
Mission of ImageJ2
Lead ImageJ development
with a clear vision
Create the next version of
ImageJ, based on the needs of
the community
Collaborate with others
whenever beneficial
Make ImageJ useful to a
broad community
Maintain backwards
compatibility with ImageJ1
Provide a central online
resource for ImageJ
Mission of ImageJ2
Lead ImageJ development
with a clear vision
Create the next version of
ImageJ, based on the needs of
the community
Collaborate with others
whenever beneficial
Make ImageJ useful to a
broad community
Maintain backwards
compatibility with ImageJ1
Provide a central online
resource for ImageJ
ImageJ2
 ImageJ Updater
 Install new plugins
in a few clicks
 Automatically
receive software
updates
 Distribute your
own plugins on an
update site
Features
http://imagej.net/Updaterhttp://imagej.net/Updater
ImageJ2
Features
 Improved image I/O with the SCIFIO library
 SCientific Image Format Input and Output
 “Write once, run anywhere” for image formats
 ImageJ2 uses SCIFIO for image input tasks
 Toggle behavior in the ImageJ2 options menu
http://imagej.net/SCIFIOhttp://imagej.net/SCIFIO
ImageJ2
Features
 A new era of image processing with
ImageJ OPS
 Extensible, powerful and high performance
 “Write once, run anywhere” for image
processing algorithms
 N-dimensional images built on the
powerful ImgLib2 library
http://imagej.net/OPShttp://imagej.net/OPS
ImageJ2
Features
 Supreme extensibility with the SciJava library
 Modules: parameterized commands and scripts
 Interoperable across many applications; e.g.:
 ImageJ, KNIME, CellProfiler, OMERO
 Plugins: versatile extension points
 Each plugin type is a tool for a particular job
 Easily define new plugin types as needed
 ImageJ2 and SCIFIO are both plugin-driven
http://imagej.net/SciJavahttp://imagej.net/SciJava
ImageJ2
Compatibility
 ImageJ2 includes ImageJ version 1.x
 ImageJ 1.x features continue to work via
ImageJ2’s legacy user interface plugin
 New features of ImageJ 1.x developed by
Wayne Rasband also work in this way
 Users can “mix and match” the
capabilities of ImageJ 1.x and ImageJ2
http://imagej.net/ImageJ1http://imagej.net/ImageJ1
ImageJ2
Fiji
 Fiji Is Just ImageJ
 A distribution of ImageJ for the life sciences
 A community of ImageJ developers
 Built on the ImageJ2 platform
 Includes over 700 additional commands
http://fiji.sc/http://fiji.sc/
SCIFIO
 Built on the ImageJ2 metadata model
 N-dimensional data, backed by ImgLib2
 Reads 30 formats, writes 11 formats
 Integration with Bio-Formats
 Integration with ITK
Summary
http://scif.io/http://scif.io/
SCIFIO
 A framework for metadata exchange
 Evolved from the Bio-Formats project, but more
general in scope with many lessons learned
 The Open Microscopy Environment’s
OME-XML schema is already implemented
 Other data models are equally feasible
Mission
http://scif.io/http://scif.io/
SciJava
 A collaboration of projects providing
software for scientific computing
 A pledge to cooperate and reuse code
http://scijava.org/http://scijava.org/
Social
SciJava
 SciJava Common – a shared platform
 Plugin framework
 Application container
 Module framework
 Scripting framework
 Utility classes
 Guideline: functionality unspecific to images
http://scijava.org/http://scijava.org/
Technical
SciJava
 A shared development paradigm
 Open source and open process
 Project management tools
 Maven & Nexus
 Git & GitHub
 Jenkins
 A structure enabling two developers to
maintain ~300 source code repositories!
http://imagej.net/Architecturehttp://imagej.net/Architecture
Technical
SciJava
 KNIME, the KoNstanz Information
MinEr, has an Image Processing
extension integrating KNIME with
SciJava, ImageJ and SCIFIO
 Any headless SciJava module,
including all ImageJ OPS plugins,
can be embedded in a KNIME
workflow as KNIME nodes
http://knime.imagej.net/http://knime.imagej.net/
KNIME
SciJava
 The Broad Institute’s CellProfiler
supports execution of SciJava
modules from a CellProfiler pipeline
 CellProfiler also integrates support
for Bio-Formats via a Python-Java
bridge
http://cellprofiler.org/http://cellprofiler.org/
CellProfiler
SciJava
 The OMERO database stores and manages
life sciences images in a unified way
 The ImageJ-OMERO project can:
 Download pixels from OMERO into ImageJ
 Upload images as new OMERO data
 Execute SciJava modules as OMERO scripts
on the server side
http://imagej.net/OMEROhttp://imagej.net/OMERO
OMERO
Acknowledgements
Kevin
Eliceiri
Jason
Swedlow
Pavel
Tomancak
Anne
Carpenter
Michael
Berthold
And everyone supporting open science and open software!
Johannes
Schindelin
Mark
Hiner
Christian
Dietz
Lee
Kamentsky
Stephan
Saalfeld
Tobias
Pietzsch
Stephan
Preibisch

More Related Content

Viewers also liked (6)

Quantitative metallography
Quantitative metallographyQuantitative metallography
Quantitative metallography
 
Measurement NOTES
Measurement NOTESMeasurement NOTES
Measurement NOTES
 
Grain size analysis
Grain size analysisGrain size analysis
Grain size analysis
 
ASTM E 112 GRAIN SIZE MEASURING METHODS full standard, mecanical
ASTM E 112 GRAIN SIZE MEASURING METHODS full standard, mecanicalASTM E 112 GRAIN SIZE MEASURING METHODS full standard, mecanical
ASTM E 112 GRAIN SIZE MEASURING METHODS full standard, mecanical
 
Grain size analysis by using ImageJ
Grain size analysis by using ImageJGrain size analysis by using ImageJ
Grain size analysis by using ImageJ
 
Talk 8-Kevin-Imagej2
Talk 8-Kevin-Imagej2 Talk 8-Kevin-Imagej2
Talk 8-Kevin-Imagej2
 

Similar to ImageJ and the SciJava software stack

Unesco Presentation
Unesco PresentationUnesco Presentation
Unesco Presentation
Umesh
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
DicodingEvent
 
Mtsr2015 goble-keynote
Mtsr2015 goble-keynoteMtsr2015 goble-keynote
Mtsr2015 goble-keynote
Carole Goble
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
Keiichiro Ono
 

Similar to ImageJ and the SciJava software stack (20)

VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
VIZBI 2015 Tutorial: Cytoscape, IPython, Docker, and Reproducible Network Dat...
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
 
Semantic Representation of Provenance in Wikipedia
Semantic Representation of Provenance in WikipediaSemantic Representation of Provenance in Wikipedia
Semantic Representation of Provenance in Wikipedia
 
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
Eclipse DemoCamp Budapest 2016 November: Best of EclipseCon Europe 2016
 
Simbios - Open Science in Biocomputational Research
Simbios - Open Science in Biocomputational ResearchSimbios - Open Science in Biocomputational Research
Simbios - Open Science in Biocomputational Research
 
Jesse Xiao at CODATA2017: Updates to the GigaDB open access data publishing p...
Jesse Xiao at CODATA2017: Updates to the GigaDB open access data publishing p...Jesse Xiao at CODATA2017: Updates to the GigaDB open access data publishing p...
Jesse Xiao at CODATA2017: Updates to the GigaDB open access data publishing p...
 
Unesco Presentation
Unesco PresentationUnesco Presentation
Unesco Presentation
 
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and toolsOpen Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
Open Access Week 2017: Life Sciences and Open Sciences - worfkflows and tools
 
第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken第1回バイオインフォマティクスデータ可視化セミナー@Riken
第1回バイオインフォマティクスデータ可視化セミナー@Riken
 
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...Introduction to Biological Network Analysis and Visualization with Cytoscape ...
Introduction to Biological Network Analysis and Visualization with Cytoscape ...
 
Six Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower ScientistsSix Principles of Software Design to Empower Scientists
Six Principles of Software Design to Empower Scientists
 
Gridforum David De Roure Newe Science 20080402
Gridforum David De Roure Newe Science 20080402Gridforum David De Roure Newe Science 20080402
Gridforum David De Roure Newe Science 20080402
 
BioThings API: Promoting Best-practices via a Biomedical API Development Ecos...
BioThings API: Promoting Best-practices via a Biomedical API Development Ecos...BioThings API: Promoting Best-practices via a Biomedical API Development Ecos...
BioThings API: Promoting Best-practices via a Biomedical API Development Ecos...
 
[3.6] Beyond Data Sharing - Pieter van Gorp [3TU.Datacentrum Symposium 2014, ...
[3.6] Beyond Data Sharing - Pieter van Gorp [3TU.Datacentrum Symposium 2014, ...[3.6] Beyond Data Sharing - Pieter van Gorp [3TU.Datacentrum Symposium 2014, ...
[3.6] Beyond Data Sharing - Pieter van Gorp [3TU.Datacentrum Symposium 2014, ...
 
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang RamadhanCara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
Cara Tepat Menjadi iOS Developer Expert - Gilang Ramadhan
 
Software Sustainability: Better Software Better Science
Software Sustainability: Better Software Better ScienceSoftware Sustainability: Better Software Better Science
Software Sustainability: Better Software Better Science
 
Mtsr2015 goble-keynote
Mtsr2015 goble-keynoteMtsr2015 goble-keynote
Mtsr2015 goble-keynote
 
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford ConsortiumSDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
SDCSB CYTOSCAPE AND NETWORK ANALYSIS WORKSHOP at Sanford Consortium
 
Reproducible Science and Deep Software Variability
Reproducible Science and Deep Software VariabilityReproducible Science and Deep Software Variability
Reproducible Science and Deep Software Variability
 
Reproducibility: 10 Simple Rules
Reproducibility: 10 Simple RulesReproducibility: 10 Simple Rules
Reproducibility: 10 Simple Rules
 

Recently uploaded

Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
mbmh111980
 

Recently uploaded (20)

WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
Facemoji Keyboard released its 2023 State of Emoji report, outlining the most...
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
AI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in MichelangeloAI/ML Infra Meetup | ML explainability in Michelangelo
AI/ML Infra Meetup | ML explainability in Michelangelo
 
SOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBrokerSOCRadar Research Team: Latest Activities of IntelBroker
SOCRadar Research Team: Latest Activities of IntelBroker
 
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdfMastering Windows 7 A Comprehensive Guide for Power Users .pdf
Mastering Windows 7 A Comprehensive Guide for Power Users .pdf
 
Using IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New ZealandUsing IESVE for Room Loads Analysis - Australia & New Zealand
Using IESVE for Room Loads Analysis - Australia & New Zealand
 
AI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning FrameworkAI/ML Infra Meetup | Perspective on Deep Learning Framework
AI/ML Infra Meetup | Perspective on Deep Learning Framework
 
Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024Top Mobile App Development Companies 2024
Top Mobile App Development Companies 2024
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
iGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by SkilrockiGaming Platform & Lottery Solutions by Skilrock
iGaming Platform & Lottery Solutions by Skilrock
 
Agnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in KrakówAgnieszka Andrzejewska - BIM School Course in Kraków
Agnieszka Andrzejewska - BIM School Course in Kraków
 
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
Abortion ^Clinic ^%[+971588192166''] Abortion Pill Al Ain (?@?) Abortion Pill...
 
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
A Python-based approach to data loading in TM1 - Using Airflow as an ETL for TM1
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Studiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting softwareStudiovity film pre-production and screenwriting software
Studiovity film pre-production and screenwriting software
 

ImageJ and the SciJava software stack

  • 1. ImageJ and the SciJava software stack Curtis Rueden, LOCI Software Architect https://loci.wisc.edu/software
  • 3. Open Science  Stand on each others’ shoulders Motivation
  • 4. Open Science  Stand on each others’ shoulders  Discover new knowledge Motivation
  • 5. Open Science  Stand on each others’ shoulders  Discover new knowledge  Improve the human condition Motivation
  • 7. Open Science  Quantitative research Computers help studies
  • 8. Open Science  Quantitative research  Keep track of everything Computers help studies
  • 9. Open Science  Information provenance  Remember what you did  Remember how you did it Computers help studies
  • 10. Open Science  Information provenance  Remember what you did  Remember how you did it  Explain it to someone else Computers help studies
  • 11. Open Science  Information provenance  Remember what you did  Remember how you did it  Explain it to someone else  Reproducibility  Verify or invalidate others’ work Computers help studies
  • 12. Open Science  The Internet makes sharing easy  Wikipedia: public encyclopedia  Stack Exchange: public Q & A  GitHub: public source control  Facebook: public socializing  Google: public etc. Computers help share “When in doubt, make it public.” —Jeff Atwood (co-creator of Stack Overflow) “When in doubt, make it public.” —Jeff Atwood (co-creator of Stack Overflow)
  • 13. Open Science  Publish a compendium, not just a result  Protocols & methodology  Raw data  Computer code Computers help share “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 “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
  • 14. Open Science  Reproducibility demands the source code Why share? http://sciencecodemanifesto.org/http://sciencecodemanifesto.org/
  • 15. Open Science  Reproducibility demands the source code  It is good for your career anyway Why share? “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” http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802 “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” http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
  • 16. Open Science  Reproducibility demands the source code  It is good for your career anyway Why share? “Science is hard enough already.” —Andreas Prli & James Procterć “Ten Simple Rules for the Open Development of Scientific Software” http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802 “Science is hard enough already.” —Andreas Prli & James Procterć “Ten Simple Rules for the Open Development of Scientific Software” http://www.ploscompbiol.org/article/info%3Adoi%2F10.1371%2Fjournal.pcbi.1002802
  • 17. Open Science  Source code itself is just an open result Beyond open results
  • 18. Open Science  Source code itself is just an open result  We can do better!  Open development process  Improve software as a community  Open access resources  Responsive, reliable maintainers  Powerful collaboration tools (GitHub!) Beyond open results
  • 19. Why ImageJ2?  What’s so great about ImageJ? Strengths
  • 20. Why ImageJ2?  What’s so great about ImageJ?  Extensibility Strengths
  • 21. Why ImageJ2?  What’s so great about ImageJ?  Extensibility  What else is needed?  Modularity  Interoperability Weaknesses
  • 22. ImageJ2  A standalone application What is ImageJ2? http://imagej.net/http://imagej.net/
  • 23. ImageJ2  A standalone application  A reusable library What is ImageJ2? http://imagej.net/http://imagej.net/
  • 24. ImageJ2  A standalone application  A reusable library  An extensible collection of services & plugins What is ImageJ2? http://imagej.net/http://imagej.net/
  • 25. ImageJ2  A framework for image processing routines What is ImageJ2? KNIPnodes Java API imagej-omero Java bridge http://imagej.net/http://imagej.net/
  • 26. ImageJ2  An effort to overcome the constraints of ImageJ:  A new, supremely extensible plugin framework  Dimensions beyond X, Y, Z, time and channel  Planes larger than 2 gigapixels  Pixel types beyond uint8, uint16 and float32  Access data beyond only files on disk  Beyond one user, one desktop, one machine Technical http://imagej.net/http://imagej.net/
  • 27. ImageJ2  A hub for worldwide development efforts  Central documentation resource & support  A distributed network of >100 update sites extending ImageJ’s capabilities  A focus on interoperability & collaboration Social http://imagej.net/http://imagej.net/ Mission of ImageJ2 Lead ImageJ development with a clear vision Create the next version of ImageJ, based on the needs of the community Collaborate with others whenever beneficial Make ImageJ useful to a broad community Maintain backwards compatibility with ImageJ1 Provide a central online resource for ImageJ Mission of ImageJ2 Lead ImageJ development with a clear vision Create the next version of ImageJ, based on the needs of the community Collaborate with others whenever beneficial Make ImageJ useful to a broad community Maintain backwards compatibility with ImageJ1 Provide a central online resource for ImageJ
  • 28. ImageJ2  ImageJ Updater  Install new plugins in a few clicks  Automatically receive software updates  Distribute your own plugins on an update site Features http://imagej.net/Updaterhttp://imagej.net/Updater
  • 29. ImageJ2 Features  Improved image I/O with the SCIFIO library  SCientific Image Format Input and Output  “Write once, run anywhere” for image formats  ImageJ2 uses SCIFIO for image input tasks  Toggle behavior in the ImageJ2 options menu http://imagej.net/SCIFIOhttp://imagej.net/SCIFIO
  • 30. ImageJ2 Features  A new era of image processing with ImageJ OPS  Extensible, powerful and high performance  “Write once, run anywhere” for image processing algorithms  N-dimensional images built on the powerful ImgLib2 library http://imagej.net/OPShttp://imagej.net/OPS
  • 31. ImageJ2 Features  Supreme extensibility with the SciJava library  Modules: parameterized commands and scripts  Interoperable across many applications; e.g.:  ImageJ, KNIME, CellProfiler, OMERO  Plugins: versatile extension points  Each plugin type is a tool for a particular job  Easily define new plugin types as needed  ImageJ2 and SCIFIO are both plugin-driven http://imagej.net/SciJavahttp://imagej.net/SciJava
  • 32. ImageJ2 Compatibility  ImageJ2 includes ImageJ version 1.x  ImageJ 1.x features continue to work via ImageJ2’s legacy user interface plugin  New features of ImageJ 1.x developed by Wayne Rasband also work in this way  Users can “mix and match” the capabilities of ImageJ 1.x and ImageJ2 http://imagej.net/ImageJ1http://imagej.net/ImageJ1
  • 33. ImageJ2 Fiji  Fiji Is Just ImageJ  A distribution of ImageJ for the life sciences  A community of ImageJ developers  Built on the ImageJ2 platform  Includes over 700 additional commands http://fiji.sc/http://fiji.sc/
  • 34. SCIFIO  Built on the ImageJ2 metadata model  N-dimensional data, backed by ImgLib2  Reads 30 formats, writes 11 formats  Integration with Bio-Formats  Integration with ITK Summary http://scif.io/http://scif.io/
  • 35. SCIFIO  A framework for metadata exchange  Evolved from the Bio-Formats project, but more general in scope with many lessons learned  The Open Microscopy Environment’s OME-XML schema is already implemented  Other data models are equally feasible Mission http://scif.io/http://scif.io/
  • 36. SciJava  A collaboration of projects providing software for scientific computing  A pledge to cooperate and reuse code http://scijava.org/http://scijava.org/ Social
  • 37. SciJava  SciJava Common – a shared platform  Plugin framework  Application container  Module framework  Scripting framework  Utility classes  Guideline: functionality unspecific to images http://scijava.org/http://scijava.org/ Technical
  • 38. SciJava  A shared development paradigm  Open source and open process  Project management tools  Maven & Nexus  Git & GitHub  Jenkins  A structure enabling two developers to maintain ~300 source code repositories! http://imagej.net/Architecturehttp://imagej.net/Architecture Technical
  • 39. SciJava  KNIME, the KoNstanz Information MinEr, has an Image Processing extension integrating KNIME with SciJava, ImageJ and SCIFIO  Any headless SciJava module, including all ImageJ OPS plugins, can be embedded in a KNIME workflow as KNIME nodes http://knime.imagej.net/http://knime.imagej.net/ KNIME
  • 40. SciJava  The Broad Institute’s CellProfiler supports execution of SciJava modules from a CellProfiler pipeline  CellProfiler also integrates support for Bio-Formats via a Python-Java bridge http://cellprofiler.org/http://cellprofiler.org/ CellProfiler
  • 41. SciJava  The OMERO database stores and manages life sciences images in a unified way  The ImageJ-OMERO project can:  Download pixels from OMERO into ImageJ  Upload images as new OMERO data  Execute SciJava modules as OMERO scripts on the server side http://imagej.net/OMEROhttp://imagej.net/OMERO OMERO
  • 42. Acknowledgements Kevin Eliceiri Jason Swedlow Pavel Tomancak Anne Carpenter Michael Berthold And everyone supporting open science and open software! Johannes Schindelin Mark Hiner Christian Dietz Lee Kamentsky Stephan Saalfeld Tobias Pietzsch Stephan Preibisch

Editor's Notes

  1. Just like ImageJ 1.x, ImageJ2 provides a standalone user interface for image processing.
  2. And just like ImageJ 1.x, it can be used as a library… although we have substantially improved ImageJ2’s “separation of concerns” to make it easier to use headless, embed and customize within other applications.
  3. ImageJ2 is highly extensible. There are many different sorts of plugins you can write to enhance its behavior. Even the ImageJ2 application itself is a user interface plugin, with other such UI plugins being equally possible.
  4. ImageJ2, and its core data model driven by the ImgLib2 library, provide a platform for sharing image processing algorithms and workflows. Image commands are intended to be executable from a multitude of contexts, including applications like CellProfiler, KNIME, OMERO and Icy.
  5. One way to think of SciJava is:
  6. One way to think of SciJava is:
  7. Figure: an ImageJ 1.x macro being executed from within KNIME as part of a workflow.