Bio-Formats is a standalone Java library for reading and writing life sciences image file formats. It is capable of parsing both pixels and metadata for a large number of formats, as well as writing to several formats.
The primary goal of Bio-Formats is to facilitate the exchange of microscopy data between different software packages and organizations. It achieves this by converting proprietary microscopy data into an open standard called the OME data model, particularly into the OME-TIFF file format.
We believe the standardization of microscopy metadata to a common structure is of vital importance to the community. A brief article on the benefits of standardization from thinkstandards.net provides an excellent summary. See also LOCI’s article on open source software in science.
From a practical perspective, Bio-Formats is written in Java because it is cross-platform and widely used, with a vast array of libraries for handling common programming tasks. Java is one of the easiest languages from which to deploy cross-platform software. In contrast to C++, which has a large number of complex platform issues to consider, and Python, which leans heavily on C and C++ for many of its components (e.g., NumPy and SciPy), Java code is compiled one time into platform-independent byte code, which can be deployed as is to all supported platforms. And despite this enormous flexibility, Java manages to provide time performance nearly equal to C++, often better in the case of I/O operations (see further discussion on the comparative speed of Java on the LOCI site).
There are also historical reasons associated with the fact that the project grew out of work on the VisAD Java component library. You can read more about the origins of Bio-Formats on the LOCI Bio-Formats homepage.
Pixels in microscopy are almost always very straightforward, stored on evenly spaced rectangular grids. It is the metadata (details about the acquisition, experiment, user, and other information) that can be complex. Using the OME data model enables applications to support a single metadata format, rather than the multitude of proprietary formats available today.
Every file format has a distinct set of metadata, stored differently. Bio-Formats processes and converts each format’s metadata structures into a standard form called the OME data model, according to the OME-XML specification. We have defined an open exchange format called OME-TIFF that stores its metadata as OME-XML. Any software package that supports OME-TIFF is also compatible with the dozens of formats listed on the Bio-Formats page, because Bio-Formats can convert your files to OME-TIFF format.
There are three types of metadata in Bio-Formats, which we call core metadata, original metadata, and OME metadata.
For help, see the Bio-Formats, File Formats and OME-XML and OME-TIFF sections of the OME FAQ for answers to some common questions. Please contact us if you have any questions or problems with Bio-Formats. There is a guide for reporting bugs here.
For advanced users and developers, further information is available on the troubleshooting page.