CINXE.COM
Update on the OME-TIFF pyramidal format | Open Microscopy Environment (OME)
<!doctype html> <html class="no-js" lang="en" dir="ltr"> <head> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-49953125-6"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-49953125-6'); </script> <meta charset="utf-8" /> <meta http-equiv="x-ua-compatible" content="ie=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="description" content="" /> <meta property="og:image" content="/img/logos/ome-logo_fb.png" /> <meta property="og:type" content="website" /> <meta property="og:url" content="" /> <meta property="og:title" content="The Open Microscopy Environment" /> <meta property="og:description" content="A consortium of universities, research labs, industry and developers producing open-source software and format standards for microscopy data." /> <meta name="twitter:card" content="summary"> <meta name="twitter:title" content="The Open Microscopy Environment"> <meta name="twitter:image" content="https://www.openmicroscopy.org/img/logos/ome-logomark_twitter.png"> <title>Update on the OME-TIFF pyramidal format | Open Microscopy Environment (OME)</title> <!-- favicon from https://realfavicongenerator.net/ --> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=2"> <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=2"> <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=2"> <link rel="manifest" href="/site.webmanifest?v=2"> <link rel="mask-icon" href="/safari-pinned-tab.svg?v=2" color="#5bbad5"> <link rel="shortcut icon" href="/favicon.ico?v=2"> <meta name="msapplication-TileColor" content="#2b5797"> <meta name="theme-color" content="#ffffff"> <!-- Mastodon --> <link rel="me" href="https://fosstodon.org/@ome"/> <link rel="stylesheet" type="text/css" media="all" href="https://fonts.googleapis.com/css?family=Open+Sans:400,600,700,400italic,600italic,700italic"> <link rel="stylesheet" type="text/css" media="all" href="https://fonts.googleapis.com/css?family=Montserrat:400,500"> <link rel="stylesheet" type="text/css" media="all" href="/css/font-awesome.min.css"> <link rel="stylesheet" type="text/css" media="all" href="/css/foundation.min.css"> <link rel="stylesheet" type="text/css" media="all" href="/css/responsive-tables.css"> <link rel="stylesheet" type="text/css" media="all" href="/css/openmicroscopy.css"> </head> <body> <div class="title-bar" data-responsive-toggle="main-menu" data-hide-for="medium"> <button class="menu-icon" type="button" data-toggle></button> <div class="title-bar-title"></div> </div> <!--<div data-sticky-container> <div class="main-nav-bar top-bar" id="main-menu" data-sticky data-options="marginTop:0;">--> <div class="main-nav-bar top-bar" id="main-menu"> <div class="top-bar-left"> <ul class="vertical medium-horizontal dropdown menu" data-responsive-menu="accordion medium-dropdown"> <li class="hide-for-small-only"><a class="logo" href="/index.html"><img src="/img/logos/ome-main-nav.svg" alt="OME logo" /></a></li> <li class="show-for-small-only"><a href="/index.html"><img src="/img/logos/ome-logomark.svg" alt="OME logo" style="height:32px; width:32px;"/></a></li> <li class="has-submenu"><a href="/about/">About Us</a> <ul class="submenu menu vertical" data-submenu> <li><a href="/about/">Overview</a></li> <li><a href="/teams/">OME Teams</a></li> <li><a href="/contributors/">Contributors</a></li> <li><a href="/commercial-partners/">Commercial Partners</a></li> <li><a href="/licensing/">Licensing</a></li> <li><a href="/citing-ome/">Citing OME</a></li> <li><a href="/artwork/">Artwork</a></li> <li><a href="/training/">Training</a></li> <li><a href="/events/ome-community-meeting-2024/">OME 2024</a></li> </ul> </li> <li class="has-submenu"><a href="/news/">News</a> <ul class="submenu menu vertical" data-submenu> <li><a href="/news/">Overview</a></li> <li><a href="/announcements/">Announcements</a></li> <li><a href="/events/">Events</a></li> <li><a href="/minutes/">Minutes</a></li> <li><a href="/security/">Security</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/blog/">Blog</a></li> </ul> </li> </ul> </div> <div class="top-bar-right"> <ul class="vertical medium-horizontal dropdown menu" data-responsive-menu="accordion medium-dropdown"> <li class="has-submenu"><a href="/products/">Products</a> <ul class="submenu menu vertical" data-submenu> <li><a href="/products/">Overview</a></li> <li><a href="/omero/">OMERO</a></li> <li><a href="/bio-formats/">Bio-Formats</a></li> <li><a href="/ome-files/">OME Files</a></li> </ul> </li> <li class="has-submenu"><a href="/support/">Support</a> <ul class="submenu menu vertical" data-submenu> <li><a href="/support/">Overview</a></li> <li><a href="/security/">Security</a></li> <li><a href="/training/">Training</a></li> </ul> </li> <li><a href="/docs/">Docs</a></li> <li class="hide-for-small-only"><a href="/explore/" class="button btn-indigo" style="color: #eceff1; margin-left: 10px;">Explore</a></li> <li class="show-for-small-only"><a href="/explore/">Explore</a></li> </ul> </div> </div> <!--</div> make header sticky? --> <a name="top-of-page"></a> <!-- begin Post --> <div class="callout large primary" id="bg-image-blog"> <div class="row column text-center"> <h1>Update on the OME-TIFF pyramidal format</h1> <p></p> </div> </div> <hr class="invisible"> <div class="text-center"> <a id="back-to-top" href="/blog/"><i class="fa fa-arrow-left"></i> back to Blog</a> </div> <hr class="invisible"> <div class="row"> <div class="columns"> <h1 id="designing-an-open-multi-resolution-file-format">Designing an open multi-resolution file format</h1> <p>In 2012, the OME Consortium started working on the support of multi-resolution, or pyramidal, proprietary file formats. The result of this work was the addition of several proprietary whole slide image (WSI) file format readers in Bio-Formats releases during 2013-2017. As often happens, proprietary file format (PFF) readers are only part of the solution required by the scientific and clinical communities - see also our <a href="/2016/08/31/bf-partnerships.html">blog post</a>. We have been repeatedly asked to build an open, supported alternative for storing large WSIs. For some time, we have deferred to the work in <a href="ftp://medical.nema.org/medical/dicom/final/sup145_ft.pdf">DICOM Supplement 145</a> introduced in 2010, but this work has not produced viable, supported, open implementations nor considered the rapidly emerging field of multiplexed WSIs. Therefore, we started working on an extension to the OME-TIFF format specification to support pyramidal resolutions at the beginning of 2018. This scoping exercise resulted in a <a href="https://openmicroscopy.github.io/design/OME005/">formal open proposal</a> announced to the community in February 2018.</p> <p>Extending a widely adopted format specification with hundreds of instruments generating files in production is not without risk. Compatibility between the various formats and software version is usually a key target of the process. The principal challenges are:</p> <ul> <li>maintaining the usability of new files using either older versions of OME software or third-party software</li> <li>minimizing the risks of conflicts of the proposed extension with other specifications</li> </ul> <p>The OME team has reviewed several approaches for representing multi-resolution pyramidal levels in TIFF files. In the end, the solution we chose offered the maximum compatibility with existing reference tools while remaining unambiguous and compliant with the <a href="https://www.loc.gov/preservation/digital/formats/fdd/fdd000022.shtml">official TIFF specification</a>.</p> <h1 id="reading-and-writing-ome-tiff-pyramids">Reading and writing OME-TIFF pyramids</h1> <p>Following the decisions on the formats specification, we began working to enable support for reading and writing OME-TIFF pyramids in our Java-based application stack, specifically, Bio-Formats and OMERO.</p> <p>We demonstrated the first part of this work during the <a href="https://downloads.openmicroscopy.org/presentations/2018/Users-Meeting/Workshops/NewFileFormats/">2018 OME Users Meeting in Dundee</a>. We presented example OME-TIFF files derived from public pyramidal files acquired using the Leica software. Furthermore, these files were imported into an OMERO server.</p> <p><img src="/images/pyramidal-ome-tiff.png" alt="Pyramidal OME-TIFF" width="100%" /> <em>WSIs stored as pyramidal OME-TIFF explored visually using <a href="https://www.openmicroscopy.org/omero/iviewer/">OMERO.iviewer Web viewer</a></em></p> <p>Since then, we focused our efforts on the generation of pyramidal OME-TIFF files using Bio-Formats. As of today, we are proud to have a milestone release of Bio-Formats available <a href="https://downloads.openmicroscopy.org/bio-formats/6.0.0-m3/">here</a> with full support for reading and writing open OME-TIFF files with support for pyramids. The software allows both the conversion of existing proprietary file formats as well as the generation of pyramidal levels from large resolution planes.</p> <h1 id="towards-bio-formats-600-and-beyond">Towards Bio-Formats 6.0.0 and beyond</h1> <p>What are our next steps? We first require more testing to ensure that the changes have not affected our existing image reading library and are compatible with Bio-Formats’ existing support for pyramidal file formats. This includes several tens of file formats generated by manufacturers like Leica/Aperio, Hamamatsu, and Zeiss.</p> <p>We are also working on ongoing performance improvements to ensure consumers can write compliant OME-TIFF rapidly either using the API directly or via our end-users tools like the Bio-Formats command-line utility, the ImageJ plugin or the OMERO exporter.</p> <p>Finally, we will review the API changes necessary so that Bio-Formats can read and write compliant OME-TIFF pyramids. We have maintained our API fully backwards-compatible for the last two years following our last release of the OME model. At present, we believe a new major version of Bio-Formats 6.0.0 including breaking API changes will be released by the end of 2018. An OMERO release that supports Bio-Formats 6.0.0 will follow, but the exact date is not yet known. For those of you following our develop branch, you will see IDR consuming Bio-Formats 6.0.0 not too long after release.</p> <p>Once this work is completed, our next aims in terms of formats will be:</p> <ul> <li>Continue the work on OME formats using new binary vessels also presented at the <a href="https://downloads.openmicroscopy.org/presentations/2018/Users-Meeting/Workshops/NewFileFormats/">2018 Users Meeting</a>. Bio-Formats 6.0.0-m3 already includes a reader for the <a href="https://bitbucket.org/fernandoamat/keller-lab-block-filetype">Keller Lab Block</a> format and Bio-Formats 6 will include a reader for the <a href="https://imagej.net/BigDataViewer#About_the_BigDataViewer_data_format">Big DataViewer format</a>.</li> <li>Work with the community to keep OME-Files C++ support for pyramidal OME-TIFF in sync with the Java changes - read <a href="http://lists.openmicroscopy.org.uk/pipermail/ome-users/2018-November/007300.html">this ome-users thread</a> to know more about recent improvements driven by the community.</li> </ul> </div> </div> <div class="row"> <div class="column"> <p class="text-right"> — <i>November 29, 2018</i> </p> </div> </div> <!-- end Post --> <!-- begin anchor --> <div class="text-center"> <a id="back-to-top" href="#top-of-page"><i class="fa fa-arrow-up"></i> back to top</a> </div> <!-- end anchor --> <hr class="whitespace"> <div id="footer" class="callout large secondary"> <div class="row"> <div class="small-12 medium-4 columns"> <div class="medium-4"><a href="/index.html"><img class="footer-logo" src="/img/logos/ome-main-nav.svg" alt="OME logo" /></a></div> <p>© 2005-2024 University of Dundee & Open Microscopy Environment. <a href="https://creativecommons.org/licenses/by/4.0/" target="_blank">Creative Commons Attribution 4.0 International License</a></p> <p>OME source code is available under the <a href="https://www.gnu.org/copyleft/gpl.html">GNU General public license</a> or more permissive open source licenses, or through commercial license from <a href="https://www.glencoesoftware.com" target="_blank">Glencoe Software Inc.</a><br/>OME, Bio-Formats, OMERO, IDR and their associated logos are trademarks of <a href="https://www.glencoesoftware.com" target="_blank">Glencoe Software Inc.</a>, which holds these marks to protect them on behalf of the OME community.</p> <p class="tiny-print" style="float:left;">[ <a href="/site-map/">Site Map</a> ]</p> <p class="tiny-print" style="float:right;">Version: 2024.11.21</p> </div> <div class="medium-2 columns"> <h6>Learn About Us</h6> <ul class="menu vertical"> <li><a href="/about/">Who We Are</a></li> <li><a href="/teams/">Our Team</a></li> <li><a href="/explore/">What We Can Do</a></li> <li><a href="/news/">What We’re Up To</a></li> <li><a href="/events/ome-community-meeting-2024/">OME 2024</a></li> <li class="hide-for-large-only"> </li> </ul> </div> <div class="medium-2 columns"> <h6>Try Our Products</h6> <ul class="menu vertical"> <li><a href="/omero/downloads/">OMERO <span class="badge">Download</span></a></li> <li><a href="/bio-formats/downloads">Bio-Formats <span class="badge">Download</span></a></li> <li><a href="/ome-files/downloads">OME Files <span class="badge">Download</span></a></li> <li class="hide-for-large-only"> </li> </ul> </div> <div class="medium-2 columns"> <h6>Knowledge Base</h6> <ul class="menu vertical"> <li><a href="/support/">Support</a></li> <li><a href="/docs/">Documentation</a></li> <li><a href="https://omero-guides.readthedocs.io/">User Guides</a></li> <li><a href="https://www.openmicroscopy.org/forums">Forum</a></li> <li><a href="https://www.openmicroscopy.org/security/advisories/">Security Advisories</a></li> <li class="hide-for-large-only"> </li> </ul> </div> <div class="medium-2 columns end"> <h6>OME Public</h6> <ul class="menu vertical"> <li><a href="https://twitter.com/openmicroscopy" target="_blank"><i class="fa fa-fw fa-twitter"></i> Twitter</a></li> <li><a href="https://www.linkedin.com/company/ome---open-microscopy-environment" target="_blank"><i class="fa fa-fw fa-linkedin"></i> LinkedIn</a></li> <li><a href="https://www.facebook.com/openmicroscopy" target="_blank"><i class="fa fa-fw fa-facebook"></i> Facebook</a></li> <!-- <li><a href="http://webchat.freenode.net/?channels=%23ome&uio=d4" target="_blank"><i class="fa fa-fw fa-comments"></i> IRC</a></li> --> <li><a href="/on-the-web/" target="_blank"><i class="fa fa-globe"></i> On the Web</a></li> <li class="hide-for-large-only"> </li> </ul> </div> </div> </div> <script src="https://code.jquery.com/jquery-2.1.4.min.js"></script> <script src="/js/vendor/jquery.js"></script> <script src="/js/vendor/what-input.js"></script> <script src="/js/vendor/foundation.js"></script> <script src="/js/app.js"></script> <script src="/js/responsive-tables.js"></script> <script> $(document).foundation(); try { // helper function to filter out empty paths (trailing slash) var omitEmpty = function(el) { return el.trim() !== ''}; // extract last path bit from url var paths = document.location.pathname.split('/').filter(omitEmpty); var path = paths[paths.length-1]; // helper function to find and set active option var setActiveNavOption = function(el) { var subPaths = el.href.split('/').filter(omitEmpty); var subPath = subPaths[subPaths.length-1]; if (subPath === path) { $(el).addClass('is-active'); return true } return false; } // check if we have a .header-subnav match? var hasSubMenu = false; $(".header-subnav li a").each(function(i, el) { var isMatch = setActiveNavOption(el); if (isMatch) { hasSubMenu = true; return false; } }); // find corresponding path bit for .menu-subnav option if (hasSubMenu && paths.length > 1) { var parentPath = paths[paths.length-2]; if (parentPath !== 'omero') path = parentPath; } // set .menu-subnav option $(".menu-subnav li a").each(function(i, el) { if (setActiveNavOption(el)) return false; }); } catch(ignored) {} </script> </body> </html>