Complemento de preprocesamiento de tomografía de proyección óptica para napari
Este complemento de napari se generó con Cookiecutter usando la plantilla cookiecutter-napari-plugin de @napari.
Saltar a:
Uso
Binning
retorno de la inversión
-Registro
Campo oscuro y campo brillante
Corrección de píxeles defectuosos
Corrección de intensidad
Blanqueamiento por fluorescencia
Punto de partida
Configuraciones globales
Transmisión vs Emisión
Correcciones
Otro
Instalación
Solución de problemas de instalación
Contribuyendo
Licencia
Asuntos
Expresiones de gratitud
Entrada de datos transmitida desde el widget OPT de ImSwitch (para más detalles, consulte los documentos de ImSwitch)
Proyecciones de tomografía cargadas como pila de datos.
Otros formatos de datos de volumen 3D de pila
Pequeños datos de ejemplo cargados a través de File -> Open Sample
Hay dos configuraciones globales importantes disponibles: operaciones in situ y seguimiento .
Para ahorrar memoria, el modo predeterminado realiza operaciones en la pila de imágenes Inplace , reescribiendo la pila de imágenes original. Si no se selecciona esta opción, se creará y agregará al visor una nueva capa con la versión modificada de la imagen. Cuando se selecciona Operaciones in situ , la opción Seguimiento pasa a estar disponible en el widget. Esta opción permite el seguimiento de la última operación realizada en la pila/imagen. Al presionar el botón Undo
, se revierte la última operación realizada en la imagen. Sólo es posible deshacer una sola vez .
Actualmente, las imágenes se mantienen o se envían a numpy.int16
después de las operaciones, excepto para el cálculo -log
. Recomendamos encarecidamente realizar la operación en orden de arriba a abajo y de izquierda a derecha, tal como aparecen en el widget; de lo contrario, existe una alta probabilidad de encontrarse con excepciones o comportamientos impredecibles. Presente un problema si parte de la lógica del widget debe corregirse para sus canalizaciones.
Se prevé que los experimentos de transmisión sean cuantitativos en la aproximación de la ley de Beer-Lambert, esto significa que utilizando la medición de luz y oscuridad se puede calcular la absorbancia , o más bien la transmitancia como
, donde I es la señal medida, es la intensidad del campo brillante y son los recuentos de oscuridad.
La emisión suele estar lejos de ser cuantitativa, debido a la concentración desconocida de tinción, los efectos de extinción, el blanqueo, la calibración de la ruta de detección y los rendimientos cuánticos, por nombrar algunos.
Las correcciones de campo oscuro, campo brillante y píxeles incorrectos están directamente relacionadas con la adquisición de la cámara. Por otra parte, la corrección de intensidad se ocupa de la inestabilidad de la fuente de luz. La imagen corregida se muestra en el visor utilizando los límites de contraste de la imagen original. Es posible que necesite ajustar los límites de contraste para ver efectivamente el resultado de la corrección realizada.
Son posibles combinaciones de correcciones de campo oscuro y campo brillante para experimentos de transmisión y emisión. El usuario debe seleccionar la modalidad del experimento y luego decidir si incluye solo una corrección (ya sea Campo oscuro o Campo claro) o ambas. Una vez completada la corrección, dependiendo de la configuración Inplace , aparecerá una nueva capa con la imagen corregida en el visor o se actualizará la capa de la imagen original. La corrección de campo oscuro por sí sola realiza la resta de la imagen oscura (operación int
) de cada imagen en la pila de imágenes; siempre vale la pena aplicarla. Esta operación es la misma independientemente de la modalidad experimental de Transmisión o Emisión .
La corrección de campo brillante es particularmente útil para experimentos de transmisión, para corregir la intensidad variable del fondo brillante de las imágenes. La capa brillante también se puede utilizar para identificar píxeles muertos. Si se aplican solas, las imágenes se dividen por intensidad brillante (división float
) y luego se convierten a numpy.int16
para el caso del experimento de transmisión . Para los datos de emisión , la intensidad del campo brillante se resta de cada imagen de la pila (operación int
).
La corrección de campo oscuro + brillante realizada en conjunto se calcula para la transmisión
(image - dark) / (bright - dark)
, que es una operación float
, transmitida posteriormente a numpy.int16
.
Para los datos de emisión , la corrección combinada de oscuridad y brillo aplicada al experimento de emisión es simplemente
(image - dark) - (bright - dark) = image - bright
Consulte la sección anterior para obtener explicaciones adicionales sobre la diferencia entre transmisión y emisión.
La corrección de píxeles está disponible tanto para píxeles calientes como para píxeles muertos. Una vez que se presiona el botón Bad pixel correction
, se identifican los píxeles defectuosos y el usuario puede elegir corregirlos o visualizarlos como una nueva capa en el visor.
La corrección se realiza considerando los valores de los píxeles vecinos. Hay dos opciones disponibles para la corrección: n4 y n8. La opción n4 utiliza los 4 píxeles vecinos (arriba, abajo, izquierda y derecha), mientras que la opción n8 considera los 8 píxeles vecinos. Si un píxel vecino es un píxel defectuoso, no se considera para su corrección. El valor del píxel defectuoso se calcula como mean
de los valores de los píxeles vecinos.
Una vez aplicadas las correcciones de campo oscuro, campo brillante y píxeles defectuosos, es posible aplicar una corrección de intensidad para corregir las faltas de homogeneidad de la luz a lo largo de la pila generadas por la inestabilidad de la fuente de iluminación. El usuario elige el tamaño del rectángulo y presiona el botón Intensity correction
. El promedio de los píxeles en las cuatro esquinas de la imagen (con un lado igual al tamaño del rectángulo) se calculará sobre la pila y aparecerá una imagen corregida en el visor (si la opción Operaciones in situ no está seleccionada) o se mostrará la imagen original. poner al tanto. Además, se mostrará un gráfico que muestra las intensidades sobre la pila (intensidad mean
sobre las 4 áreas rectangulares de la imagen) antes y después de la corrección de intensidad.
Si desea corregir el fotoblanqueo por fluorescencia, consulte la siguiente sección.
Para cada ángulo, se calculan los valores de intensidad medios a lo largo de las columnas y luego se usan como factores de corrección para dividir los valores de intensidad de cada fila con respecto a la primera proyección. Una vez realizada la corrección, aparece en el visor un gráfico que muestra los valores medios calculados para cada ángulo. Esta característica supone que la pila tiene la forma (angles, rows, columns)
.
Tenga en cuenta que esta corrección no tiene en cuenta los efectos de sombra que son evidentes en los sinogramas anteriores, tomados desde una sola fila de cámaras. En este caso, la luz de excitación de fluorescencia proviene de la derecha, por lo tanto, el lado derecho de las sinogamas muestra una mayor intensidad de FL.
Es posible agrupar la pila. Elija el factor de agrupación y presione el botón Bin Stack
. Se mostrará la pila agrupada y aparecerá una notificación con las formas de la pila original y nueva. La forma es (height // bin_factor, width // bin _factor)
, por lo que es posible que falten píxeles de borde si bin_factor
no puede diseñar las dimensiones de su imagen. Los valores de píxeles se calculan como una mean
de los píxeles agrupados y se convierten en numpy.int16
. El factor de agrupación de 1 no produce ninguna acción.
Para la reconstrucción por tomografía, seleccionar ROI puede reducir en gran medida el tiempo de cálculo del algoritmo de reconstrucción. Seleccione una Points layer
y agregue un punto, que define la esquina superior izquierda del ROI. A partir de ese punto, el usuario selecciona width
y height
en píxeles. Si se agrega más de un punto, solo se considerará el último punto para la selección de ROI.
Es posible calcular el logaritmo de la imagen utilizando la función -Log del widget, lo que hace que los detalles en las áreas oscuras y claras sean más visibles. Esta es una transformación físicamente justificada en los experimentos de transmisión, porque convierte los recuentos en transmitancia . Para las mediciones de emisiones , es solo una transformación para aumentar el contraste de forma no lineal para la visualización.
Puedes instalar napari-opt-handler
mediante pip:
pip install napari-opt-handler
Para instalar la última versión de desarrollo:
pip install git+https://github.com/QBioImaging/napari-opt-handler.git
Las contribuciones son muy bienvenidas. Las pruebas se pueden ejecutar con tox; asegúrese de que la cobertura al menos permanezca igual antes de enviar una solicitud de extracción.
Distribuido bajo los términos de la licencia BSD-3, "napari-opt-handler" es un software gratuito y de código abierto.
Mucha gente ha contribuido a este proyecto. Los principales son:
Giorgia Tortora y Andrea Bassi (Politécnico Milán)
Teresa Correia (CCMAR-Algarve)
Si tiene algún problema, presente un problema junto con una descripción detallada.