franucles.com
← Volver a proyectos

Análisis de tomogramas · Proyecto académico

Auto-CryoET

Herramienta de terminal para el análisis automatizado y no supervisado de tomogramas en criomicroscopia electrónica haciendo uso de teoría de Morse discreta.

Año2025/2026
Tecnologías
PythonMachine LearningPandasNumpyDisPerSETomoTwinVTKConda
Diagrama del workflow de Auto-CryoET

Diagrama del workflow de Auto-CryoET

Sobre el proyecto

Este proyecto forma parte de mi Trabajo Fin de Grado (TFG) de mi grado en Ingeniería Informática. Su objetivo es automatizar el análisis de tomogramas obtenidos con técnicas de crio-microscopía electrónica. Su enfoque es diseñar un flujo de trabajo que conecte herramientas ya existentes para crear un proceso automatizado y no supervisado.

Este trabajo supuso un reto en toda regla ya que trabaja con muchos campos de la informática como el análisis de imágenes, el machine learning y el análisis de datos. Este proyecto me ha permitido aprender mucho sobre manejo de datos utilizando Pandas y Numpy para manejar grandes volúmenes de datos. Además, hacer que herramientas tan diferentes como TomoTwin y DisPerSE trabajen en armonía, fue todo un reto.

A pesar de todas las complicaciones, finalmente conseguí desarrollar una herramienta de terminal que ejecuta todo un flujo de trabajo de forma autónoma. Solo es necesario darle información básica sobre el modelo de la red neuronal y ciertos parámetros para que la herramienta trabaje. Asimismo, en el repositorio de la herramienta también se detalla el proceso de instalación que cree para poder distribuir la herramienta cómodamente entre los potenciales usuarios. Aunque los detalles del desarrollo de la herramienta y de implementación son complejos y se pueden revisar en la documentación, a continuación se muestran las diferente etapas del flujo de trabajo con una breve descripción.

Flujo de trabajo

01

Análisis del tomograma

Esta es la primera etapa y se encarga de analizar el tomograma de entrada. La idea es utilizar la red neuronal de TomoTwin para extraer un mapa de 32 características de cada punto del tomograma. Posteriormente, haciendo uso de herramientas de reducción dimensional se obtendrá una nube de puntos en 2D.

02

Preprocesado

Esta fase está desarrollado completamente en Python y es la encargada de generar una imagen 2D y una mácara a partir de la nube de puntos de la fase anterior. Estos dos elementos serán cruciales para que DisPerSE haga su análisis topológico. Además, esta fase también proporcionará la correspondencia entre los píxeles de la imagen y los puntos de la nube de puntos.

03

Análisis topológico

Haciendo uso de la herramienta DisPerSE, se realiza un análisis de la imagen para determinar qué zonas de la nube de puntos son más densas. Esas zonas son las que corresponderán a las estructuras del tomograma original.

04

Postprocesado

Esta fase utiliza Python para transformar el resultado de la fase anterior de vuelta al tomograma. Necesitamos seleccionar qué zonas del tomograma se corresponden con las zonas de la imagen seleccionada por el análisis de DisPerSE. Esto nos permitirá obtener la segmentación que estabamos buscando.

05

Visualizado

Esta fase es opcional y permite visualizar la segmentación del tomograma en una herramienta llamada Napari.

Proyecto anteriorHomelabSiguiente proyectoAplicación de documentación