ImageJ: Archivos y formatos de archivo#

Introducción#

Por sí solo, ImageJ puede leer y escribir una serie de formatos de archivo comunes (y algunos no tan comunes). Con Bio-Formats, puede manejar muchos más.

Esta sección describe algunos de los formatos de archivo más útiles para el análisis de bioimágenes y cómo trabajar con ellos eficazmente en ImageJ, junto con algunos trucos que pueden ayudarte si los archivos te causan problemas.

Formatos de archivo en ImageJ (sólo)#

Imágenes de apertura#

Como se describe en ImageJ: Imágenes y píxeles, el método general para abrir una imagen consiste en arrastrar el archivo hasta la barra de herramientas de ImageJ y esperar lo mejor. Suponiendo que ImageJ acepte el formato de archivo, normalmente funcionará.

Una ocasión en la que eso puede parecer insuficiente es cuando tienes un gran número de archivos de imagen en la misma carpeta, que en realidad son diferentes cortes o puntos temporales de la misma imagen. Es posible arrastrarlos todos a la barra de herramientas de ImageJ a la vez, pero es probable que se abran como imágenes separadas. El truco consiste en arrastrar la carpeta que contiene todas las imágenes a la barra de herramientas: entonces se te invitará a abrir las imágenes juntas en una sola pila de imágenes.

../../../_images/imagej-files-import-sequence.png

Esto supone que todas las imágenes de la carpeta deben abrirse. Si necesitas más control, entonces File ‣ Import ‣ Image Sequence… puede ayudarte. Esto da un diálogo más extenso, donde (entre otras cosas) se puede especificar un filtro, es decir, algún texto que debe estar presente dentro de los nombres de archivo de las imágenes a incluir.

../../../_images/imagej-files-import-sequence-full.png

Pilas virtuales para imágenes grandes

Ambos diálogos mostrados arriba para importar múltiples imágenes dan una intrigante opción Use Virtual Stack. Esto hace que ImageJ sólo abra la parte de la pila de imágenes que se está viendo en ese momento. Esto puede reducir drásticamente los requisitos de memoria para pilas grandes, y hacer que la apertura sea mucho más rápida.

La desventaja de usar una pila virtual es que puede hacer que el procesamiento se comporte de forma un poco extraña: aparentemente “olvidando” cuándo se ha procesado un a pila, o solicitando que se lea la imagen completa en memoria con avisos como el de abajo.

../../../_images/imagej-files-virtual-stack.png

Aún así, las pilas virtuales son muy útiles si quieres echar un vistazo a una imagen grande sin abrirla entera. Si no te importan sus limitaciones, también puedes abrir un TIFF de ImageJ como pila virtual usando File ‣ Import ‣ TIFF Virtual Stack….

Guardar imágenes para su análisis#

Para guardar una imagen, File ‣ Save As ‣ Tiff… puede ser todo lo que necesites. Este es el formato default de ImageJ, y conserva toda la información importante que requiere - incluyendo el tamaño de píxel. Incluso incluye cualquier activo ROIs y superposiciones.

La principal desventaja de guardar un TIFF de ImageJ es que no está comprimido, por lo que el tamaño del archivo puede aumentar rápidamente. Una forma de mitigarlo es elegir File ‣ Save As ‣ ZIP….

En lugar de ser un formato completamente diferente, un archivo ZIP guardado por ImageJ es en realidad un TIFF que ha sido comprimido en un archivo más pequeño utilizando compresión sin pérdida. Probablemente puedas descomprimir el archivo con las herramientas de tu sistema operativo para ver el TIFF que contiene, pero no es necesario, porque ImageJ puede abrir el archivo zip directamente.

Los archivos comprimidos de ImageJ son, por tanto, buenos para archivar: conservan toda la misma información que un TIFF de ImageJ, pero en un archivo de menor tamaño. El coste es que leer y escribir archivos zip puede llevar bastante más tiempo.

Aparte de TIFF y ZIP, ninguno de los otros formatos de archivo compatibles con ImageJ son realmente recomendables para el análisis. Dependiendo de la imagen original, la mayoría sufrirá algún tipo de pérdida: por ejemplo, al convertirla a RGB, al descartar los ROI o las dimensiones, o al aplicar algún tipo de compresión con pérdida que cambie los píxeles.

Guardar imágenes para su visualización#

Cuando se trata de guardar una imagen para mostrarla, la pérdida de datos puede ser tolerable, o incluso necesaria. Nos importa la apariencia y la compatibilidad, no los valores exactos de los píxeles.

ImageJ TIFF también se puede utilizar para guardar una imagen para su visualización, pero el gran tamaño de los archivos puede ser un problema. Si deseas hacerlo de todos modos, a menudo es mejor convertir la imagen a RGB primero.

Como alternativa, suelo utilizar File ‣ Save As… ‣ PNG… como opción preferida para guardar imágenes RGB para su visualización utilizando una compresión sin pérdidas.

Si el tamaño del archivo sigue siendo un problema, y los artefactos son aceptables, entonces File ‣ Save As… ‣ Jpeg… puede utilizarse en su lugar. La calidad del JPEG puede ajustarse a través de Edit ‣ Options ‣ Input/Output…: aumentando la calidad del JPEG se obtendrán archivos (ligeramente) más grandes, pero con menos artefactos obvios.

../../../_images/imagej-files-options.png

Uso de Bio-Formats#

Bio-Formats es extremadamente útil cuando se trabaja con imágenes científicas en general – y prácticamente indispensable cuando se trata de microscopía. Ofrece soporte para la lectura de una amplia gama de formatos, y la escritura de una gama algo menor (pero importante).

Si estás utilizando la distribución Fiji de ImageJ, entonces deberías tener Bio-Formats instalado por default. De lo contrario, es probable que tengas que instalar bioformats_package.jar tu mismo/a. Puedes encontrarlo junto con las instrucciones de instalación en https://www.openmicroscopy.org/bio-formats/downloads/

Imágenes de apertura#

Una vez instalado, Bio-Formats puede hacer gran parte de tu trabajo sin que tengas que pensar en ello: si ImageJ no puede abrir un archivo arrastrándolo y soltándolo, normalmente dejará que Bio-Formats lo haga. Puedes saber cuándo ha sucedido esto porque aparecerá el familiar diálogo Bio-Formats Import Options (Opciones de importación de Bio-Formats):

../../../_images/imagej-files-bioformats.png

A veces, pero no siempre, aparece el cuadro de diálogo Bio-Formats Series Options. Si el archivo contiene varias imágenes, puedes seleccionar las que deseas abrir.

../../../_images/imagej-files-bioformats-series.png

Consulta las opciones de importación

Si eres como yo y llevas un tiempo utilizando ImageJ, es muy probable que el cuadro de diálogo de importación de bioformatos se haya desvanecido en el ruido de fondo de tu vida: algo en lo que hacer click sin pensar más.

Pero vale la pena comprobar de vez en cuando las opciones a detalle y pasar el ratón por encima para ver las útiles explicaciones sobre el significado real de cada opción. Entre las casillas de verificación y los menús desplegables hay opciones para ajustar automáticamente el brillo y el contraste o los modos de visualización. Si tienes que hacer estas tareas cada vez que abres una imagen, cambiar los valores predeterminados de importación puede facilitarte las cosas.

Guardar imágenes#

Para guardar un archivo, puede utilizar Plugins ‣ Bio-Formats ‣ Bio-Formats Exporter.

Esto puede ser muy útil si deseas guardar una imagen OME-TIFF. Un OME-TIFF difiere de un TIFF normal de ImageJ en dos aspectos principales:

  • Almacena una colección mucho más amplia de metadatos normalizados, como OME-XML

  • Ofrece opciones para comprimir los datos dentro del TIFF, utilizando compresión sin pérdidas (por ejemplo, LZW) o con pérdidas (por ejemplo, JPEG).

También puede que te resulte más útil para conservar los metadatos clave cuando quieras trasladar una imagen a otra aplicación de software.

Solución de problemas#

A veces puedes tener un poco de mala suerte: una imagen no se abre, aunque podría abrirse.

Esto puede ocurrir cuando ImageJ piensa con optimismo que puede abrir un archivo, lo intenta, pero falla con un quejido de error. Orgullo presumiblemente herido, ImageJ nunca pasa el archivo a Bio-Formats para que lo intente. Si esto ocurre, puedes llamar a Plugins ‣ Bio-Formats ‣ Bio-Formats Importer para forzar la importación a usar Bio-Formats, con la esperanza de que tenga más éxito. He tenido que hacer esto en raras ocasiones con TIFFs problemáticos.

En otras ocasiones, puede que tengas más mala suerte: una imagen no se abre, y ningún esfuerzo conseguirá que ImageJ la abra.

Esto puede deberse a que el propio formato de archivo no es compatible, o a que la imagen está corrupta. Asumiendo que tienes Bio-Formats instalado, comprobar la lista de formatos aceptados es un buen comienzo para averiguar si incluso debería funcionar. Si es así, puedes preguntar en el Foro de la Comunidad Científica – aunque probablemente necesitarás compartir la imagen para que alguien más pueda investigar el problema.

Sin embargo, antes de hacerlo deberías considerar si tienes una imagen de diapositiva completa – u otra imagen piramidal grande – que simplemente tiene demasiados píxeles para que ImageJ la abra. En ese caso, es posible que aparezca un error bastante críptico como el que se muestra a continuación:

../../../_images/imagej-files-wsi-error.png

Aunque no es en absoluto obvio, esto indica que la imagen es demasiado grande. Si esto ocurre, es posible que desees probar QuPath en su lugar.

Para darte una idea de la importancia de los metadatos, puedes intentar abrir una imagen en la que no aparezcan. Esto es bastante complicado y requiere algo de trabajo detectivesco (o algo de suerte).

Intenta abrir el archivo Besenfreunde.ids usando Fiji – representa una escena extraña, y todavía inexplicable, que pasé de camino al trabajo poco después de llegar a Heidelberg. Este archivo sólo contiene valores de píxeles y ningún metadato. Todavía se puede leer usando el comando File ‣ Import ‣ Raw…, pero para ello tendrás que averiguar los metadatos necesarios e introducir los valores apropiados.

Los siguientes puntos pueden ser de ayuda:

  • El archivo contiene una sola imagen y un solo canal.

  • Las dimensiones (anchura y altura) de la imagen son cada una múltiplo de 100 píxeles.

  • Los datos están en formato de 8, 16 o 32 bits (con o sin signo).

  • No se incluyen compensaciones ni huecos.

  • El tamaño total del fichero es de 400 000 bytes.

Nota: La opción Little-endian byte order se refiere a si los bytes de las imágenes de 16 o 32 bits se ordenan de menor a mayor valor ignificativo, o de mayor a menor valor ignificativo. Algunos tipos de ordenador prefieren un orden, otros prefieren otro, así que esto es algo más que deben contener los metadatos. La diferencia es similar a la forma en que un número perfectamente respetable como twenty-three (en mi opinión, bastante ridícula) se pronuncia como three-and-twenty en alemán.

El tamaño del archivo le da el $\( \textrm{File size (in bytes)} = \frac{\textrm{width} \times \textrm{height} \times \textrm{bit-depth}}{8} \)$ donde la división por 8 convierte el número total de bits en bytes (ya que 8 bits forman 1 byte). Esto se puede utilizar para hacer estimaciones iniciales razonables para la anchura, la altura y la profundidad de bits, pero averiguar cuáles son los correctos probablemente todavía requiere un poco de ensayo y error. Al final, los ajustes que necesitas son:

  • Tipo de imagen: 16 bits sin signo

  • Anchura: 500 píxeles

  • Altura: 400 píxeles

  • Orden de bytes little-endian: Falso

El uso de estos valores en la importación debería dar como resultado una imagen razonable.

Ahora asegúrate de no perder nunca los metadatos, y de no tener que resolver este tipo de rompecabezas a menudo en la vida real. (Además, cualquier explicación sobre qué pasaba exactamente en esa escena sería bienvenida).