SCIFIO

This page describes LOCI’s role in developing SCIFIO. For the main web site, see:
http://scif.io/

SCIFIO (SCientific Image Format Input and Output) is a library for flexible and extensible scientific image I/O. It is part of the SciJava software stack, and in use by several projects including ImageJ2ImgLib2, and the Insight Toolkit (ITK).

The SCIFIO library is a refactoring and generalization of Bio-Formats beyond the life sciences. Classic Bio-Formats uses OME-XML to model the metadata for a given image, standardizing all supported formats to this schema. This tight integration, along with the naming itself of Bio-Formats, discourages potential users from outside the life sciences (if their imaging requirements include metadata outside the OME-XML specification). Furthermore, the steps of processing image formats are obfuscated by their consolidation into a single “Reader” class; this increases the entry barrier for 3rd party developers to add support for additional formats. Finally, the GPL licensing of Bio-Formats precludes its inclusion in non-GPL software packages such as ImageJ, ITK, VCell and VisAD.

SCIFIO aims to resolve these issues by reversing the OME-XML dependency and teasing apart the stages of image format conversion and processing. SCIFIO will define the core components of flexible image format support. OME-XML will become one type of metadata, which Bio-Formats will still use to standardize the metadata of a wide variety of image formats. Thus Bio-Formats will become an extension to SCIFIO, but the underlying structure wlil allow any number of such extensions to coexist. Dynamic discovery mechanisms will allow these modules to be used as needed, as long as the underlying program incorporates the SCIFIO core. Further, the SCIFIO core will include support only for the open source formats currently supported by Bio-Formats, allowing distribution under the BSD license (though individual modules can fall under any licensing framework, and Bio-Formats will continue to have a dual GPL + commercial license).

The core SCIFIO library and related open source projects are maintained by LOCI. Currently we develop the framework, open source formats, and a compatibility layer for Bio-Formats and OME-XML-based metadata. All of these are community software, and contributions are both welcome and encouraged via the GitHub pull request mechanism. Additional metadata models or format support beyond the scope of the core modules are also welcome – we recommend distribution via ImageJ update sites. Finally, any image processing application is welcome to use SCIFIO as its image I/O core: start with the SCIFIO API tutorials, and use the mailing list for any questions.

For additional background information, please see the attached SCIFIO grant proposal.

Instructions

SCIFIO is a Mavenized project. There is no aggregate jar to download. The best way to include SCIFIO in a project is to add pom-scijava as a parent and declare a SCIFIO dependency in your project’s pom.xml:

<parent>
<groupId>org.scijava</groupId>
<artifactId>pom-scijava</artifactId>
<version>23.2.0</version>
</parent>

<dependency>
<groupId>io.scif</groupId>
<artifactId>scifio</artifactId>
</dependency>

For the latest pom-scijava version, see the maven central entry.

If your project is not Mavenized and you are not interested in converting it, SCIFIO and its dependency jars can be downloaded as follows:

  • Clone the SCIFIO source: https://github.com/scifio/scifio
  • Use the Maven dependency plugin via mvn dependency:copy-dependencies from the SCIFIO top-level
  • All dependencies will be in the /target folder.

 

 

Language: Java