La radiómica es una nueva frontera de la medicina que se basa en la extracción de características cuantitativas (denominadas características radiómicas) a partir de imágenes radiológicas que no pueden verse a simple vista, y en el uso de estos datos para la creación de sistemas de apoyo a la toma de decisiones clínicas. Las características radiómicas (como la intensidad, la forma, la textura o la ondulación) se extraen de las imágenes médicas (TAC, RMN o PET) mediante algoritmos matemáticos avanzados y proporcionan información valiosa para la terapia personalizada.
En la última década, varios estudios han puesto de manifiesto el enorme potencial de la radiómica en enfermedades tanto tumorales como no tumorales de muchos órganos y sistemas, como el cerebro, el pulmón, la mama, el tracto gastrointestinal y el genitourinario. Se trata de un campo en el que pueden intervenir personas de muchas disciplinas, como radiólogos, científicos especializados en imágenes y científicos de datos.
El flujo de trabajo radiómico es un proceso gradual que incluye el preprocesamiento de imágenes, la segmentación de las zonas de interés, la extracción de características, el desarrollo de modelos y la validación. Existe una gran variedad de clases de características (morfológicas, de intensidad, texturas, etc.) que se están actualizando y perfeccionando continuamente.
Las herramientas disponibles actualmente para la extracción de características radiómicas se ejecutan generalmente sólo en la CPU, lo que conduce a un gran consumo de tiempo en situaciones tales como grandes conjuntos de datos o complicadas verificaciones de tareas/métodos. Para solucionar esta limitación, se están empezando a desarrollar herramientas que pretenden reducir significativamente el tiempo de cálculo usando sistemas con mayor capacidad computacional. Sin embargo, algunas todavía no están disponibles y otras están en proceso de desarrollo y no son totalmente funcionales.
Con este Trabajo Fin de Grado se pretende contribuir a la elaboración de esas herramientas, haciendo uso de un sistemas basado en GPU para conseguir reducir el tiempo del proceso de extracción de las características radiómicas. Se partirá de un software existente (cuRadiomics) que incluye algunas de esas características. Dicho software debe ser en primer lugar completado y actualizado para que funcione en el entorno de trabajo elegido, y posteriormente ampliado con algunas características adicionales.
Para alcanzar los objetivos del TFG, se seguirá la metodología habitual en este tipo de trabajos, a partir de la cual surgen las siguientes actividades (se indica el tiempo estimado de realización en meses, asumiendo una dedicación de 8 meses, 37,5 horas/mes y 300 horas de dedicación total al TFG):
- Estudio de las características radiómicas. En este primer paso, se revisarán las definiciones de las características radiómicas que actualmente se manejan, para comprender su funcionalidad, y facilitar su implementación. Se estima un tiempo de un mes aproximadamente para completar esta fase.
- Revisión del software cuRadiomics. Se realizará una exhaustiva revisión de los códigos y se modificarán/completarán para que funcione en el entorno seleccionado para su uso. Básicamente un servidor Linux con una CPU+GPU. El objetivo es que proporcionada una imagen el software devuelva los resultados correctos de las características radiómicas que inicialmente incorpora. Esta fase requerirá en torno a 2 meses de trabajo.
- Selección del conjunto de características radiómicas. Para ampliar el conjunto de características radiómicas, a partir del amplio conjunto de características que están definidas en la literatura, se hará una selección en función de varios factores, como por ejemplo complejidad, utilidad, rendimiento, entre otros. Un mes debe ser suficiente para completar esta tarea.
- Creación del código para las características radiómicas. Utilizando las herramientas disponibles para la programación de plataformas heterogéneas basadas en GPU, se crearán los códigos de las características seleccionadas. Esta es la otra tarea principal de este TFG, y se emplearán al menos dos meses para completarla.
- Evaluación de rendimiento. Se realizarán diversas pruebas, utilizando imágenes ya preprocesadas, de extracción de las características para comprobar el nivel de prestaciones alcanzado con el código elaborado, comparando con versiones secuenciales de dichas características. Un mes más para realizar esta tarea.
- Documentación de los resultados. Se elaborará la memoria del TFG, incluyendo toda la información que sea necesaria de acuerdo con la normativa y las características del trabajo. Dedicación aproximada de un mes.
El conocimiento de la arquitectura de las GPUs es importante para obtener un código más eficiente para ellas. Por ello, el trabajo puede ser realizado por alumnos de Ingeniería de Computadores, aunque también lo podrían abordar alumnos de otras Tecnologías. Así, las competencias que más se trabajarán son las siguientes:
[IC2] Capacidad de desarrollar procesadores específicos y sistemas empotrados, así como desarrollar y optimizar el software de dichos sistemas. Utilizando un procesador específico, como las GPUs (Unidad de procesamiento gráfico), se desarrollará software que se utilizará en este procesador, para conseguir una ganancia de tiempo de procesamiento significativa.
[IC7] Capacidad para analizar, evaluar, seleccionar y configurar plataformas hardware para el desarrollo y ejecución de aplicaciones y servicios informáticos. Se tendrá que analizar y evaluar qué plataforma y qué características utilizar para llegar a un buen rendimiento.
[IC3] Capacidad de analizar y evaluar arquitecturas de computadores, incluyendo plataformas paralelas y distribuidas, así como desarrollar y optimizar software para las mismas. Se analizará y evaluará la arquitectura de las GPUs para saber cómo obtener código óptimo, utilizando el toolkit dado para este tipo de procesadores.
[TI2] Capacidad para seleccionar, diseñar, desplegar, integrar, evaluar, construir, gestionar, explotar y mantener las tecnologías de hardware, software y redes, dentro de los parámetros de coste y calidad adecuados. Se tendrá que seleccionar la plataforma adecuada para diseñar el código requerido en este trabajo.
- CUDA C Best Practices Guide.
http://docs.nvidia.com/cuda/cuda-c-best-practices-guide/index.html#axzz466UPSr5y
- CUDA C Programming Guide.
http://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html#axzz466UPSr5y
- D. Kirk, W.-M. Hwu. Programming massively parallel processors. Morgan Kaufman Publishers. 2013 2ª edición
- A. García, S. Orts, J.M. Cecilia, J. García. Programación de GPUs usando CUDA. Ra-Ma. 2020 1ª edición
- Y. Jiao1, O. Mayo, L. Zhang1, D. Shen2, Q. Wang. cuRadiomics: A GPU-Based Radiomics Feature Extraction Toolkit. Radiomics and Radiogenomics in Neuro-oncology, Springer. 2020
- J.J.M. van Griethuysen, A. Fedorov, C. Parmar, A. Hosny, N. Aucoin, V. Narayan, R.G.H. Beets-Tan, J.C. Fillon-Robin, S. Pieper, H.J.W. Aerts. Computational Radiomics System to Decode the Radiographic Phenotype. Cancer Research, 77(21), e104–e107. 2017