Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on...

130
UNIVERSIDAD POLIT ´ ECNICA DE MADRID ESCUELA T ´ ECNICA SUPERIOR DE INGENIER ´ IA Y DISE ˜ NO INDUSTRIAL Grado en Ingenier´ ıa Electr´ onica y Autom´atica Industrial TRABAJO FIN DE GRADO Segmentaci ´ on multi-atlas en neuro-imag ´ enes para la extracci ´ on autom ´ atica del hipocampo Jos´ e Mar´ ıa Sanz Sanz Cotutor (si lo hay): Departamento: Tutor: Carlos Platero Due˜ nas Departamento: Ingenier´ ıa El´ ectrica, Electr´ onica, Autom´ atica y F´ ısica Aplicada Madrid, Septiembre 2015

Transcript of Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on...

Page 1: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

UNIVERSIDAD POLITECNICA DE MADRID

ESCUELA TECNICA SUPERIOR DE INGENIERIA Y

DISENO INDUSTRIAL

Grado en Ingenierıa Electronica y Automatica Industrial

TRABAJO FIN DE GRADO

Segmentacion multi-atlas enneuro-imagenes para la

extraccion automatica delhipocampo

Jose Marıa Sanz Sanz

Cotutor (si lo hay):Departamento:

Tutor: Carlos Platero DuenasDepartamento: IngenierıaElectrica, Electronica,Automatica y Fısica Aplicada

Madrid, Septiembre 2015

Page 2: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

ii

Page 3: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

UNIVERSIDAD POLITECNICA DE MADRID

ESCUELA TECNICA SUPERIOR DE INGENIERIA Y

DISENO INDUSTRIAL

Grado en Ingenierıa Electronica y Automatica Industrial

TRABAJO FIN DE GRADO

Segmentacion multi-atlas enneuro-imagenes para la

extraccion automatica delhipocampo

Firma Autor

Firma Cotutor (si lo hay) Firma Tutor

Page 4: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

ii

Page 5: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

iii

Tıtulo: Segmentacion multi-atlas en neuro-imagenes para la extraccionautomatica del hipocampoAutor: Jose Marıa Sanz SanzTutor: Carlos Platero DuenasCotutor:

EL TRIBUNAL

Presidente:

Vocal:

Secretario:

Realizado el acto de defensa y lectura del Trabajo Fin de Grado el dıa ....... de.................... de ... en .........., en la Escuela Tecnica Superior de Ingenierıa y DisenoIndustrial de la Universidad Politecnica de Madrid, acuerda otorgarle la CALIFI-CACION de:

VOCAL

SECRETARIO PRESIDENTE

Page 6: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

iv

Page 7: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Agradecimientos

En primer lugar, antes que nada, quiero darles las gracias a Sandra Rodrıguez ya Juan Manuel Aunon, mis companeros de grupo. Juntos hemos pasado momentosde alegrıa y felicidad, pero tambien momentos de estres y desanimo. Gracias a ellosme he negado a abandonar y he seguido adelante, aun en las situaciones mas deses-peranzadoras. Quiero creer que yo os he ayudado a vosotros de la misma forma quevosotros me habeis ayudado a mı. Gracias chicos, sin vosotros estos meses habrıansido mucho mas duros.

Tambien quiero agradecerle a mi tutor, Carlos Platero, todo el apoyo que meha brindado desde el principio. Gracias a el he podido trabajar en un campo taninteresante como la ingenierıa biomedica y he comprendido la importancia de lostemas con los que trata. Muchas gracias por abrirme la puerta a este nuevo mundoy guiarme por el.

Por otra parte, quiero darle tambien las gracias a Jorne De Blaere. A pesar delpoco tiempo que trabajamos juntos, me ayudaste mucho a empezar y a comprenderlos elementos con los que he tenido que lidiar.

Por ultimo, pero no por ello menos importante, quiero dedicar un agradecimientoespecial a mis padres. Ellos son el verdadero motivo por el que he conseguido llegarhasta aquı sin perderme por el camino. Siempre me han ayudado cuando lo henecesitado y me han animado cuando ya no podıa mas. Muchas gracias por estar ami lado y por creer siempre en mı.

v

Page 8: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

vi AGRADECIMIENTOS

Page 9: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Resumen

El diagnostico automatico precoz de la enfermedad de Alzheimer es un procesolargo en el que todos sus pasos estan enfocados a obtener una segmentacion au-tomatica de la imagen de resonancia magnetica (MRI) del paciente a diagnosticar.Mediante el uso de imagenes de referencia (atlas), podemos estimar la atrofia delhipocampo, importante biomarcador del avance de la enfermedad, y llegar a obtenerdicha segmentacion.

Sin embargo, para obtener resultados fiables, los atlas que se utilicen en el procesodeberan constituir una base robusta y flexible que represente a la gran mayorıa dela poblacion. En la primera parte del presente proyecto se ha tratado este tema.Se ha localizado un conjunto de pacientes de edades y diagnosticos variables, cuyasimagenes de resonancia han sido adquiridas mediante la aplicacion del protocolo deadquisicion de imagenes ADNI, y cuyas segmentaciones se han generado de formamanual mediante la aplcacion del Protocolo armonizado (HarP).

En la segunda parte se ha aplicado a este conjunto de atlas el protocolo ENGIMApara obtener los datos sobre el volumen intracraneal (ICV) de los pacientes y poderestablecer biomarcadores para estimar el avance de la enfermedad en el paciente.

En la tercera parte, se aborda el tema del registo de los atlas a la imagen pacientemediante tecnicas de patch-labeling. Se han estudiado algunas de las tecnicas maseficaces y se ha escogido una que combina el etiquetado de patches con el registrono rıgido para proceder a reescribirla en C++ e intentar mejorar su eficiencia.

Palabras clave: Alzheimer, atlas, ADNI, HarP, ENIGMA, patch-labeling.

vii

Page 10: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

viii RESUMEN

Page 11: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Abstract

The early automatic diagnosis of Alzheimer’s Disease (AD) is a long process inwhich all of its steps focus on obtaining an automatic segmentation using the brainMRI of the patient. Through the use of reference images (atlas), we can estimatehippocampal atrophy, an important biomarker of the disease progession, and obtainsaid segmentation.

However, in order to obtain reliable results, the atlas that will be used must forma robust and flexible database representative of the majority of the population. Inthe first part of the present thesis this topic has been addressed. We have locateda set of patients of different ages and diagnosis, whose MRI have been acquired byusing the acquisition protocol ADNI, and whose segmentations have been manuallygenerated through the use of the Harmonized Hippocampal Protocol (HarP).

In the second part the ENIGMA protocol has been applied to this database inorder to obtain the intercraneal value (ICV) of the patients and define biomarkersto estimate the progression of the disease in the patient.

In the third part, the topic of atlas registration using patch-labeling techniqueshas been studied. We have compared some of the most effective techniques and wehave chosen one that combines patch-labeling with non-rigid register to translate itto C++ and attempt to improve its efficiency.

Keywords: Alzheimer, atlas, ADNI, HarP, ENIGMA, patch-labeling.

ix

Page 12: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

x ABSTRACT

Page 13: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Indice general

Agradecimientos V

Resumen VII

Abstract IX

Indice general XI

Indice de figuras XIII

Indice de tablas XV

1. Introduccion 1

1.1. Motivacion del proyecto . . . . . . . . . . . . . . . . . . . . . . . . . 1

1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.3. Herramientas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . 2

1.4. Estructura del documento . . . . . . . . . . . . . . . . . . . . . . . . 3

2. Estado del arte 5

2.1. Protocolos de adquisicion de imagenes . . . . . . . . . . . . . . . . . 5

2.1.1. ADNI (Alzheimer’s Disease Neuroimaging Initiative) . . . . . 6

2.1.2. HarP o HHP (Harmonized Hippocampal Protocol) . . . . . . . 8

2.2. Protocolo ENIGMA1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2.1. Introduccion al protocolo ENIGMA1 . . . . . . . . . . . . . . 10

2.2.2. Etapa 1: Estructuracion de los archivos . . . . . . . . . . . . . 11

2.2.3. Etapa 2: Eliminacion del craneo . . . . . . . . . . . . . . . . . 12

2.2.4. Etapa 3: Correccion del sesgo magnetico . . . . . . . . . . . . 13

2.2.5. Etapa 4: Segunda eliminacion del craneo . . . . . . . . . . . . 15

2.2.6. Etapa 5: Transformacion al espacio normalizado . . . . . . . . 15

2.2.7. Etapa 6: Segmentacion en volumenes parciales . . . . . . . . . 16

2.2.8. Etapa 7: Calculo del volumen intracraneal . . . . . . . . . . . 17

2.3. Registro no rıgido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

2.3.1. elastix toolbox . . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3.2. ANTs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.3. Patch-labeling . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

xi

Page 14: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

xii INDICE GENERAL

3. Localizacion de atlas para AD 253.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2. Revision de los protocolos . . . . . . . . . . . . . . . . . . . . . . . . 253.3. Preparacion de la base de imagenes . . . . . . . . . . . . . . . . . . . 263.4. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

4. Aplicacion del protocolo ENIGMA a atlas de ADNI-HHP 314.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314.2. Estructura de los directorios . . . . . . . . . . . . . . . . . . . . . . . 314.3. Inspeccion visual. Correccion de la orientacion de las imagenes . . . . 334.4. Primera extraccion del craneo . . . . . . . . . . . . . . . . . . . . . . 354.5. Correccion del sesgo magnetico. Segunda extraccion del craneo . . . . 374.6. Transformacion al espacio normalizado . . . . . . . . . . . . . . . . . 384.7. Propagacion de las transformaciones a las etiquetas . . . . . . . . . . 414.8. Calculo del ICV e ındices DICE . . . . . . . . . . . . . . . . . . . . . 434.9. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

5. Tecnicas de patch-labeling 495.1. Objetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.2. Descripcion del algoritmo . . . . . . . . . . . . . . . . . . . . . . . . 495.3. Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Conclusiones 53Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53Desarrollos futuros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Anexos 55

A. Lista de pacientes ADNI-HHP 57

B. Documentacion del codigo del protocolo ENIGMA 67

C. Documentacion del codigo de patch-labeling 93

Bibliografıa 111

Page 15: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Indice de figuras

2.1. Distribucion de pacientes de ADNI por edad y sexo . . . . . . . . . . 72.2. Diagnosticos de los pacientes de ADNI . . . . . . . . . . . . . . . . . 82.3. Distribucion por edades y por diagnostico de los pacientes de ADNI . 82.4. Modelo de las regiones que forman el hipocampo . . . . . . . . . . . . 92.5. Distribucion de grupos de investigacion del Consorcio ENIGMA . . . 102.6. Diagrama de flujo del protocolo ENIGMA . . . . . . . . . . . . . . . 112.7. Ubicacion de la imagen de referencia . . . . . . . . . . . . . . . . . . 122.8. Ubicacion de los sujetos . . . . . . . . . . . . . . . . . . . . . . . . . 122.9. Bucle para recorrer las imagenes . . . . . . . . . . . . . . . . . . . . . 122.10. Evolucion del algoritmo BET . . . . . . . . . . . . . . . . . . . . . . 132.11. Resultado ideal del algoritmo BET . . . . . . . . . . . . . . . . . . . 132.12. Comando para utilizar BET desde Linux . . . . . . . . . . . . . . . . 142.13. Imagen con sesgo magnetico . . . . . . . . . . . . . . . . . . . . . . . 142.14. Comando para utilizar FAST desde Linux para correccion del sesgo . 142.15. Correccion del sesgo magnetico . . . . . . . . . . . . . . . . . . . . . 152.16. Atlas probabilıstico MNI152.nii.gz . . . . . . . . . . . . . . . . . . . . 162.17. Comando para utilizar FLIRT desde Linux para registro afın . . . . . 162.18. Comando para utilizar FAST desde Linux para estimacion de volume-

nes parciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.19. Segmentacion en volumenes parciales . . . . . . . . . . . . . . . . . . 172.20. Funcion mat2det . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.21. Calculo de ICV y volumenes de WM y GM . . . . . . . . . . . . . . . 182.22. Componentes de elastix para registro . . . . . . . . . . . . . . . . . 202.23. Estructura para registro con ITKv4 . . . . . . . . . . . . . . . . . . . 212.24. Metodo propuesto por Coupe et al. . . . . . . . . . . . . . . . . . . . 22

3.1. Funcion que carga el volumen de una imagen . . . . . . . . . . . . . . 263.2. Grafica de distribucion por edades de los pacientes de la base de atlas 273.3. Grafica de distribucion por diagnostico de los pacientes de la base de

atlas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283.4. Atlas del paciente 002 S 0295 en sagital . . . . . . . . . . . . . . . . . 283.5. Superposicion de imagen y atla del paciente 002 S 0295 en sagital . . 29

4.1. Diagrama de flujo del proceso seguido . . . . . . . . . . . . . . . . . . 324.2. Estructura de los directorios empleada . . . . . . . . . . . . . . . . . 334.3. Estructura de los ficheros de texto . . . . . . . . . . . . . . . . . . . . 334.4. Error en la coincidencia de la imagen y el etiquetado . . . . . . . . . 34

xiii

Page 16: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

xiv INDICE DE FIGURAS

4.5. Comparacion entre una imagen bien orientada y otra que requiereuna rotacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

4.6. Modulo Transform de 3D-Slicer . . . . . . . . . . . . . . . . . . . . . 364.7. Lınea AC-PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.8. Comparacion entre los dos tipos de rotaciones . . . . . . . . . . . . . 374.9. Fragmento del script en el que se aplica la matriz de transformacion

con FLIRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.10. Ubicacion del septo pelucido . . . . . . . . . . . . . . . . . . . . . . . 394.11. Fragmento del script en el que se hace la llamada a BET . . . . . . . 394.12. Resultado del primer Skull-Stripping . . . . . . . . . . . . . . . . . . 404.13. Ejemplos de sesgo magnetico en imagenes MRI . . . . . . . . . . . . . 404.14. Fragmento del script en el que se hace la correccion del sesgo magnetico 414.15. Resultados de la correccion del sesgo magnetico . . . . . . . . . . . . 414.16. Resultado del segundo Skull-Stripping . . . . . . . . . . . . . . . . . . 424.17. Atlas probabilıstico MNI152.nii.gz . . . . . . . . . . . . . . . . . . . . 424.18. Fragmento del script en el que se hace la transformacion al espacio

normalizado MNI152 . . . . . . . . . . . . . . . . . . . . . . . . . . . 434.19. Resultados de la transformacion al espacio normalizado . . . . . . . . 434.20. Transformaciones a aplicar a las etiquetas . . . . . . . . . . . . . . . 444.21. Resultados de la propagacion de etiquetas para un paciente sin reorien-

tacion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444.22. Resultados de la propagacion de etiquetas para un paciente con rota-

cion libre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454.23. Comparacion entre el etiquetado erroneo y el etiquetado corregido . . 454.24. Fragmento del script en el que se obtiene la matriz de transformacion

inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464.25. Fragmento del script en el que se calcula el DICE . . . . . . . . . . . 474.26. Definicion de la funcion para calculo del DICE . . . . . . . . . . . . . 474.27. Fragmento del script para el calculo del ICV . . . . . . . . . . . . . . 48

5.1. Medida de similitud para los patches . . . . . . . . . . . . . . . . . . 505.2. Llamada desde MATLAB a la funcion parDLM . . . . . . . . . . . . . 515.3. Prueba 1: Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . 515.4. Prueba 2: Resultados obtenidos . . . . . . . . . . . . . . . . . . . . . 52

A.1. Indices DICE obtenidos para los pacientes ADNI-HHP (parte1) . . . 64

A.2. Indices DICE obtenidos para los pacientes ADNI-HHP (parte2) . . . 65A.3. Volumenes ICV obtenidos para los pacientes ADNI-HHP . . . . . . . 65A.4. Volumenes hipocampales obtenidos para los pacientes ADNI-HHP . . 65

Page 17: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Indice de tablas

3.1. Distribucion por edades de los pacientes de la base de atlas . . . . . . 273.2. Distribucion por diagnostico de los pacientes de la base de atlas . . . 28

4.1. Resultados del ındice DICE para la base de atlas ADNI-HHP definitiva 46

A.1. Leyenda para la tabla A.2 . . . . . . . . . . . . . . . . . . . . . . . . 57A.2. Informacion demografica de pacientes ADNI-HHP . . . . . . . . . . . 61A.3. Resultados obtenidos con los pacientes ADNI-HHP . . . . . . . . . . 64

xv

Page 18: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

xvi INDICE DE TABLAS

Page 19: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Capıtulo 1

Introduccion

1.1. Motivacion del proyecto

Actualmente, las enfermedades neurodegenerativas se situan como uno de losgrandes desafıos de la sociedad. Enfermedades como el Alzheimer o la esquizofreniason cada vez mas comunes, y sus efectos son devastadores para aquellos que lassufren. A dıa de hoy, el metodo mas eficaz para lidiar con este tipo de enfermedadespasa por un diagnostico precoz que detecte la enfermedad en sus primeras fases dedesarrollo.

Se ha comprobado que la obtencion de bio-marcadores asociados a la volumetrıay morfologıa del hipocampo es una ayuda fundamental a la temprana deteccionde enfermedades neurodegenerativas, en las que la atrofia del hipocampo permitedeterminar el avance de la enfermedad.

Sin embargo, el proceso de segmentacion del hipocampo para obtener la volu-metrıa y la morfologıa es muy largo y complejo para que un radiologo lo lleve acabo de forma manual. Por este motivo, en los ultimos anos se esta llevando a cabouna intensa labor de automatizacion de este proceso para poder realizarlo de formarapida y eficaz con un ordenador.

El proceso de segmentacion automatizada requiere del uso de una base de image-nes de resonancia magnetica en las que la region a localizar ha sido previamentesegmentada por segmentacion manual. A estas imagenes se las conoce como atlas.Los atlas deben pasar por una etapa de preprocesamiento en la que se lleve a cabo laeliminacion de la imagen el craneo y todos aquellos elementos que no formen partedel cerebro (skull-stripping), ası como la correccion del sesgo magnetico que provocafaltas de homogeneidad en las imagenes (bias correction).

Posteriormente, los atlas de la base de imagenes son registrados a la imagenpaciente que hay que segmentar, utilizando para ello alguna de las metodologıasdisponibles. De esta forma, obtenemos varios etiquetados para la imagen paciente,cada uno producido por el registro de un atlas. Finalmente, se realiza un procesode fusion de los etiquetados en los que se pone en comun la informacion de cadaetiquetado para obtener la segmentacion definitiva de la imagen paciente. Una vezobtenida la segmentacion definitiva del hipocampo, es sencillo contar el numero devoxeles de que consta y multiplicar por el tamano del voxel (Spacing) para calcularel volumen del hipocampo.

1

Page 20: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2 CAPITULO 1. INTRODUCCION

Como se puede ver, el proceso es muy complejo, por lo que se divide en variasetapas que se pueden mejorar de forma individual. Solo mediante la mejora indivi-dual de todas las etapas se podra obtener una mejora global significativa. En esteproyecto nos centraremos en la adquisicion de una base de atlas completa que nospermita probar diferentes algoritmos y en la etapa del registro de los atlas a laimagen paciente.

1.2. Objetivos

Los principales objetivos de este Proyecto Fin de Grado son la generacion de unabase de atlas elaborados mediante la aplicacion de protoclos especıficos y implemen-tacion de tecnicas de fusion de etiquetas basadas en la combinacion de patches yregistro no rıgido. Este proyecto esta dentro del marco de las tecnicas de segmenta-cion de subestructuras corticales desde imagenes T1-MRI.

Se llevara a cabo un estudio de los protocolos de adquisicion de imagenes proce-dentes de resonancia magnetica, ası como una busqueda de atlas para su posterioruso en otros algoritmos. A estos atlas se les aplicara el protocolo de procesamientoENIGMA1 para poder utilizarlos posteriormente en otros metodos de segmentacion.

Por otra parte, se llevara a cabo un estudio de tecnicas de fusion de etiquetasempleando patches de forma convencional y mediante un nuevo procedimiento, parael cual se intentara optimizar su implementacion.

1.3. Herramientas utilizadas

A lo largo de este proyecto se han empleado las herramientas que se detallan acontinuacion.

Visual Studio C++: Entorno de desarrollo espcıfico para los lenguajes de pro-gramacion C y C++.

MATLAB: Entorno de desarrollo de alto nivel utilizado para desarrollo de al-goritmos, analisis de datos y calculo numerico.

CMake: Software multiplataforma libre utilizado en el proceso de compilacionde software.

Biblioteca ITK (Insight Segmentation and Registration Toolkit): Biblioteca mul-tiplataforma libre que dispone de una amplia coleccion de herramientas softwarepara el analisis de imagenes.

Biblioteca FSL (FMRIB Software Library): Biblioteca de herramientas de anali-sis de imagenes FMRI, MRI y DTI del cerebro.

BrainSuite 11 y 14: Coleccion de herramientas para analisis y visualizacion deimagenes de resonancia magnetica del cerebro. En este proyecto se ha utilizadoespecialmente para la visualizacion de imagenes.

Page 21: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

1.4. ESTRUCTURA DEL DOCUMENTO 3

3D-Slicer: Herramienta multiplataforma utilizada para la visualizacion y anali-sis de imagenes. En el contexto de este proyecto se ha utilizado para generarmatrices de transformacion.

Putty: Herramienta de acceso a escritorios remotos.

FileZilla: Herramienta gratuita que implementa el FTP (Protocolo de Trans-ferencia de Archivos), y que permite intercambiar archivos con un escritorioremoto.

Doxygen: Herramienta de generacion automatica de documentacion de codigo.

1.4. Estructura del documento

A continuacion, y para facilitar la lectura del documento, se detalla el contenidode cada capıtulo.

En el capıtulo 1 se realiza una introduccion al tema y se detallan los objetivosdel proyecto y las herramientas empleadas.

En el capıtulo 2 se hace un repaso de los protocolos de adquisicion y pro-cesamiento de imagenes de resonancia magnetica, ası como de las principalestecnicas de registro no rıgido.

En el capıtulo 3 se trata la localizacion y adquisicion de atlas para la enfermedadde Alzheimer con el objetivo de generar una base de atlas mas completa yrobusta que las actualmente disponibles para poder probar con ella los nuevosalgoritmos desarrollados.

En el capıtulo 4 se va a aplicar el protocolo ENIGMA1 a la base de atlasobtenida con el objetivo de llevar la base al espacio normalizado MNI152.

En el capıtulo 5 se presenta la tecnica de patch-labeling propuesta, ası como lasmejoras que se han aplicado para aumentar su eficiencia.

Page 22: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4 CAPITULO 1. INTRODUCCION

Page 23: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Capıtulo 2

Estado del arte

2.1. Protocolos de adquisicion de imagenes

Ya hemos visto que la segmentacion del hipocampo es de vital importancia en eldiagnostico de enfermedades neurodegenerativas como la enfermedad de Alzheimer(AD) y que es necesario contar con una base de atlas cuyas segmentaciones se hayanhecho manualmente.

A la hora de hacer estas segmentaciones surge un nuevo problema, que es como sedefine el hipocampo in vivo. Segun las estructuras que se incluyan en la segmentacionmanual del hipocampo, los resultados de la volumetrıa del paciente pueden variarconsiderablemente, dando lugar a distintos diagnosticos segun la definicion tomada.

Existen diversos protocolos de definicion del hipocampo y de las estructuras quese consideran en su segmentacion. Nestor et al. [1] llevaron a cabo una compara-cion entre cinco protocolos de adquisicion de imagenes, realizando segmentacionesmanuales con todos ellos y comparando los resultados de segmentar una imagenpaciente con las bases de atlas de cada protocolo. Los protocolos utilizados fueron:Haller et al. (P1), Killiany et al. (P2), Malykhin et al. (P3), Pruessner et al. (P4) yPantel et al. (P5).

El experimento se realizo un metodo de validacion leave-one-out en el que sesegmenta una imagen procedente de la base de atlas utilizando el resto de atlas y secompara el etiquetado obtenido con la segmentacion autentica correspondiente a laimagen (ground-truth).

Los resultados obtenidos demostraron que se obtenıan mejores valores del coefi-ciente de similitud DICE utilizando los protocolos mas inclusivos, en concreto P3,P4 y P5, que incluyen gran parte de la cola del hipocampo, el alveus y la fimbria.Los valores de similitud obtenidos con estos protocolos llegan a 0.88, mientras quelos otros protocolos alcanzaban valores de 0.86 (P2) y 0.85 (P1).

Ademas de los cinco protocolos estudiados por Nestor et al. [1], existen muchasotras metodologıas de obtencion de los atlas, pudiendo variar no solo las estructurasconsideradas, sino tambien el espacio en el que estan registradas las imagenes, laintensidad de campo utilizada en la resonancia o el tamano de los voxeles de laimagen. En estos casos, es posible aplicar transformaciones a las imagenes paraadaptarnos a un protocolo determinado, pero hay que tener estos datos muy en

5

Page 24: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

6 CAPITULO 2. ESTADO DEL ARTE

cuenta para llegar a obtener el diagnostico correcto para la imagen paciente.

Como consecuencia, actualmente hay varias iniciativas en desarrollo cuyo objetivoes unificar los protocolos de adquisicion y segmentacion de imagenes para conseguirestablecer bases de atlas mas robustas. En concreto, para la enfermedad de Alzhei-mer, las iniciativas mas importantes son ADNI y el Protocolo Armonizado para elHipocampo (HarP).

2.1.1. ADNI (Alzheimer’s Disease Neuroimaging Initiative)

ADNI es una iniciativa consistente en un amplio estudio observacional de pacien-tes de mas de 50 anos, con diagnosticos desde saludable (Normal) hasta enfermo deAlzheimer (AD), pasando por deterioro cognitivo leve (Mild Cognitive Impairment,MCI). ADNI incluye datos en varios formatos, incluyendo MRI, PET y biomarca-dores de CSF (Fluido cerebroespinal).

El objetivo de ADNI es crear una gran base de datos variados relativos al cere-bro para poder utilizarlos en estudios posteriores, tales como la segmentacion delhipocampo que tratamos en este informe.

Como ya hemos visto en Nestor et al. [1], la definicion de los protocolos de seg-mentacion resulta vital para poder interpretar adecuadamente los datos y obtener losresultados correctos. Ocurre exactamente lo mismo en la adquisicion de las image-nes, por lo que en Jack et al. [2] se ha definido un protocolo especıfico para la tomade datos. En concreto, para la adquisicion de imagenes de MRI, las especificacionesson las siguientes:

1. Las imagenes MRI de ADNI deben ser consistentes a lo largo del tiempo, con-siguiendo caracterısticas similares para todas las imagenes.

2. Las imagenes deben ser tomadas con un aparato de resonancia de GE Health-care, Philips Medical Systems o Siemens Medical Solutions y que haya sidoaprobado por ADNI.

3. Se permite la modificacion de la secuencia de pulsos de una maquina, pero solosi beneficia al proyecto.

4. Las imagenes deben ser de tipo T1. Es deseable pero no imprescindible que losvoxeles sean isotropicos para reducir el sesgo direccional. El volumen aproxi-mado del voxel es de 1mm3.

5. Se debe adquirir todo el cerebro.

6. El tiempo de adquisicion no sera superior a 10 minutos.

7. Es preferible mejorar otros campos antes que reducir el tiempo de adquisicion.

8. Con un campo de 3T, el ratio senal-ruido (SNR) se utiliza para incrementar laresolucion espacial y compensar la rapida variacion de la susceptibilidad con3T.

9. Las imagenes T1 deben poder utilizarse con metodos y algoritmos que ya sehayan empleado.

Page 25: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.1. PROTOCOLOS DE ADQUISICION DE IMAGENES 7

10. Se deben incluir phantoms para monitorizar y calibrar el aparato. De hecho, seaplica el phantom despues de cada resonancia.

11. Se implementara la post-correccion de las imagenes siempre que sea necesario.

Las principales opciones para la adquisicion fueron: magnetization prepared rapidgradient echo (MP-RAGE) y spoiled gradient echo (SPGR) o similares. Sin embargo,rapidamente se comprobo que MP-RAGE producıa los mejores resultados, por loque se adopto como parte del protocolo de adquisicion. Finalmente, las fases delprotocolo de ADNI son:

1. Procedimiento de escaneado previo determinado por el fabricante del equipo.

2. Adquisicion de la imagen 3D MP-RAGE sagital.

3. Repeticion de la imagen 3D MP-RAGE sagital.

4. Calibracion B1 sagital (phased array)

5. Calibracion B1 sagital (bobina para el cuerpo)

6. Contraste dual FSE/TSE para deteccion de patologıas

Actualmente, ADNI cuenta con una gran base de imagenes MRI utilizadas enmultiples estudios y proyectos de imagen medica gracias a su versatilidad y consis-tencia. En la imagen 2.1 podemos ver la distribucion de pacientes por sexo y edad,estando la mayorıa entre los 70 y los 80 anos.

Figura 2.1: Distribucion de pacientes de ADNI por edad y sexo

Page 26: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

8 CAPITULO 2. ESTADO DEL ARTE

Como ya hemos comentado, los pacientes de ADNI presentan una amplia varie-dad de diagnosticos, desde los sujetos saludables hasta los enfermos de Alzheimer.En la imagen 2.2 podemos ver los distintos tipos de diagnostico: “CN”, “SMC”,“EMCI”, “MCI”, “LMCI” y “AD”. En la figura 2.3 podemos ver la distribucion delos pacientes por edades y por diagnostico. En el grafico de la derecha tenemos elnumero de sujetos para cada tipo de diagnostico (puesto que el SMC es bastantereciente y aun no tiene demasiada representacion se ha omitido en los graficos),mientras que en el de la derecha podemos ver la distribucion de las etapas de laenfermedad por edades.

Figura 2.2: Diagnosticos de los pacientes de ADNI

Figura 2.3: Distribucion por edades y por diagnostico de los pacientes de ADNI

2.1.2. HarP o HHP (Harmonized Hippocampal Protocol)

En la misma lınea de trabajo que Nestor et al. [1], el Consorcio Europeo de Enfer-medad de Alzheimer (EADC), investigadores de ADNI y la Alzheimer’s Associationcomienzan a trabajar en el desarrollo de un protocolo armonizado para la segmenta-cion manual de imagenes de resonancia magnetica, en concreto imagenes T1-MRI.Para ello se pretende llegar a acuerdo en la delimitacion del hipocampo y en la formade segmentarlo. Las bases del estudio son los 12 protocolos de segmentacion manualmas influyentes en la literatura, entre los que se encuentran los 5 protocolos quecomparaba Nestor.

Page 27: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.1. PROTOCOLOS DE ADQUISICION DE IMAGENES 9

Boccardi et al. [3] describe el proceso seguido. Se utiliza un procedimiento Delphi,que se basa en realizar sucesivas sesiones de votacion con el objetivo de que lasopiniones acaben convergiendo. En el proceso de votacion participaron 16 expertosen anatomıa del hipocampo y segmentacion manual, ası como los autores de losprincipales protocolos.

El procedimiento Delphi consto de cinco rondas, en la primera de las cuales sepreguntaba a los panelistas por la inclusion de determinadas estructuras en la defini-cion del hipocampo, solicitando que razonaran su posicion. En las siguientes rondasse mostraban de forma anonima los resultados de las rondas anteriores, ası comolos razonamientos presentados, con el objetivo de que las opiniones convergieran aun punto de mutuo acuerdo a mediad que los participantes fuesen adquiriendo masinformacion sobre otros puntos de vista.

Una de las cuestiones principales del proceso consistıa en establecer las regionesdel hipocampo que se incluirıan en el modelo armonizado (figura 2.4), puesto quelos protocolos anteriores habıan sido muy dispares en este punto. El procedimientoDelphi dio como resultado un modelo muy inclusivo del hipocampo, introduciendoel alveus y la fimbria (zona amarilla), la cola completa (zonas azules) y el borde me-dio siguiendo la morfologıa (Subiculum-Morphology), utilizando la lınea horizontal(Subiculum-Horizontal) como segunda opcion cuando la morfologıa no sea clara.

Figura 2.4: Izquierda: SUs (Segmentation Units) que forman el hipocampo. Derecha: Desglose delas SUs.

Tambien se aprobaron la separacion del alveus/fimbria del fornix, y la orienta-cion siguiendo la lınea AC-PC, entre otras elecciones que conformaron el modelodefinitivo del hipocampo para segmentacion manual. Con esta iniciativa, se preten-de homogeneizar las segmentaciones realizadas en los diferentes estudios y proyectospara garantizar que los resultados de un proyecto no dependan de las imagenesque se han utilizado para probarlo, sino que esos resultados sean extrapolables acualquier otra imagen.

Page 28: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

10 CAPITULO 2. ESTADO DEL ARTE

2.2. Protocolo ENIGMA1

2.2.1. Introduccion al protocolo ENIGMA1

El Consorcio ENIGMA (Enhancing Neuro Imaging Genetics through Meta-Analysis)es una iniciativa internacional que agrupa investigadores en los campos de neuro-logıa, genetica, psiquiatrıa e imagen con el objetivo de estudiar la estructura yfunciones del cerebro a traves de datos geneticos e imagenes MRI, DTI y fMRI demultiples sujetos de estudio.

Las principales metas del grupo ENIGMA pasan por establecer un entorno decooperacion entre individuos interesados en el campo de la genetica y la imagenpara compartir y desarrollar algoritmos y toda clase de informacion. Tambien sepretende dar a conocer los resultados que se obtengan, ası como facilitar el traspasodel conocimiento mediante seminarios y conferencias.

Figura 2.5: Distribucion de grupos de investigacion del Consorcio ENIGMA

De todos los proyectos que lleva a cabo el grupo ENIGMA [4], en este proyec-to nos interesa especialmente el protocolo ENIGMA1 para el analisis del volumenintracraneal (ICV) y el volumen total del cerebro (Stein et al. [5]). Este protoco-lo describe los pasos a seguir para obtener el volumen intracraneal, ası como losvolumenes de materia gris y materia blanca del cerebro partiendo de una imagenMRI.

El protocolo ENGIMA1 esta definido tanto para su uso con la biblioteca deherramientas software FSL como con la herramienta FreeSurfer. Sin embargo, ennuestro caso, nos va a interesar utilizar las herramientas de FSL [6]. Las etapas delas que consta el protocolo se muestran en la .

Page 29: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.2. PROTOCOLO ENIGMA1 11

Figura 2.6: Diagrama de flujo del protocolo ENIGMA

2.2.2. Etapa 1: Estructuracion de los archivos

Antes de comenzar las etapas de procesamiento de las imagenes, es necesarioproceder a estructurar de forma adecuada las imagenes a procesar, ası como definirlas variables que sean necesarias en las etapas siguientes.

Todos los comandos del protocolo ENIGMA estan pensados para utilizarse enun terminal Linux con el shell bash. En la propia instalacion de FSL se define lavariable de entorno $FSLDIR, con la que podremos definir la ubicacion de la imagende referencia MNI152 (figura 2.7). Por otra parte, hay que definir una variable conla ubicacion de los sujetos (2.8).

Para saber que sujetos van a ser analizados, hay que incluir el nombre de laimagen en un archivo de texto (list subjects.txt) que contendra los nombres delas imagenes a procesar, una en cada lınea.

Page 30: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

12 CAPITULO 2. ESTADO DEL ARTE

1 T brain=\$FSLDIR/ data / standard /MNI152 T1 1mm brain

Figura 2.7: Ubicacion de la imagen de referencia

1 SUBJECTS DIR=/enigma/ hippo / data

Figura 2.8: Ubicacion de los sujetos

Una vez estan preparadas todas las imagenes, ya podemos pasar al proceso deeliminacion del craneo. Para la eliminacion del craneo, en el protocolo ENIGMAse ha escogido una extraccion en dos pasos, utilizando FAST como una correccionintermedia del sesgo magnetico.

En las siguientes etapas, las imagenes se recorreran mediante un bucle que lealos nombres de los sujetos desde el archivo de texto que hemos creado (figura 2.9).

1 f o r s u b j i d in cat l i s t s u b j e c t s . txt ; do2 . . .3 done

Figura 2.9: Bucle para recorrer las imagenes

2.2.3. Etapa 2: Eliminacion del craneo

La eliminacion del craneo se lleva a cabo mediante la herramienta BET (BrainExtraction Tool) de FSL. El algoritmo BET se basa en un modelo deformable quecomienza teniendo una forma esferica cuyo centro es el centro de gravedad del cerebro(Smith et al. [7]).

En primer lugar, se elabora un histograma de intensidades con el que se pretendeestablecer unos umbrales de intensidades que pertenecen a la imagen, ignorando losvalores superiores o inferiores a los umbrales. A continuacion, se localiza el centrode gravedad del cerebro, el cual puede ser tambien un parametro de la funcion.

Posteriormente, se ubica una esfera de caras triangulares en el centro de gravedady se deforma de manera iterativa siguiendo unas fuerzas que mantienen la superficiesuavizada a la vez que hacen que la superficie se aproxime a la superficie del cerebro.En la figura 2.10 se puede ver la evolucion del proceso.

En la figura 2.11 se muestra el resultado ideal de un proceso de extraccion delcraneo. El comando para utilizar BET desde la terminal de Linux se muestra en lafigura 2.12.

El primer argumento de la funcion es la imagen MRI a la que queremos aplicarBET, mientras que el segundo es la ubicacion de la imagen resultante. El tercerparametro (-f) es el umbral de intensidad, que produce una extraccion mucho masagresiva cuanto mayor es su valor. El valor por defecto es 0,5.

Page 31: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.2. PROTOCOLO ENIGMA1 13

Figura 2.10: Evolucion del algoritmo BET

Figura 2.11: Resultado ideal del algoritmo BET

Esta primera extraccion se considera una primera estimacion, por lo que el resul-tado obtenido no tiene que ser completamente perfecto y puede contener trazas detejido no cerebral. El parametro umbral (-f) en la llamada a la funcion debe ser unnumero bajo, aunque no tanto como para que en la imagen resultante quede muchotejido no cerebral por eliminar. En la pagina web del protocolo ENIGMA se proponeutilizar un valor de 0,2 para esta primera extraccion.

2.2.4. Etapa 3: Correccion del sesgo magnetico

El objetivo de la correccion del sesgo magnetico (bias correction) es eliminar lafalta de homogeneidad en la imagen. El sesgo magnetico se produce como consecuen-cia del proceso de adquisicion de las imagenes, y se muestra como inconsistencias enla intensidad de la imagen. Esto quiere decir que se forman en la imagen zonas muyclaras o muy oscuras que no permiten distinguir con claridad los diferentes tejidos.Podemos ver un ejemplo en la figura 2.13, donde se puede apreciar que la parteinferior de la imagen es mucho mas clara que la superior.

Defectos como este pueden hacer que el atlas generado con esa imagen sea erroneo.

Page 32: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

14 CAPITULO 2. ESTADO DEL ARTE

1 bet $SUBJECTS DIR/$ s u b j i d $SUBJECTS DIR/$ s u b j i d braintmp −f 0 . 2

Figura 2.12: Comando para utilizar BET desde Linux

Figura 2.13: Imagen con sesgo magnetico

Para corregirlo, se utiliza la herramienta FAST (FMRIB’s Automated SegmentationTool de FSL. Esta herramienta se basa en el modelo oculto de campos aleatoriosde Markov (hidden Markov random field model) y un algoritmo EM (Expectation-Maximization) asociado.

Los principales usos de FAST son ejecutar la correccion del sesgo magnetico dela imagen y la segmentacion en volumenes parciales (se explicara en la seccion 2.2.7.Sin embargo, en esta seccion solo se utiliza para la correccion del sesgo aplicada ala region que contiene el tejido cerebral, sin tener en cuenta los posibles defectosde intensidad en otras regiones. De esta forma, al limitar la region a corregir, elresultado mejora y el algoritmo tarda menos en completarse.

El comando para utilizar FAST desde la terminal de Linux se muestra en la figura2.14. El parametro -b indica que se va a generar una imagen con la estimaciondel sesgo, mientras que el parametro --nopve indica que no se va a realizar lasegmentacion en volumenes parciales. En la figura 2.15 se puede ver el resultado deaplicar FAST a la imagen MRI de la figura 2.13.

1 f a s t −b −−nopve $SUBJECTS DIR/$ s u b j i d braintmp2 f s lmaths $SUBJECTS DIR/$ s u b j i d −div $SUBJECTS DIR/$ s u b j i d

bra intmp bias $SUBJECTS DIR/$ s u b j i d b i a s c o r r e c t e d

Figura 2.14: Comando para utilizar FAST desde Linux para correccion del sesgo

Page 33: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.2. PROTOCOLO ENIGMA1 15

(a) Imagen original (b) Estimacion del sesgo (c) Imagen corregida

Figura 2.15: Correccion del sesgo magnetico (imagenes tomadas de http://fsl.fmrib.ox.ac.uk/fslcourse/lectures/struc_seg.pdf)

2.2.5. Etapa 4: Segunda eliminacion del craneo

Tras llevar a cabo la correccion del sesgo magnetico, se procede a realizar denuevo la eliminacion del craneo mediante BET. El proceso es analogo al mostradoen la seccion 2.2.3, y la llamada a la funcion desde el terminal es la siguiente:

1 bet $SUBJECTS DIR/$ s u b j i d b i a s c o r r e c t e d $SUBJECTS DIR/$s u b j i d bra in −f 0 . 3

Como podemos comprobar, en esta segunda extraccion, la imagen a la que se vaa aplicar el algoritmo es la resultante de la etapa anterior y que, por tanto, ya tieneaplicada la correccion del sesgo magnetico.

Esta extraccion va a intentar afinar los resultados obtenidos en la primera, porlo que la segmentacion debera ser mas agresiva para eliminar los posibles restos detejido no cerebral que hayan podido quedar en las imagenes. Una segmentacion masagresiva implica que el umbral debera ser mayor que en la primera extraccion. Eneste caso, el protocolo ENGIMA propone utilizar un valor de 0,3.

Todas las imagenes que se hayan sometido a la segunda extraccion contendranlos caracteres brain al final de su nombre, lo que facilitara su identificacion, puestoque estas imagenes ya pueden utilizarse como parte de atlas o como imagenes detest.

2.2.6. Etapa 5: Transformacion al espacio normalizado

El tipo de aparato de resonancia magnetica que se utilice en el proceso de ad-quisicion de las imagenes MRI influye directamente en el tamano de las propiasimagenes. No resulta facil comparar dos imagenes de distinto tamano entre sı, porlo que hay que llevarlas a un espacio comun en el que ambas imagenes tengan lasmismas caracterısticas de dimensiones y tamano del voxel.

Para conseguir que las imagenes sean directamente comparables, en el protocolo

Page 34: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

16 CAPITULO 2. ESTADO DEL ARTE

ENIGMA se les aplica un registro afın al espacio del atlas probabilıstico MNI152(Mazziotta et al. [8]), el cual reune la informacion recogida de imagenes MRI de 152sujetos para formar un atlas probabilıstico que representa mejor a una poblacionque un atlas individual. En la imagen 2.16 se puede ver este atlas.

Figura 2.16: Atlas probabilıstico MNI152.nii.gz

Para transformar las imagenes de los sujetos al espacio definido por el MNI152,se utiliza la herramienta FLIRT (FMRIB’s Linear Image Registration Tool) de FSL(Jenkinson et al. [9] y [10]). Las principales funciones de FLIRT son el registro de unvolumen a otro y la aplicacion de una matriz de transformacion sobre una imagen.Tambien permite definir la funcion de coste para la optimizacion, los grados delibertad de la transformacion y el metodo de interpolacion.

Para el protocolo ENIGMA se ha utilizado el registro de una imagen a la MNI152.En la figura 2.17 se puede ver el comando empleado en la terminal. Con el parametro-ref se anade la imagen de referencia T brain que, como se vio en 2.7, corresponde ala imagen MNI152.nii.gz. El parametro -omat representa la matriz de transformacionque se genera en el registro.

1 f l i r t −in $SUBJECTS DIR/$ s u b j i d bra in −r e f $T brain −omat $SUBJECTS DIR/$ s u b j i d b r a i n t o T b r a i n . mat

Figura 2.17: Comando para utilizar FLIRT desde Linux para registro afın

2.2.7. Etapa 6: Segmentacion en volumenes parciales

Como ya se ha comentado en la seccion 2.2.4, la herramienta FAST permiterealizar la segmentacion en volumenes parciales de una imagen MRI. Ası, es posibleobtener en imagenes separadas la materia blanca (WM, White Matter), la materiagris (GM, Grey Matter) y el resto, que se considera fluido cerebroespinal (CSF,cerebrospinal fluid). Este paso es necesario para poder calcular los volumenes demateria gris y materia blanca del sujeto, ası como el volumen intracraneal (suma dela materia gris y la materia blanca).

El comando para obtener la segmentacion en volumenes parciales usando FASTse muestra en la figura 2.18 donde, al no incluir el parametro --nopve, se va a

Page 35: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.2. PROTOCOLO ENIGMA1 17

obtener la estimacion de volumenes parciales (PVE). En la figura 2.19 se muestrala segmentacion para la imagen de la figura 2.13.

1 f a s t $SUBJECTS DIR/$ s u b j i d bra in

Figura 2.18: Comando para utilizar FAST desde Linux para estimacion de volumenes parciales

(a) Materia gris (GM ) (b) Materia blanca (WM ) (c) Fluido cerebroespinal (CSF )

Figura 2.19: Segmentacion en volumenes parciales (imagenes tomadas de http://fsl.fmrib.ox.

ac.uk/fslcourse/lectures/struc_seg.pdf)

2.2.8. Etapa 7: Calculo del volumen intracraneal

Para calcular el volumen intracraneal del sujeto, el protocolo ENIGMA proponeobtener los volumenes de materia gris (GM ) y materia blanca (WM ) mediante lafuncion fslstats. Para hacer esto, se obtiene el numero total de voxeles con valordistinto de cero en las segmentaciones parciales (seccion 2.2.7) y se multiplica porel tamano del voxel. De esta forma, se obtienen los volumenes parciales de materiagris y blanca.

El protocolo ENIGMA tambien propone un metodo para el calculo del eTIV(estimated Total Intracraneal Volume). Segun Buckner et al. [11], el TIV (TotalIntracraneal Volume) es directamente proporcional al volumen del atlas utilizadocomo referencia. Des esta forma, el TIV de los pacientes es directamente proporcionalal TIV del atlas probabilıstico MNI152. En su artıculo, Buckner et al. demuestranque el coeficiente de proporcionalidad (ASF, Atlas Scaling Factor) se correspondecon el determinante de la matriz de transformacion que se ha utilizado en el registrodel atlas.

En el protocolo ENIGMA el calculo del determinante se lleva a cabo mediantela funcion mat2det, cuya definicion se muestra en la figura 2.20. La llamada a lafuncion y el calculo de los volumenes de GM, WM e ICV se muestran en la figura2.21. Los resultados se almacenan en en el fichero global size FSL.csv.

Page 36: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

18 CAPITULO 2. ESTADO DEL ARTE

1 #! / bin /awk −f2

3 BEGIN i =0; 4 5 i f ( i ==0) a=$1 ; b=$2 ; c=$3 ; i=i +1; e l s e6 i f ( i ==1) d=$1 ; e=$2 ; f=$3 ; i=i +1; e l s e7 i f ( i ==2) g=$1 ; h=$2 ; I=$3 ; i=i +1;8 9 END

10 11 det=a*e* I+b* f *g+c*d*h−a* f *h−b*d* I−c*e*g ;12 p r i n t f ( ” %f \ t %f \n” , det , 1/ det ) ;13

Figura 2.20: Funcion mat2det

1 echo ” sub j id , eTIV FLIRT , FASTvol noCSF” > g l o b a l s i z e F S L . csv2

3 f o r s u b j i d in ` cat l i s t s u b j e c t s . txt ` ; do4

5 eTIV=`./mat2det $SUBJECTS DIR/$ s u b j i d t o T bra in . mat | awk ' pr in t $2 ' `

6 volGM=` f s l s t a t s $SUBJECTS DIR/$ s u b j i d b r a i n p v e 1 −V −M | awk '

vo l = $2 * $3 ; p r i n t vo l ' `7 volWM=` f s l s t a t s $SUBJECTS DIR/$ s u b j i d b r a i n p v e 2 −V −M | awk '

vo l = $2 * $3 ; p r i n t vo l ' `8

9 v o l t i s s u e =`expr $volGM + $volWM`10

11 echo ”$ s u b j i d , $eTIV , $ v o l t i s s u e ” >> g l o b a l s i z e F S L . csv12

13 done

Figura 2.21: Calculo de ICV y volumenes de WM y GM

2.3. Registro no rıgido

Como ya se ha comentado anteriormente, uno de los pasos en el proceso desegmentacion de imagenes de resonancia magnetica es el registro de las imagenes.Con esta etapa se pretende convertir todas las imagenes, tanto los atlas como laimagen paciente a un espacio comun para poder compararlas directamente.

El registro se lleva a cabo aplicando transformaciones a los atlas y a la imagenpaciente. La transformacion a aplicar se obtiene estableciendo una relacion entre laimagen a transformar y el espacio al que se quiere llevarla. Si transformamos todoslos atlas y la imagen paciente a un espacio comun, podremos despues compararlasdirectamente para obtener la segmentacion objetivo. Sin embargo, habremos obte-nido el etiquetado en el espacio comun, por lo que para devolverlo al espacio de laimagen paciente habrıa que aplicar una transformacion inversa al etiquetado.

Page 37: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.3. REGISTRO NO RIGIDO 19

Una forma de evitar tener que aplicar la transformacion inversa es mediante elregistro de los atlas a la imagen paciente. De esta forma, los etiquetados asociados acada atlas ya estaran en el espacio de la imagen paciente, por lo que se podra realizardirectamente una fusion de los etiquetados para obtener la segmentacion definitiva.Existen muchos metodos para realizar el registro de las imagenes, aunque los mascomunes se pueden agrupar en registro rıgido y registro no rıgido. El registro rıgidobusca aplicar transformaciones afines, esto es, traslaciones, rotaciones y escalado,entre otros, para alcanzar la maxima similitud posible entre las imagenes.

En cuanto al registro no rıgido, utiliza ademas otras tecnicas como B-Splinespara establecer deformaciones locales y adaptar mejor la imagen transformada a laimagen de referencia.

En este informe se analizan tres metodos de registro no rıgido: elastix, AdvancedNormalization Tools (ANTs) y el etiquetado basado en patches. Se estudiara esteultimo metodo en mayor profundidad en la seccion 5.

2.3.1. elastix toolbox

elastix es una toolbox de codigo abierto que se maneja mediante comandospropuesta por Klein et al. [12]. elastix tiene un diseno modular e incluye multiplesmetodos y modelos de optimizacion, interpolacion y transformacion, con un softwarebasado en la biblioteca de procesamiento de imagenes medicas Insight Toolkit (ITK).

Con elastix, el problema del registro de imagenes queda reducido a la optimi-zacion de una funcion de coste C minimizada respecto de la transformacion T. Elproblema de la optimizacion quedarıa de la siguiente forma:

µ = argminC(Tµ; IF , IM) (2.1)

Donde µrepresenta el vector de parametros de la transformacion, Tµ la transfor-macion parametrizada, IF la imagen de referencia (Fixed image) e IM la imagen atransformar (Moving image).

Como se ha comentado anteriormente, elastix es un software modular divididoen componentes que pueden tomar distintos valores, permitiendo trabajar y com-parar de forma sencilla diferentes metodos y tecnicas. Podemos ver la estructura delos componentes principales de elastix en la imagen 2.22.

Funcion de coste: Mide la similitud entre la imagen fija (IF) y la imagen movil(IM). Algunas de las medidas que incluye elastix son la media de diferenciascuadradas (MSD), informacion mutua (MI) o MI normalizada (NMI).

Transformacion: elastix admite como modelos de transformacion la traslacion,rıgida (traslacion y rotacion), similitud (transformacion rıgida mas escaladoisotropico), afın y no rıgida (permite variar el numero de parametros).

Optimizacion: Permite resolver el problema del registro. Se incluyen muchosmetodos, pero uno de los que mejores resultados ofrece es el gradient descent.

Page 38: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

20 CAPITULO 2. ESTADO DEL ARTE

Figura 2.22: Componentes de elastix para registro

Muestreo: Se utiliza para calcular la funcion de coste. Los metodos disponiblesson muestreo de todos los voxeles, de un conjunto de voxeles en una cuadrıcu-la uniforme, muestreo aleatorio y muestro aleatorio fuera de la cuadrıcula devoxeles.

Interpolacion: Tambien se usa en el calculo de la funcion de coste. Algunos delos metodos mas utilizados son nearest neighbours, lineal y B-Splines de ordenN.

Estrategias jerarquicas: elastix soporta piramides gaussianas con y sin reduc-cion de escala, entre otros metodos.

2.3.2. ANTs

Otra metodologıa para realizar el registro no rıgido de las imagenes consiste enutilizar los recursos que nos proporciona la biblioteca de procesamiento de imagenesInsight Toolkit (ITK).

Dentro del software ANTs (Advanced Normalization Tools) existe una aplicacionque actua como interfaz con las herramientas de registro de ITK y que permite unalto grado de configuracion de las mismas.

En [13], Avants et al. explican las mejoras introducidas en la version 4 de ITK.Algunas de las mas importantes se refieren al registro de imagenes, como el hecho deque todo el registro se puede realizar en un unico paso (itkCompositeTransform),permitiendo varias etapas de registros de diferente tipo sin aumentar por ello lacomplejidad. Ademas, con ITKv4 las transformaciones afines y deformables se usande forma similar, facilitando su uso, y se implementa multi-threading en la medida desimilitud, la actualizacion del gradiente y la etapa de optimizacion. En la figura 2.23podemos comprobar la estructura de ITKv4 y algunas de las mejoras que aparecen.

Una de las ventajas del software ANTs es que es un framework muy versatil que,al igual que ocurrıa con elastix, puede adaptarse a diferentes situaciones. Esto leha llevado a ser ampliamente utilizado en estudios de relevancia internacional. Unode los estudios en los que se ha utilizado este framework es AHEAD (AutomaticHippocampal Estimator using Atlas-based Delineation). Este proyecto, desarrollado

Page 39: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.3. REGISTRO NO RIGIDO 21

Figura 2.23: Estructura para registro con ITKv4

por Suh et al. [14] tiene por objetivo la segmentacion automatica de imagenes MRIT1 usando segmentacion multi-atlas.

Las etapas seguidas en el programa son:

Preparacion del directorio de trabajo en el que se guardaran los resultados.

Registro rıgido utilizando FSL FLIRT.

Registro no rıgido utilizando ANTs.

Preparacion del proceso de votacion.

Votacion con pesos.

Correccion de la segmentacion basada en aprendizaje.

Copia de los resultados finales al fichero.

2.3.3. Patch-labeling

La segmentacion basada en patches es otro de los metodos que utilizan registrono rıgido, y es el metodo en el que nos vamos a centrar en la segunda parte de esteinforme (seccion 5).

Se define un patch como un conjunto de pıxeles (o voxeles) proximos. Un patchqueda representado por las coordenadas de su centro y los valores del radio en todas

Page 40: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

22 CAPITULO 2. ESTADO DEL ARTE

las dimensiones de la imagen (tres, en el caso de MRI). A pesar de la simplicidaddel concepto, las tecnicas basadas en patches han producido excelentes resultados,puesto que permiten estudiar la similitud entre voxeles aprovechando tambien elentorno, y no solo el propio voxel.

Siguiendo esta lınea de pensamiento, Coupe et al. [15] proponen un metodo ba-sado en patches e inspirado en los filtros de nonlocal means utilizados en tecnicas dedenoising. Partiendo de un conjunto de atlas de referencia con sus correspondientessegmentaciones manuales, realizan un analisis en intensidad de los patches, consi-derando que dos voxeles forman parte de la misma estructura si tienen entornos devecindad (representados por los patches) con intensidades similares. En funcion dela similitud de los patches, se asocia una ponderacion a los voxeles que forman elpatch. Finalmente, se hace la fusion de los etiquetados utilizando las ponderacionescalculadas.

Para el metodo propuesto por Coupe et al., las imagenes pasan por etapas dedenoising y correccion de la no-homogeneidad, y son registradas de forma afın alespacio estereotactico. Por ultimo, se normaliza la intensidad y se reducen las image-nes a una region de interes (ROI). Una vez preparados los atlas, ya se puede empezarel proceso de segmentacion (Figura 2.24).

Figura 2.24: Metodo propuesto por Coupe et al. [15]

En primer lugar, se realiza una preseleccion de los voxeles que van a aportar masinformacion para reducir el tiempo de ejecucion. Para ello, se define una mascarade inicializacion que es la union de todas las segmentaciones de los atlas. Despuesse eligen los mejores atlas aplicando suma de diferencias al cuadrado (SSD). Final-mente, se hace una preseleccion de los patches que se van a comparar aplicando una

Page 41: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

2.3. REGISTRO NO RIGIDO 23

medida de similitud:

ss =2µiµs,jµ2i + µ2

s,j

∗ 2σiσs,jσ2i + σ2

s,j

(2.2)

Donde µ es la media y σ la desviacion estandar, el subındice i representa elvoxel objetivo y el subındice s,j los voxeles de referencia. Si la medida de similitudss es mayor que un umbral predefinido th, se considera el patch y se calcula suponderacion de la siguiente forma:

w(xi, xs,j) = exp(−||P (xi)− P (xs,j)||22

h2(x)) (2.3)

La fusion de las ponderaciones obtenidas se realiza con la siguiente expresion:

v(xi) =

N∑s=1

∑j∈vi

w(xi, xs,j)ys,j

N∑s=1

∑j∈vi

w(xi, xs,j)

(2.4)

Si el valor de v(xi) es superior a 0.5, se asigna la etiqueta 1. En caso contrario, seasigna 0. Coupe expone diversos experimentos y comprueba que el metodo basadoen patches propuesto obtiene mejores resultados que otros como los basados enapariencia.

Por otra parte, Rousseau et al. [16] tambien proponen un metodo basado enintensidad con patches, aunque en este caso se basan en un grafo con pesos queune los voxeles de la imagen paciente con los voxeles de los atlas, y en el que lospesos representan la similitud entre los patches. Rousseau propone un metodo pair-wise en el que se registra cada atlas a la imagen paciente para despues fusionar losresultados, y un metodo group-wise en el que se combinan todos los atlas para formarun etiquetado borroso que aplicar a la imagen paciente. Estos metodos son pointwise,es decir, ofrecen una estimacion para cada voxel. Sin embargo, tambien es posibleobtener una estimacion del etiquetado de todo el patch (multipoint), resultando envarios etiquetados para cada voxel, que luego hay que fusionar (Rousseau et al.usan votacion por mayorıa). Por ultimo, proponen reducir el tiempo de ejecuciondel multipoint reduciendo la cantidad de operaciones a realizar (fast-multipoint).

En vista de los resultados, queda claro que el metodo multipoint ofrece mejoresresultados que el resto, mientras que el fast-multipoint mejora en gran medida lostiempos de ejecucion, superando incluso a ANTs.

En la seccion 5 estudiaremos otro metodo que combina las tecnicas de patch-labeling con el registro no rıgido.

Page 42: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

24 CAPITULO 2. ESTADO DEL ARTE

Page 43: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Capıtulo 3

Localizacion de atlas para AD

3.1. Objetivo

En este capıtulo nos hemos centrado en la localizacion de atlas especıficos para laenfermedad de Alzheimer (AD). El objetivo ha sido la busqueda de dichos atlas (tan-to la imagen MRI como el etiquetado de los dos hipocmapos) para formar una basede imagenes robusta y versatil que poder aplicar a los algoritmos de que utilizamosen las otras fases del proceso se segmentacion de las imagenes de hipocampo.

En la formacion de esta base de imagenes se incluye la recopilacion de datosdemograficos, tales como sexo, edad y diagnostico clınico, para que los pacientesque formen parte del conjunto queden perfectamente definidos.

3.2. Revision de los protocolos

Ya hemos visto en la seccion 2.1 la importancia de seguir una metodologıa concre-ta tanto en la adquisicion (Jack et al. [2]) como en la segmentacion de las imagenes(Nestor et al. [1] y Boccardi et al. [3]), por lo que para establecer nuestra nuevabase de atlas era preciso que tuvieramos en cuenta los protocolos seguidos en ambasetapas.

En vista de los estudios analizados, es claro el motivo por el que nos hemosdecantado por establecer nuestra base de atlas como una combinacion de ADNI yel protocolo armonizado (HarP o HHP).

ADNI es un estudio que contiene una gran cantidad de imagenes adquiridas si-guiendo un protocolo muy especıfico (Jack et al. [2]), lo que implica que todas lasimagenes estan tomadas en condiciones similares y que son directamente compara-bles entre sı. Ademas, ofrece una poblacion muy variada, de mas de 1500 sujetos dediferentes edades, sexos y etapas de la enfermedad.

En cuanto al protocolo armonizado (HarP), unifica las segmentaciones manualesdel hipocampo despues de haber realizado un procedimiento Delphi (Boccardi et al.[3]) en el que expertos en el hipocampo y la segmentacion manual llegaron a unaacuerdo acerca de como debe segmentarse el hipocampo.

25

Page 44: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

26 CAPITULO 3. LOCALIZACION DE ATLAS PARA AD

Posteriormente, Boccardi et al. [17] llevan a cabo la segmentacion siguiendo elprotocolo armonizado de 135 imagenes MRI-T1 de ADNI, para las que segmentanen todos los casos los hipocampos izquierdo y derecho, y en la mayorıa de casos elfluido cerebroespinal izquierdo y derecho.

3.3. Preparacion de la base de imagenes

Nosotros hemos utilizado las segmentaciones de Boccardi et al. (descargables de[18]) junto con sus correspondientes imagenes de ADNI (descargables de [19]) paraconformar nuestra base de atlas. Puesto que la gran mayorıa de nuestros algoritmosfuncionan en MATLAB, hemos tenido que guardar las imagenes y los etiquetadoscomo un fichero .mat que pueda leer el programa.

Para poder leer las imagenes desde MATLAB hemos utilizado las funciones delas librerıas ITK (Insight Toolkit) desde una funcion MEX. De este modo, nuestroprograma de MATLAB ejecuta la funcion MEX loadADNIVolume, la cual carga lasimagenes mediante funciones de ITK. La funcion que lee el volumen dentro de laMEX se muestra en la figura 3.1.

1 void getVolumeFloat32 ( char * InputFi l e , P ixe lF loat32 *

OutputMatlabVolume )2 3 CounterType ImagePixelCounter = 0 , ImageDimensionCounter =0;4

5 /* *************************************6 * ITK Image read ing . *

7 ************************************* */8 ReaderFloat32 : : Po inter reader = ReaderFloat32 : : New( ) ;9 reader−>SetFileName ( InputF i l e ) ;

10 reader−>Update ( ) ;11 reader−>UpdateLargestPoss ib leRegion ( ) ;12

13 ImageFloat32 : : Po inter image = reader−>GetOutput ( ) ;14

15 ImageFloat32 : : RegionType reg i on ;16 r eg i on = image−>GetLargestPoss ib leReg ion ( ) ;17

18 /* *************************************19 * Output v a r i a b l e gene ra t i on . *

20 ************************************* */21 //Matlab masked volume genera t i on .22 Const I t e ra to rF loa t32 OutputImageIterator ( image , r eg i on ) ;23 f o r ( OutputImageIterator . GoToBegin ( ) ; ! OutputImageIterator . IsAtEnd

( ) ; OutputImageIterator++)24 OutputMatlabVolume [ ImagePixelCounter++] = OutputImageIterator .

Get ( ) ;25

Figura 3.1: Funcion que carga el volumen de una imagen

Page 45: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.4. RESULTADOS 27

Ademas de las imagenes y los etiquetados, para que la base este completa esnecesario obtener algunos datos de caracter demografico de los pacientes. Para estacoleccion de sujetos, hemos recopilado datos acerca del sexo, la edad y el diagnosti-co clınico de los pacientes. Tambien hemos recogido la puntuacion MMSE de lospacientes que la tuvieran disponible.

El MMSE (Mini-Mental State Examination) es un breve cuestionario desarrolladopor Folstein et al. [20] que permite evaluar el grado de deterioro cognitivo de unpaciente. Mediante un conjunto de preguntas que se concentran en los aspectoscognitivos de las funciones mentales, tales como la orientacion, la atencion y ellenguaje, se puede llevar a cabo un estimacion del avance de la enfermedad deAlzheimer en el paciente.

3.4. Resultados

Tomando los etiquetados del protocolo armonizado (HarP) y las imagenes corres-pondientes de ADNI, hemos formado una base de atlas de 134 sujetos con edadescomprendidas entre los 60.4 y los 89.7 anos (edad media de 74.8 anos), donde te-nemos 70 hombres y 64 mujeres. Como podemos ver, tenemos un grupo de sujetosmuy heterogeneo, lo que nos beneficiara a la hora de probar nuevos algoritmos enlas condiciones mas exigentes.

Entre los pacientes de nuestra base, tenemos 69 para los que se ha realizado MRIcon intensidad de campo 1.5T, mientras que los otros 65 tienen una intensidad de3T. En las tablas 3.1 y 3.2 podemos ver un desglose de los datos de los sujetos. Enlas figuras 3.2 y 3.3 se pueden ver los mismos resultados en forma de graficas.

60-65 65-70 70-75 75-80 80-85 85-90

Hombres 10 12 16 11 11 10

Mujeres 5 11 18 12 9 9

Total 15 23 34 23 20 19

Tabla 3.1: Distribucion por edades de los pacientes de la base de atlas

Figura 3.2: Grafica de distribucion por edades de los pacientes de la base de atlas

Page 46: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

28 CAPITULO 3. LOCALIZACION DE ATLAS PARA AD

NC MCI LMCI AD

Hombres 23 18 8 21

Mujeres 21 11 8 24

Total 44 29 16 45

Tabla 3.2: Distribucion por diagnostico de los pacientes de la base de atlas

Figura 3.3: Grafica de distribucion por diagnostico de los pacientes de la base de atlas

Tambien es de interes el hecho de que tenemos las puntuaciones en el MMSE de155 pacientes de los 134. Estas puntuaciones se podran utilizar para contrastarlascon el diagnostico clınico de los pacientes y ver si los resultados coinciden.

En las figuras 3.4 y 3.5 podemos ver un ejemplo de las imagenes obtenidas a partirde ADNI-HarP, ası como comprobar el solapamiento de la imagen y el etiquetadodel hipocampo.

(a) Imagen de ADNI (b) Segmentacion de HarP

Figura 3.4: Atlas del paciente 002 S 0295 en sagital

Page 47: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.4. RESULTADOS 29

Figura 3.5: Superposicion de imagen y atla del paciente 002 S 0295 en sagital

Page 48: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

30 CAPITULO 3. LOCALIZACION DE ATLAS PARA AD

Page 49: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Capıtulo 4

Aplicacion del protocolo ENIGMAa atlas de ADNI-HHP

4.1. Objetivo

En este capıtulo se va a proceder a aplicar el protocolo ENIGMA (ver seccion2.2) a las imagenes y etiquetas que hemos obtenido anteriormente combinando losprotocolos ADNI y HHP (ver seccion 3.4). El protocolo ENIGMA empleado tienecomo objetivo el calculo del volumen intracraneal (ICV) y los volumenes de materiagris y blanca del cerebro del paciente. Sin embargo, nuestro objetivo en este capıtuloes procesar las imagenes y etiquetas para conseguir un conjunto de atlas en el espacionormalizado definido por la imagen MNI152. Con esta idea en mente, hemos alteradoligeramente las etapas del protocolo, enfocandolo ası a nuestra meta. En la imagense puede ver el diagrama de flujo que seguiremos en este capıtulo.

4.2. Estructura de los directorios

En esta seccion se va a explicar como se han estructurado los directorios a lahora de aplicar el protocolo ENIGMA. Ası mismo, se va a comentar la convencionde nombres de ficheros utilizada durante todo el proceso. De esta manera, se facilitarala comprension del capıtulo y los fragmentos de codigo que se ensenan.

En la figura 4.2 se muestra la estructura de directorios empleada en Linux. Acontinuacion se dan detalles acerca de cada fichero y carpeta, ası como de los archivosque contienen.

1. FinalFreeRotX: Contiene las imagenes resultantes de aplicar las etapas de eli-minacion de craneo y correccion del sesgo magnetico a las imagenes rotadas.

2. FinalFreeRotXFlirt: Contiene las imagenes rotadas resultantes de aplicar elregistro afın al espacio normalizado y la transformacion inversa de vuelta alespacio nativo.

3. FinalFreeRotXFlirtMatrix: Contiene las matrices de transformacion para llevarlas imagenes rotadas al espacio normalizado y de vuelta al espacio nativo.

31

Page 50: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

32 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

Figura 4.1: Diagrama de flujo del proceso seguido, basado en el protocolo ENIGMA

4. FinalFreeRotXLabels: Contiene las etiquetas de imagenes rotadas en el espacionormalizado y las que se han llevado de vuelta al espacio nativo.

5. FinalUntransformedX: Contiene las imagenes resultantes de aplicar las etapasde eliminacion de craneo y correccion del sesgo magnetico a las imagenes norotadas.

6. FinalUntransformedXFlirt: Contiene las imagenes no rotadas que resultan deaplicar el registro afın al espacio normalizado y la transformacion inversa devuelta al espacio nativo.

7. FinalUntransformedXFlirtMatrix: Contiene las matrices de transformacion pa-ra llevar las imagenes no rotadas al espacio normalizado y de vuelta al espacionativo.

8. FinalUntransformedXLabels: Contiene las etiquetas de imagenes no rotadas enel espacio normalizado y las que se han llevado de vuelta al espacio nativo.

9. RefImage: Contiene la imagen de referencia MNI152 T1 1mm brain.nii.gz.

10. Final.txt: Contiene los IDs de todos los sujetos para los que se va a aplicarel protocolo, ası como las coordenadas del centro de gravedad del cerebro. El

Page 51: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.3. INSPECCION VISUAL. CORRECCION DE LA ORIENTACION DE LAS IMAGENES 33

Figura 4.2: Estructura de los directorios empleada

formato de los ficheros de texto se muestra en la figura 4.3.

11. FinalFreeRotX.txt: Contiene los IDs de los sujetos que no requieren rotacion,ası como sus centros de gravedad.

12. FinalUntransformedX.txt: Contiene los IDs de los sujetos que sı que requierenrotacion, ası como sus centros de gravedad.

1 ID X Y Z2 Sujeto1 CoordX CoordY CoordZ3 Sujeto2 CoordX CoordY CoordZ4 ...5 SujetoN CoordX CoordY CoordZ

Figura 4.3: Estructura de los ficheros de texto

4.3. Inspeccion visual. Correccion de la orientacion de lasimagenes

Antes de comenzar a ejecutar las etapas del protocolo ENIGMA, vamos a ins-peccionar visualmente todas las imagenes y etiquetas para asegurarnos de que soncorrectas. En esta inspeccion vamos a intentar localizar cualquier defecto en lasimagenes MRI o en los etiquetados. Sin embargo, existen dos errores que puedenprovocar que el protocolo ENIGMA no se aplique correctamente y que, por tanto,los atlas resultantes no sean validos.

El primer problema, y tambien el mas grave, es que la imagen y el etiquetado nocoincidan cuando los solapemos. Este error tiene que subsanarse con urgencia pues-to que, de no hacerlo, estarıamos introduciendo informacion falsa en el atlas. Esto

Page 52: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

34 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

provocarıa que todos los resultados en los que se haya utilizado el atlas defectuosotendrıan ese error. La solucion a este problema serıa segmentar de nuevo el hipo-campo del paciente en cuestion. Sin embargo, en nuestro caso, no disponemos de losmedios necesarios para llevar a cabo una segmentacion manual satisfactoria, por loque hemos procedido a retirar de la base de imagenes los atlas que presentasen esteproblema. En la figura 4.4 podemos ver como aparece este defecto en el hipocampoizquierdo, ya que la etiqueta abarca tejido no hipocampal.

Figura 4.4: Error en la coincidencia de la imagen y el etiquetado del paciente 007 S 1304 (hipo-campo izquierdo)

El segundo problema que podemos detectar es que la imagen del paciente no esteen la posicion de Talairach, es decir, que no este alineada con los ejes de coordenadas(ver figura 4.5). Este problema es mas leve que el anterior, ya que no da comoresultado un atlas erroneo, pero sı que dificulta en gran medida la aplicacion de lospasos siguientes. La extraccion del craneo con la herramienta BET es mas difıcilde realizar cuando el paciente no esta en la posicion adecuada. Por tanto, hemosutilizado la herramienta 3D-Slicer (Boccardi et al. [21]) para obtener las matricesde rotacion necesarias para reorientar las imagenes que ası lo requiriesen.

3D-Slicer es un programa multifuncional muy potente y versatil para procesarimagenes de diferentes formas. Esta compuesto por diferentes modulos, cada unocon una funcionalidad diferente. En este caso, nos interesa el modulo Transform (verfigura 4.6), el cual genera la matriz de transformacion que es necesario aplicar paraque la imagen cumpla los requisitos de rotacion y traslacion que nosotros imponemos.Podemos regular la rotacion y la traslacion que se van a aplicar a la imagen con losbotones deslizantes que aparecen en la parte izquierda de la pantalla. Los cambiosque introduzcamos se aplicaran en tiempo real sobre la imagen. De esta forma,resulta sencillo conseguir que la imagen quede bien orientada.

Existen dos formas de evaluar si la imagen esta bien orientada o no. Por unlado, podemos seguir la lınea que une las comisuras anterior y posterior del cerebro(lınea AC-PC, ver figura 4.7). La imagen esta bien orientada cuando la lınea AC-PCesta paralela al plano axial. 3D-Slicer dispone de un modulo especıfico para aplicartransformaciones siguiendo este metodo.

Page 53: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.4. PRIMERA EXTRACCION DEL CRANEO 35

(a) Imagen bien orientada 002 S 0295 (b) Imagen que requiere correccion 002 S 0413

Figura 4.5: Comparacion entre una imagen bien orientada y otra que requiere una rotacion

Otra opcion es utilizar la rotacion libre, en la que el que realiza la transformaciones el que juzga cuando esta bien orientada la imagen. Nosotros hemos seguido estemetodo puesto que, a pesar de ser mas subjetivo que la lınea AC-PC, nos da lacerteza de que la imagen acaba con la orientacion deseada, ya que en ocasiones lalınea de las comisuras puede dar resultados aun mas rotados que la imagen original.

Para seguir un criterio uniforme a la hora de realizar las rotaciones, hemos con-siderado que la imagen esta bien orientada cuando se cumplen las siguientes condi-ciones:

La nariz y los ojos del paciente apuntan al frente.

La cisura que separa los dos hemisferos esta paralela al plano sagital.

En la figura 4.8 podemos ver los resultados obtenidos con ambos metodos. Comose puede apreciar, la rotacion libre da mejores resultados, por lo que nos va a facilitarel trabajo a la hora de efectuar la extraccion del craneo.

El ultimo paso en esta etapa es aplicar la matriz de transformacion mediante laherramienta FLIRT. Para ello utilizamos el codigo de MATLAB que se muestra enla figura 4.9 (ver documentacion del codigo en el Anexo B, rotar libre.m).

4.4. Primera extraccion del craneo

Como ya hemos visto en la seccion 2.2.3, vamos a utilizar el algoritmo BET(Brain Extraction Tool) para realizar una eliminacion preliminar del craneo de lospacientes. Esta eliminacion no sera muy refinada, pudiendo quedar restos de tejidono cerebral en la imagen final, pero sı que debe ser lo mas precisa posible.

Con el objetivo de mejorar la eliminacion del craneo, seguimos las ideas de Leunget al. [22] y decidimos localizar nosotros mismos el centro del cerebro, puntos decomienzo para el algoritmo BET. Este punto es el centroide o centro geometrico,

Page 54: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

36 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

Figura 4.6: Modulo Transform de 3D-Slicer

Figura 4.7: Lınea AC-PC

tambien llamado centro de gravedad en la bibliografıa (Shiva Keihaninejad et al.[23]).

Aunque el centro del cerebro es el punto que deberıamos emplear en el algoritmo,suele ocurrir que los mejores resultados no se consiguen con el centro exacto, sinocon puntos relativamente proximos, lo que implica aplicar varias veces el algoritmopara conseguir los resultados adecuados. Sin embargo, siempre comenzamos a probarel algoritmo por el centroide del cerebro, que se ubica de forma aproximada en elcentro del septo pelucido del cerebro, tal y como podemos ver en la figura 4.10.

Ademas del centro de gravedad, para la aplicacion de BET tambien debemosescoger el umbral de intensidad (opcion -f en la funcion). Como ya vimos en 2.2.3,esta opcion representa la agresividad de la extraccion. Puesto que nosotros queremosuna extraccion gruesa, no demasiado refinada, escogemos valores bajos del umbral.Para la mayorıa de las imagenes hemos escogido un valor de 0.25, pero algunas hanrequerido valores de hasta 0.4 para conseguir una extraccion aceptable.

Page 55: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.5. CORRECCION DEL SESGO MAGNETICO. SEGUNDA EXTRACCION DEL CRANEO37

(a) Imagen original (b) Imagen rotada con lınea AC-PC (c) Imagen con rotacion libre

Figura 4.8: Comparacion entre los dos tipos de rotaciones para la imagen 000 S 0413

El script de MATLAB que hemos usado para esta extraccion se muestra en lafigura 4.11 (ver documentacion del codigo en el Anexo B, runfsl BET.m) y aplicael algoritmo a los sujetos que aparezcan en el archivo de texto filename. Como yavimos en la seccion 4.2 (figura 4.3), los archivos de texto contienen el identificador delos pacientes (sujetos.textdatai) y las tres coordenadas del centro del cerebro(sujetos.data(i,1:3)).

Las imagenes resultantes de la primera eliminacion de craneo tienen el formatoADNI * braintmp.nii.gz y son las imagenes de entrada para la siguiente etapa. Semuestra un ejemplo del resultado obtenido en la figura 4.12.

4.5. Correccion del sesgo magnetico. Segunda extraccion delcraneo

En esta etapa vamos a corregir el sesgo magnetico de la imagen y a realizar elsegundo proceso de Skull-Stripping para conseguir eliminar definitivamente el craneode la imagen.

Como ya vimos en la seccion 2.2.4, la aparicion del sesgo magnetico es una conse-cuencia directa del metodo de adquisicion de las imagenes de resonancia magnetica.El sesgo magnetico se muestra como una falta de homogeneidad en la intensidadde la imagen, dando lugar a zonas muy oscuras o muy claras en las que resultacomplicado distinguir los tejidos, llegando a ser imposible en muchos casos. En lafigura 4.13 podemos ver ejemplos de este defecto.

Para corregir el sesgo magnetico, aplicamos el algoritmo FAST a la imagen resul-tante del primer SkullStripping (seccion 4.4). Utlizamos una imagen con el craneoeliminado para que las intensidades del tejido no cerebral no influyan en la correc-cion. La imagen resultante de FAST es una estimacion del campo de intensidadesde la imagen. Esta estimacion se aplica a la imagen original (la que tiene tejido nocerebral) para corregir el sesgo. El codigo de MATLAB empleado se muestra en lafigura 4.14 (ver documentacion del codigo en el Anexo B, runfsl BET.m).

Las imagenes de entrada tienen el formato ADNI * braintmp.nii.gz, la estimaciondel sesgo tiene el formato ADNI * braintmp bias.nii.gz y la imagen corregida el

Page 56: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

38 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

1 %% Transform an image using a transformation matrix2

3 comandflirt = 'flirt';4 transfMatrices=dir(strcat(pathTransformMatrices,'ADNI*.mat'))5 dim = size(transfMatrices,1);6

7 for i=1:dim8 % Input and output images9 inputimg = strcat(pathOriginalImages,transfMatrices(i).name(1:end−14),'.nii.gz');

10 in = strcat('−in',32,inputimg);11 outputimg = strcat(pathRotatedImages,transfMatrices(i).name(1:end−14),...12 ' rot.nii.gz');13 output = strcat('−o',32,outputimg);14

15 % FLIRT options16 options=strcat('−init',32,pathTransformMatrices,transfMatrices(i).name,32,...17 '−datatype short −interp nearestneighbour −dof 12 −applyxfm');18

19 % Reference image20 refimg = inputimg;21 ref = strcat('−ref',32,refimg);22

23 linecommand = sprintf('%s %s %s %s %s',comandflirt,in,ref,output,options)24 disp(linecommand)25 system(linecommand)26 end

Figura 4.9: Fragmento del script en el que se aplica la matriz de transformacion con FLIRT

formato ADNI * biascorrected.nii.gz, la cual es la imagen de entrada para el segundoSkull-Stripping. El resultado de la correccion del sesgo puede verse en la figura 4.15.

Por otra parte, en esta etapa tambien llevamos a cabo la segunda extraccion detejido no cerebral. Esta extraccion es muy similar a la primera (seccion 4.4) puestoque el punto que escogimos como centro en el caso anterior tambien es valido ahora.La unica diferencia esta en el umbral de intensidades (-f), puesto que para conseguirun resultado mas refinado hay que efectuar una eliminacion mas agresiva, lo queimplica aumentar el valor de dicho umbral. Nosotros hemos utilizado valores entre0.3 y 0.6 dependiendo del umbral que hubiesemos puesto en la primera extraccion yen las caracterısticas particulares de cada imagen. El codigo de MATLAB empleadoes identico al de la figura 4.11.

Las imagenes de entrada son las que se generaron en la correccion del sesgomagnetico (ADNI * biascorrected.nii.gz), mientras que las imagenes de salida tie-nen el formato ADNI * brain.nii.gz. En la figura 4.16 se puede ver el resultado delsegundo Skull-Stripping.

4.6. Transformacion al espacio normalizado

En esta etapa vamos a aplicar una transformacion a todas las imagenes parallevarlas a un espacio comun.

Las imagenes obtenidas de ADNI y el protocolo armonizado (HHP) no son image-nes homogeneas. Tienen distintos tamanos, tanto de la imagen como del voxel (Spa-cing), ası como distinas intensidades de campo y han sido tomadas con maquinas

Page 57: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.6. TRANSFORMACION AL ESPACIO NORMALIZADO 39

Figura 4.10: Ubicacion del septo pelucido (cırculo azul) y del centroide del cerebro (interseccionentre las rectas amarillas) para el paciente 127 S 0393

1 %% Primer BET2

3 sujetos = importdata(filename,' ');4 num suj = size(sujetos.data,1);5 umbral = input('Introduce el valor del umbral (f): ');6

7 for i = 1:num suj8 inputimg = strcat(pathImgFiles,'ADNI ',sujetos.textdatai);9 outputimg = strcat(pathResultImg,'ADNI ',sujetos.textdatai,' braintmp');

10

11 linecommand = sprintf('bet %s %s −c %d %d %d −f %s',inputimg,outputimg,...12 sujetos.data(i,1),sujetos.data(i,2),sujetos.data(i,3),sprintf('%1.2f',umbral));13 disp(linecommand)14 system(linecommand);15 end

Figura 4.11: Fragmento del script en el que se hace la llamada a BET

diferentes. En estas condiciones, es imposible comparar unas imagenes con otras yutilizarlas como base de atlas.

Por este motivo, es importante llevar todas las imagenes a un mismo espacio, conel objetivo de que todas tengan las mismas dimensiones y rango de intensidades. Elespacio comun puede ser el de una de las imagenes del conjunto, como la imagen queofrece mayor solapamiento (DICE) con el resto, o puede ser otro totalmente distinto.En el caso del protocolo ENIGMA, se utiliza el espacio normalizado definido por elcerebro MNI152 (ver figura 4.17). Esta es una imagen probabilıstica formada porla union de imagenes de resonancia magnetica de un gran conjunto de sujetos. Poreste motivo, este cerebro representa mejor a la poblacion que otros.

Para transformar las imagenes al espacio normalizado utilizamos la herramientaFLIRT para registrar la imagen a transformar con el cerebro MNI152. Como resul-tado obtendremos la imagen normalizada y la matriz de transformacion que se ha

Page 58: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

40 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

(a) Imagen original (b) Imagen resultante

Figura 4.12: Resultado del primer Skull-Stripping para el paciente 127 S 0393

(a) Zona muy oscura en el paciente 002 S 0559 (b) Zona muy clara en el paciente 131 S 0384

Figura 4.13: Ejemplos de sesgo magnetico en imagenes MRI

aplicado, la cual necesitaremos mas adelante. El script de MATLAB empleado paraefectuar la normalizacion se muestra en la figura 4.18 (ver documentacion del codigoen el Anexo B, runfsl flirt.m).

Las imagenes de entrada tienen el formato ADNI * brain.nii.gz. Por su parte, lasimagenes de salida tienen el formato ADNI * brain norm.nii.gz, y las matrices detransformacion ADNI * brain norm.mat. En la figura 4.19 se muestra el resultadode transformar las imagenes al mismo espacio, puediendo observar que el tamano yla intensidad de la imagen son distintos una vez hecho el registro. Una vez hecho estepaso, ya podemos considerar que tenemos completadas las imagenes MRI, quedandounicamente el procesamiento de las etiquetas.

Page 59: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.7. PROPAGACION DE LAS TRANSFORMACIONES A LAS ETIQUETAS 41

1 %% Primer FAST2

3 % Estimacion del sesgo4 for i = 1:num suj5 inputimg2 = strcat(pathResultImg,'ADNI ',sujetos.textdatai,' braintmp');6

7 linecommand = sprintf('fast −b −−nopve %s',inputimg2);8 disp(linecommand)9 system(linecommand);

10 end11

12 % Correccion del sesgo13 for i = 1:num suj14 inputimg3 = strcat(pathImgFiles,'ADNI ',sujetos.textdatai);15 input bias= strcat(pathResultImg,'ADNI ',sujetos.textdatai,' braintmp bias');16 output biascorrected = strcat(pathResultImg,'ADNI ',sujetos.textdatai,...17 ' biascorrected');18

19 linecommand = sprintf('fslmaths %s −div %s %s',inputimg3,input bias,...20 output biascorrected);21 disp(linecommand)22 system(linecommand);23 end

Figura 4.14: Fragmento del script en el que se hace la correccion del sesgo magnetico

(a) Skull-Stripping1 (b) Estimacion del sesgo (c) Imagen corregida

Figura 4.15: Resultados de la correccion del sesgo magnetico para el paciente 127 S 0393

4.7. Propagacion de las transformaciones a las etiquetas

En la seccion 4.6 ya hemos acabado de procesar las imagenes MRI de los sujetosde ADNI-HHP. Sin embargo, para que podamos utilizar estas imagenes como atlas,tenemos que tener unas etiquetas que coincidan con ellas. Para esto, tenemos queaplicar los pasos descritos en las secciones 4.3 y 4.6 a los etiquetados del hipocampo.Evidentemente, no tenemos que aplicar ninguna de las dos iteraciones de BET (Skull-Stripping) ni la correccion del sesgo magnetico (bias correction) a las etiquetas,puesto que en ellas no hay craneo para eliminar ni faltas de homogeneidad quecorregir.

En definitiva, el objetivo es transformar todas las etiquetas al espacio normalizadoMNI152. Para ello, hemos utilizado las matrices de transformacion de las que yadisponıamos por haber procesado las imagenes de los cerebros. El codigo tambien es

Page 60: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

42 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

(a) Imagen original (con correccion de sesgomagnetico)

(b) Imagen resultante

Figura 4.16: Resultado del segundo Skull-Stripping para el paciente 127 S 0393

Figura 4.17: Atlas probabilıstico MNI152.nii.gz

muy similar al que usamos en las etapas anteriores, aunque en nuestro caso hemostenido que duplicarlo, ya que tenemos las etiquetas de los hipocampos izquierdoy derecho en diferentes ficheros. Las transformaciones que hay que aplicar a lasetiquetas se resumen en la figura 4.20.

En la figura 4.21 se muestra el resultado de todo el proceso para un paciente queno ha requerido reorientacion con 3DSlicer, mientras que en la figura 4.22 se muestrael resultado para un paciente que sı que ha necesitado una rotacion previa.

Llegados a este punto, se detecto un problema durante la propagacion de lastransformaciones a las etiquetas. El problema consistıa en que las etiquetas resul-tantes tras la transformacion estaban vacıas o se habıan transformado de formaerronea. Puesto que no se consiguio localizar el error, procedimos a cambiar de vi-sualizador, de BrainSuite14 volvimos a pasar a BrainSuite11. Al hacer esto, se vioque el programa no permitıa visualizar correctamente las etiquetas, posiblementedebido a algun problema con la cabecera de la imagen.

Para resolver esto, abrimos las etiquetas con BrainSuite14, donde no presentabanningun error, y las guardamos como volumen primario. En este paso aprovechamos

Page 61: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.8. CALCULO DEL ICV E INDICES DICE 43

1 %% FLIRT2

3 for i=1:numel(listImgFiles)4 % Outputs5 ResultingFile = strcat(listImgFiles(i).name(1:end−7),' norm.nii.gz');6 ResultingMatrix = strcat(listImgFiles(i).name(1:end−7),' norm.mat');7

8 % Strings for the function9 input = strcat('−in',32,pathImgFiles,listImgFiles(i).name);

10 output= strcat('−out',32,pathResulImg,ResultingFile);11 options=strcat('−omat',32,pathResulMat,ResultingMatrix,32,'−datatype short');12

13 % Function call14 lineCommand = sprintf('flirt %s %s %s %s',input,ref,output,options);15 fprintf('%s\n',lineCommand);16 system(lineCommand);17 end

Figura 4.18: Fragmento del script en el que se hace la transformacion al espacio normalizadoMNI152

(a) Skull-Stripping2 (b) Cerebro MNI152 (c) Imagen normalizada

Figura 4.19: Resultados de la transformacion al espacio normalizado para el paciente 127 S 0393

tambien para pasarlas al formato comprimido .nii.gz. Una vez guardadas las eti-quetas, podemos abrirlas con BrainSuite11 y comprobar que se visualizan perfecta-mente. En la figura 4.23 se muestra la comparacion entre la etiqueta erronea y lacorregida. Se puede ver que en la erronea las caracterısticas de la imagen no estabandefinidas. Al guardarla mediante BrainSuite14, se resuelve este problema.

4.8. Calculo del ICV e ındices DICE

Una vez que hemos procesado todas las imagenes y sus etiquetas, ya tenemos losatlas para la base de datos. Sin embargo, aun es posible que alguno de los pasoshaya salido mal y haya que repetir el proceso. Para comprobar los resultados vamosa utilizar el ındice DICE para comparar los resultados obtenidos con el ground truth.

El ground truth de que disponemos son las imagenes y las etiquetas originales enel espacio nativo. Para compararlo con los atlas que hemos obtenido como resultado,vamos a aplicar las mismas transformaciones que hemos usado para pasar al espacionormalizado, pero esta vez vamos a aplicar la inversa de las matrices. De esta forma,podemos devolver las imagenes y las etiquetas al espacio nativo. Si el DICE no es

Page 62: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

44 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

Figura 4.20: Transformaciones a aplicar a las etiquetas: las etiquetas correspondientes a imagenesque hayan requerido rotacion libre deben ser transformadas primero al espacio rotado, mientrasque las etiquetas que corresponden a imagenes bien orientadas se transforman directamente alespacio normalizado.

(a) Atlas en el espacio nativo (con Skull-Stripping aplicado)

(b) Atlas final en el espacio normalizado

Figura 4.21: Resultados de la propagacion de etiquetas para el paciente 127 S 0393 (sin reorienta-cion)

muy proximo a 1, eso significa que ha habido algun fallo en el procesamiento.

En la figura 4.24 podemos ver el codigo de MATLAB para la obtencion de lamatriz inversa a partir de la matriz de transformacion original. Despues, la aplicamosa la imagen con un script similar al que usamos para rotar las imagenes que requerıanreorientacion, el cual se muestra en la figura 4.9 (ver documentacion del codigo enel Anexo B, runfsl inv flirt.m).

Una vez hemos aplicado las matrices inversas y tenemos las imagenes de vueltaen el espacio nativo, calculamos el ındice DICE con el script que se muestra en lafigura 4.25 (ver documentacion del codigo en el Anexo B, test affineRegistration.m).La funcion dice() calcula el ındice DICE entre las imagenes que se pasan comoparametros. Su definicion se muestra en la figura 4.26.

Tambien hemos calculado el DICE entre la imagen obtenida mediante el procesoENIGMA y la imagen de referencia MNI152, puesto que el objetivo es que los atlasse parezcan los mas posible al MNI152. En este caso los DICE seran mucho menoresporque las imagenes son distintas. Sin embargo, si vemos algun DICE demasiadobajo, esto podrıa indicar tambien que el atlas correspondiente presenta algun defecto.

Page 63: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.9. RESULTADOS 45

(a) Atlas en el espacio nativo (sinSkull-Stripping)

(b) Atlas en el espacio rotado (conSkull-Stripping aplicado)

(c) Atlas final en el espacio norma-lizado

Figura 4.22: Resultados de la propagacion de etiquetas para el paciente 002 S 0413 (con rotacionlibre)

(a) Caracterısticas de la etiqueta erronea (b) Caracterısticas de la etiqueta corregida

Figura 4.23: Comparacion entre el etiquetado erroneo y el etiquetado corregido

Por ultimo, en esta etapa vamos a calcular tambien el volumen intracraneal (ICV)de los atlas en el espacio nativo, es decir, justo despues de aplicar el segundo Skull-Stripping. Para ello, contaremos el numero de voxeles de la imagen con un valordistinto de cero y lo multiplicaremos por el volumen del voxel. Este volumen vienedado por el producto de las tres coordenadas del spacing de la imagen. Siguiendo elmismo procedimiento podemos calcular el volumen de los dos hipocampos con lasetiquetas. En la figura 4.27 se muestra el codigo utilizado para estos calculos (verdocumentacion del codigo en el Anexo B, obtainICV.m).

4.9. Resultados

Se ha aplicado el protocolo ENIGMA a las 134 imagenes y etiquetas de las ini-ciativas ADNI y HHP (ver seccion 3.4). Al inspeccionar las imagenes (ver seccion4.3), detectamos que en 3 pacientes las etiquetas del hipocampo no coincidıan conla imagen original (defecto mostrado en la figura 4.4). Como ya se ha comentado, lopaciente correspondientes a estas etiquetas se han eliminado del conjunto final.

Por otra parte, debido a las peculiaridades de algunas imagenes, el protocolo

Page 64: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

46 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

1 %% Obtain the inverse matrix2 for i=1:numel(transfMatrices)3 outputFile = strcat(pathTransformMatrices,'inv ',transfMatrices(i).name);4 inputFile = strcat(pathTransformMatrices,transfMatrices(i).name);5 comandLine = strcat('convert xfm',32,'−omat',32,outputFile,32,...6 '−inverse',32,inputFile);7

8 fprintf('%s\n',comandLine);9 system(comandLine);

10 end

Figura 4.24: Fragmento del script en el que se obtiene la matriz de transformacion inversa

ha fallado en la etapa de la segunda eliminacion del craneo (ver seccion 4.5). Lasimagenes resultantes del segundo Skull-Stripping para estos pacientes presentabandefectos insalvables, por lo que hemos decidido retirar tambien las tres imagenes coneste problema de la base de atlas definitiva.

Para los atlas en los que se ha aplicado el protocolo ENIGMA con exito (untotal de 128), se han calculado los ındices DICE (ver seccion 4.8) y se ha repetido elprotocolo para aquellos que presentaran valores de DICE inusualmente bajos. Hemosconsiderado valores bajos los que no cumplıan con las siguientes condiciones:

DICE entre la imagen nativa y la inversa: inferior a 0.95.

DICE entre las etiquetas nativas y las inversas: inferior a 0.96.

DICE entre la imagen normalizada y la MNI152: inferior a 0.90.

Una vez hemos corregido los posibles errores y conseguido unos ındices DICEadecuados, aplicamos metodos de segmentacion automatica en modalidad leave oneout para obtener una segmentacion automatica de cada paciente utilizando el restocomo atlas. La segmentacion obtenida se ha comparado con el etiquetado originaldel atlas (ground truth) para comprobar que su DICE sea muy elevado. Para los dospacientes en los que el DICE ha sido bajo, los hemos retirado de la base de datosdefinitiva.

Realizadas ya todas las posibles comprobaciones, hemos formado la base de atlasdefinitiva con todos los atlas que no han sido rechazados. Se han rechazado 8 image-nes, por lo que el tamano de la base final es de 126 atlas. En la tabla 4.1 se muestraun resumen de los resultados de DICE obtenidos.

DICE Mınimo Maximo Media Mediana Desv. Estandar

NatImg-inv 0,974 0,982 0,979 0,979 0,002NormImg-MNI152 0,914 0,955 0,940 0,941 0,008

NatLabelL-inv 0,967 1,000 0,993 0,996 0,007NatLabelR-inv 0,967 1,000 0,993 0,995 0,007

Tabla 4.1: Resultados del ındice DICE para la base de atlas ADNI-HHP definitiva

En cuanto al calculo del ICV y el volumen del hipocampo, a continuacion sepresenta un ejemplo de los resultados para el paciente 003 S 0907.

Page 65: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

4.9. RESULTADOS 47

1 %% DICE Native−Inv2

3 % DICE score between the images in the native space and the normalized4 % images changed back to the normalized space5 listNativeImg = dir(strcat(nativeImgPath, '*.nii.gz'));6 listInvSpatNorm = dir(strcat(invSpatNormPath, '*.nii.gz'));7 fileID1 = fopen('DICE Scores Native−Inv3.txt','w');8

9 for i=1:numel(listImgSpatNorm)10 fprintf(fileID1,'%s %s:',listNativeImg(i).name,listInvSpatNorm(i).name);11

12 % Load the native image13 [targetImage,˜,˜,˜,˜] = MedicalVolumeLoaderITKMEX(...14 strcat(nativeImgPath,listNativeImg(i).name));15 label nat=targetImage>0;16

17 % Load the normalized image that has been inverted18 [targetImage,˜,˜,˜,˜] = MedicalVolumeLoaderITKMEX(...19 strcat(invSpatNormPath,listInvSpatNorm(i).name));20 label inv=targetImage>0;21

22 % Obtain the overlap index (DICE)23 dice train(i,1)=dice(label nat,label inv);24 dice train(i,1)25

26 % Print the result to a text file27 fprintf(fileID1,' %.3f\n\r',dice train(i,1));28 end29 fclose(fileID1);

Figura 4.25: Fragmento del script en el que se calcula el DICE entre la imagen nativa y la imagennormalizada que ha sido devuelta al espacio nativo.

1 dice=@(X,Y) 2* sum(X(:) & Y(:))/sum(X(:)+Y(:));

Figura 4.26: Definicion de la funcion para calculo del DICE

ICV: 1292880,00 mm3.

Volumen del hipocampo izquierdo: 3071,242 mm3.

Volumen del hipocampo derecho: 3014,992 mm3.

En el anexo A se muestra un desglose de los datos demograficos de los 126 pa-cientes de la base definitiva (ver tabla A.2), ası como de los resultados obtenidospara el DICE, el ICV y el volumen de los dos hipocampos (ver tabla A.3).

Page 66: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

48 CAPITULO 4. APLICACION DEL PROTOCOLO ENIGMA A ATLAS DE ADNI-HHP

1 %% Compute the ICV2 fileID = fopen('ICV3.txt', 'w');3 listBrainImg = dir(strcat(pathBrainImg,'*.nii.gz'));4

5 for i=1:numel(listBrainImg)6 % Load the brain image7 [img,spacing,˜,˜,˜] = MedicalVolumeLoaderITKMEX(...8 strcat(pathBrainImg, listBrainImg(i).name));9

10 % Compute the intracraneal volume11 unitVolume = spacing(1) * spacing(2) * spacing(3);12 index = img > 0;13

14 icv(i,1) = unitVolume * numel(img(index));15 fprintf(fileID,'%s: %.2f\n', listBrainImg(i).name, icv(i,1));16 end17 fclose(fileID);

Figura 4.27: Fragmento del script para el calculo del ICV

Page 67: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Capıtulo 5

Tecnicas de patch-labeling

5.1. Objetivo

En este capıtulo nos hemos centrado en un metodo de registro no rıgido especıficoque utiliza tecnicas de etiquetado con patches en combinacion con tecnicas de regis-tro no rıgido (atlas-warping). El objetivo del capıtulo es el estudio y la optimizaciondel metodo propuesto por Platero [24] utilizando para ello funciones MEX.

5.2. Descripcion del algoritmo

Platero [24] propone un metodo de segmentacion que combina una primera fasede registro no rıgido y una segunda fase de patch-labeling con el objetivo de mejorarlas segmentaciones y a la vez reducir el tiempo de ejecucion del algoritmo.

En la primera etapa del algoritmo propuesto, se registran de forma no rıgida unconjunto de atlas en el espacio de la imagen paciente usando atlas-warping. Des-pues, se aplica un metodo de fusion de etiquetas basado en la minimizacion de unafuncion pseudo-booleana basada en cortes de grafos. Esta funcion tiene informacionde apariencia, forma y contexto, y se define de la siguiente forma:

E(S) =∑x∈Ω

ψx(S(x); θ1(I,A)) + λ∑x,y∈E

ψxy(S(x), S(y); θ2(I)) (5.1)

Donde (θ1, θ2) son los parametros del modelo y λ un parametro ajustable quedetermina la incidencia relativa de los potenciales de orden uno y los potencialesde orden dos. El primer termino se refiere a los potenciales de orden uno (ψx),que contienen informacion sobre la forma y la intensidad, mientras que el segundotermino hace referencia a los potenciales de orden dos (ψxy), que recogen informacionsobre el entorno, actuando como termino de suavizado.

En la segunda etapa del algoritmo, se utiliza la segmentacion conseguida en elpaso anterior en el etiquetado con patches. Se utiliza otro conjunto de atlas, regis-trados esta vez de forma afın, y se seleccionan los patches mas apropiados utilizandouna medida de similitud basada en la intensidad y en el etiquetado. La medida desimilitud se define en la figura 5.1.

49

Page 68: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

50 CAPITULO 5. TECNICAS DE PATCH-LABELING

Figura 5.1: Medida de similitud para los patches

Esta medida de similitud considera la media y la desviacion tıpica del patchobjetivo y el considerado, tanto para la imagen como para la etiqueta. El patch seselecciona si ss es mayor que el umbral al cuadrado. En los experimentos, el umbraltoma un valor de 0.85. Una vez seleccionados los patches, se calcula una estimaciondel etiquetado con multi-point.

En esta seccion se propone realizar una optimizacion del codigo original utilizandofunciones MEX para reducir el tiempo de ejecucion del programa. La parte del codigoque vamos a optimizar es la seccion en la que se realiza el multi-point.

Para ello, en primer lugar enviamos todas las variables que nos hagan falta aC++ mediante la MEX (imagenes, lista de patches, spacing y el umbral, entreotros). Despues recorremos la lista de los patches (dados por su punto central), yobtenemos todos los voxeles que forman parte del patch utilizando el radio de lospatches.

A continuacion, recorremos todos los voxeles del patch y calculamos la medida desimilitud. Si es mayor que el umbral, calculamos la diferencia entre la intensidad delvoxel y la del centro del patch. Hacemos lo mismo para la segmentacion y hacemosla fusion de etiquetas mediante nonlocal means.

Ademas de intentar optimizar todo el codigo de C++, se ha utilizado la parale-lizacion con OpenMP del bucle que recorre todos los centros de los patches, ya quees el bucle con mayor carga computacional de todo el programa.

5.3. Resultados

Se han comparado los resultados obtenidos con el programa original y los ob-tenidos aplicando la funcion MEX parDLM. Se ha utilizado un umbral de 0.85, untamano de voxel de 0.9375x1.5x0.9375 mm3 y un radio del patch de 3x1.5x3 mm,con lo que el tamano del patch es de 4x2x4 voxeles. Para esta prueba se han obtenidolos DICE de dos regiones de interes para 18 imagenes utilizado en la fusion 2 atlas.

La llamada a la funcion parDLM desde MATLAB se muestra en la figura 5.2. Elparametro numPixels es el numero de voxeles que se han seleccionado y que van aservir como centro de los patches. Los parametros Xint, Yint y Zint son vectoresde numPixels elementos que conforman las coordenadas de los voxeles escogidos. Elvector [nxint, nyint, nzint] contiene las dimensiones de la imagen.

Por otra parte, el vector de estructuras patches representa el conjunto de atlascon los que estamos trabajando, mientras que la estructura patchTarget contiene

Page 69: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

5.3. RESULTADOS 51

la imagen del paciente objetivo. El valor long vector representa el numero total devoxeles que contiene el patch. El umbral thresh representa el valor a partir del cualse selecciona el patch (se usa el umbral al cuadrado). La variable numAllPachtes

contiene el producto del numero total de voxeles en un patch por el numero de atlasutilizados. Por ultimo, el vector qint representa el radio del patch medido en numerode voxeles en cada una de las tres dimensiones (ver documentacion del codigo en elanexo C).

1 d i s t l a b e l s = parDLM( numPixels , Xint , Yint , Zint , [ nxint , nyint , nz in t] , patches , patchTarget , l ong vec to r , thresh , numAllPacthes ,q in t ) ;

Figura 5.2: Llamada desde MATLAB a la funcion parDLM

Los resultados obtenidos para el programa original y para el programa propuestocon funcion MEX se muestran en las figuras 5.3 y 5.4.

(a) Programa original (solo MATLAB) (b) Programa propuesto (con MEX)

Figura 5.3: Prueba 1: Resultados obtenidos

Como es logico, el programa propuesto ofrece los mismos resultados de DICE queel original. En cuanto al tiempo de ejecucion, ambos programas tardan aproxima-damente lo mismo en obtener los 36 DICE, por lo que no podemos considerar quehayamos mejorado el codigo original.

Se propone seguir trabajando en el tema para reducir mas el tiempo de ejecucion.

Page 70: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

52 CAPITULO 5. TECNICAS DE PATCH-LABELING

(a) Programa original (solo MATLAB) (b) Programa propuesto (con MEX)

Figura 5.4: Prueba 2: Resultados obtenidos

Page 71: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Conclusiones

Se presenta a continuacion un breve repaso de los contenidos que se han tratadoen el proyecto, ası como las conclusiones que se han alcanzado y las futuras lıneasde trabajo que se preven.

Conclusion

En este proyecto se han seguido dos lıneas de trabajo enfocadas a mejorar dis-tintos elementos del proceso de segmentacion de imagenes de resonancia magneticapara pacientes de Alzheimer. Por un lado, se ha buscado generar una base de atlaspara enfermedad de Alzheimer utilizando los protocolos ADNI, HHP y ENIGMA.Por otra parte, se han estudiado las tecnicas convencionales de patch-labeling con elobjetivo de compararlas con el metodo propuesto.

La base de atlas generada consta de 126 pacientes con amplia diversidad dediagnosticos, desde pacientes sanos hasta enfermos de Alzheimer, pasando por dosgrados de deterioro cognitivo leve (MCI). Ademas, se incluyen pacientes de diferentesedades entre los 60 y los 90 anos. Todo esto hace que la base de atlas sea muy robustay representativa de todos los segmentos de la poblacion. Una base robusta y flexiblesupone que va a funcionar muy bien para una gran cantidad de pacientes. Esto nosbeneficia a la hora de utilizar esta base en el diagnostico de otros pacientes.

Por otra parte, para el metodo de patch-labeling propuesto, se ha trabajadoen incrementar su eficiencia adaptando una de las funciones originales, escrita enMATLAB, a una funcion MEX, escrita en C++. Aunque no se ha conseguido redu-cir en gran medida el tiempo de ejecucion, sı que se ha completado la adaptacion afuncion MEX, lo que da pie a seguir mejorandola.

Desarrollos futuros

El presente trabajo ha abierto nuevas posibilidades de trabajo en el marco de laingenierıa biomedica. La base de atlas ha permitido generar segmentaciones automa-ticas para imagenes para las que no se disponıa de ella (imagenes del Proyecto Va-llecas). Utilizando esta base se pretende, como ya se comento en la introduccion,obtener un diagnostico precoz del avance de la enfermedad de Alzheimer.

Por otra parte, en el tema del patch-labeling no se han conseguido grandes re-sultados, pero sı que se ha completado la conversion del codigo original. Esto da

53

Page 72: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

54 CONCLUSIONES

la posibilidad de continuar el proceso de optimizacion y probar otros metodos paramejorar la eficiencia del algoritmo.

En definitiva, este proyecto ha contribuido con mejoras en el proceso de seg-mentacion de imagenes de pacientes de Alzheimer y permitira en un futuro obtenerdiagnosticos tempranos de la enfermedad mas acertados.

Page 73: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Anexos

55

Page 74: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e
Page 75: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Anexo A

Lista de pacientes ADNI-HHP

SexFemale 0Male 1

Diagnosis

Normal 0MCI 1

LMCI 2AD 3

RotatedNot rotated 0

Rotated 1

Tabla A.1: Leyenda para la tabla A.2

ImageID SubjectID Sex Age Diagnosis MMSE Score Rotated

13722 002 S 0295 1 84.9 0 28 0

14437 002 S 0413 0 76.4 0 29 1

147119 002 S 0559 1 82.5 0 29 1

18211 002 S 0685 0 89.7 0 30 1

153075 002 S 0729 0 68.3 2 23 1

20519 002 S 0782 1 81.7 1 29 1

49010 002 S 0816 1 71.5 3 26 0

25952 002 S 0938 0 82.3 3 23 0

108600 002 S 0954 0 71.1 1 27 0

130146 002 S 1070 1 75.8 1 19 0

274154 002 S 1155 1 63 2 29 0

223901 002 S 1261 0 75.3 0 30 0

233435 002 S 1280 0 75.1 0 28 0

257270 002 S 4225 1 70 0 0

25737 003 S 0907 0 88.8 0 30 0

54988 003 S 0908 0 63 2 29 1

57

Page 76: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

58 ANEXO A. LISTA DE PACIENTES ADNI-HHP

ImageID SubjectID Sex Age Diagnosis MMSE Score Rotated

26236 003 S 0931 0 86.2 0 28 0

31613 003 S 1057 0 61.4 2 26 0

29252 003 S 1059 0 84.6 3 25 0

32035 003 S 1074 0 85.2 2 28 1

32044 003 S 1122 0 76.8 2 28 0

42137 003 S 1257 1 85.1 3 20 0

250173 003 S 4136 1 66.8 3 0

11604 005 S 0221 1 67.5 3 20 0

11299 005 S 0222 1 86 1 25 0

66117 005 S 0602 1 72.1 0 30 0

43188 005 S 1341 0 71.7 3 24 1

17197 006 S 0322 1 65.7 1 30 1

258594 006 S 4192 1 82.4 3 0

279470 006 S 4449 0 67 0 0

9602 007 S 0101 1 73.7 2 27 0

10007 007 S 0128 0 64.2 1 29 1

269929 007 S 4387 0 76.2 0 0

24339 009 S 0842 1 73.7 0 28 0

25128 009 S 0862 0 73.5 0 30 0

28514 009 S 1030 1 67.6 2 28 0

106775 009 S 1334 1 64.9 3 22 0

9093 010 S 0067 1 74.6 0 27 0

15415 010 S 0419 1 70.3 0 30 0

184305 010 S 0422 1 64.9 1 28 0

7025 011 S 0002 1 74.5 0 28 0

7071 011 S 0005 1 73.8 0 29 0

8460 011 S 0010 0 74 3 24 1

7302 011 S 0016 1 65.5 0 28 0

196077 011 S 0021 0 77.7 0 29 0

11673 011 S 0183 0 72.5 3 21 0

11812 011 S 0241 1 81.9 1 27 1

24603 011 S 0856 1 60.4 1 27 0

114357 012 S 0689 1 65.7 3 10 0

99896 012 S 1292 1 77.4 1 21 1

Page 77: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

59

ImageID SubjectID Sex Age Diagnosis MMSE Score Rotated

99348 012 S 1321 1 84.3 1 28 0

85153 013 S 0325 0 72.4 1 28 0

23618 013 S 0592 1 78.2 3 23 0

220072 013 S 1186 1 87.4 2 26 0

43134 013 S 1276 0 71.9 0 30 0

308178 013 S 4731 0 82.8 0 0

46724 016 S 0769 1 62.9 1 27 0

28391 016 S 0991 0 86.4 3 21 1

66853 016 S 1138 1 68.1 1 25 0

42082 016 S 1263 0 64.9 3 26 0

108829 018 S 0425 1 88 0 27 0

301389 018 S 4696 0 73.1 3 0

300349 019 S 4252 0 87.2 3 19 0

300335 019 S 4549 1 79.1 3 0

12299 020 S 0213 1 63.1 3 24 1

99327 020 S 1288 1 61.1 0 30 0

82079 023 S 0030 0 82.1 1 22 0

128980 023 S 0031 0 81 0 29 1

132164 023 S 0061 0 80.3 0 28 1

19846 023 S 0139 0 66.4 3 24 0

25659 023 S 0331 0 65.2 2 24 0

143043 023 S 0376 1 73.6 2 29 1

32972 023 S 0604 1 87.1 1 23 0

118643 023 S 0916 1 81.8 3 13 0

116065 023 S 1247 0 74.1 1 23 0

67303 023 S 1289 0 78 3 23 0

90149 027 S 1081 1 85.7 3 23 0

138509 027 S 1385 0 71.6 3 23 0

30359 029 S 1073 0 65.8 1 27 1

285589 029 S 4385 0 68.4 0 0

135743 031 S 1209 0 74.2 3 25 0

30884 032 S 0479 0 74.1 0 30 0

26005 032 S 0677 1 71.2 0 1

51074 037 S 0303 1 85.4 0 29 1

Page 78: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

60 ANEXO A. LISTA DE PACIENTES ADNI-HHP

ImageID SubjectID Sex Age Diagnosis MMSE Score Rotated

53780 067 S 0812 0 72.3 3 17 0

65946 067 S 1185 1 62.7 3 16 0

73490 067 S 1253 0 63.3 3 21 0

10365 073 S 0089 1 65.2 0 30 0

93762 082 S 1079 1 78.7 3 23 0

98699 094 S 1293 1 78.2 1 28 0

272146 094 S 4089 1 74.3 3 22 1

10146 098 S 0149 1 87.8 3 20 0

11398 098 S 0172 0 70.7 0 29 0

142392 100 S 0006 0 83.9 1 22 0

141436 100 S 0015 1 84.4 0 30 1

150336 100 S 0047 1 88.5 0 30 0

157893 100 S 0892 0 75.9 2 19 0

141468 100 S 0995 0 81 1 21 0

141448 100 S 1062 1 84.4 3 28 0

139571 100 S 1286 0 77.8 0 28 1

8648 123 S 0050 1 77.7 1 26 0

9753 123 S 0072 1 70.7 0 28 0

9788 123 S 0088 1 65.7 3 21 0

17569 123 S 0091 1 63 3 25 0

17517 123 S 0094 0 71.3 3 20 0

10127 123 S 0106 0 73.3 0 30 0

10738 123 S 0108 1 78.4 2 27 0

28627 123 S 0162 1 72.6 3 28 0

53427 123 S 0390 1 81.6 1 29 0

43214 123 S 1300 0 73.6 2 28 0

37834 126 S 0606 0 69.1 3 25 0

25775 126 S 0784 0 76 3 23 0

65796 126 S 1340 0 82.6 1 1

11888 127 S 0259 1 70.7 0 30 0

28530 127 S 0260 0 79.4 0 28 0

30421 127 S 0393 0 86.8 1 28 0

23787 127 S 0754 0 67.7 3 23 0

29229 127 S 0844 0 85.5 3 0

Page 79: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

61

ImageID SubjectID Sex Age Diagnosis MMSE Score Rotated

267415 129 S 4369 1 68.4 0 0

125256 130 S 0956 0 66 3 1

306384 130 S 4730 0 81.2 3 1

14252 131 S 0384 1 80 2 1

38877 131 S 0691 1 65 3 14 1

78461 131 S 1389 1 76.8 2 28 1

16133 133 S 0525 0 70.1 0 30 0

116340 136 S 0579 0 67.6 1 30 0

Tabla A.2: Informacion demografica de pacientes ADNI-HHP

SubjectIDDICE

Nativ-invDICE

Norm-MNIDICE

LabL-invDICE

LabR-invICV

VolumeLHipp

VolumeRHipp

002 S 0295 0.98 0.945 0.976 0.982 1479480.15 2981.594 3072.297

002 S 0413 0.98 0.938 0.99 0.988 1261134.51 3036.438 3135.578

002 S 0559 0.978 0.93 0.998 0.995 1303281.89 3403.191 3309.592

002 S 0685 0.979 0.939 0.997 0.998 1255707.55 3427.726 3429.835

002 S 0729 0.977 0.918 1 1 1103489.41 1893.619 2306.423

002 S 0782 0.979 0.929 0.98 0.979 1413500.59 2939.407 3337.023

002 S 0816 0.978 0.926 0.988 0.986 1405817.65 2435.267 2803.352

002 S 0938 0.978 0.934 0.992 0.99 1306891.17 1691.715 1768.707

002 S 0954 0.978 0.94 0.996 0.994 1126202 1865.738 2036.596

002 S 1070 0.977 0.925 1 1 1253254.01 3653.991 3872.39

002 S 1155 0.98 0.943 0.993 0.993 1367752.92 3628.791 3749.99

002 S 1261 0.98 0.95 1 1 1304895.88 2698.793 2774.393

002 S 1280 0.981 0.948 0.998 0.998 1252663.18 3382.834 3625.237

002 S 4225 0.981 0.949 0.994 0.995 1655264.99 3949.19 3926.39

003 S 0907 0.976 0.936 1 1 1292880 3071.242 3014.992

003 S 0908 0.979 0.925 1 1 1550851.88 3247.492 3309.367

003 S 0931 0.975 0.939 1 1 1129155 2519.994 2570.618

003 S 1057 0.978 0.937 1 1 1297661.25 2759.993 2664.368

003 S 1059 0.975 0.924 1 1 1269150 2139.37 2306.244

003 S 1074 0.977 0.93 1 1 1247983.13 2227.494 2349.369

003 S 1122 0.977 0.939 1 1 1114370.63 3131.242 3142.492

003 S 1257 0.976 0.935 1 1 1590150 2831.243 3035.617

003 S 4136 0.977 0.939 0.986 0.988 1691739.43 3350.532 3466.878

005 S 0221 0.979 0.923 0.991 0.992 1482843.16 1968.042 2343.51

005 S 0222 0.98 0.943 0.994 0.994 1453814.37 2465.853 2193.745

005 S 0602 0.978 0.946 0.999 0.999 1349039.33 3377.895 3603.171

005 S 1341 0.98 0.929 0.998 0.999 1135769.56 2191.635 2540.736

Page 80: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

62 ANEXO A. LISTA DE PACIENTES ADNI-HHP

SubjectIDDICE

Nativ-invDICE

Norm-MNIDICE

LabL-invDICE

LabR-invICV

VolumeLHipp

VolumeRHipp

006 S 0322 0.98 0.951 0.998 0.999 1412328.83 3263.195 3528.976

006 S 4192 0.982 0.952 0.99 0.993 1356498.37 2401.224 2859.629

006 S 4449 0.982 0.949 1 1 1594236.08 3681.637 3708.038

007 S 0101 0.98 0.945 0.982 0.983 1543690.73 2960.5 2900.383

007 S 0128 0.979 0.949 0.99 0.993 1160579.84 2318.197 2803.352

007 S 4387 0.978 0.944 0.999 0.999 1316441.78 3020.058 3122.79

009 S 0842 0.981 0.943 0.983 0.979 1563532.03 3218.898 3340.187

009 S 0862 0.981 0.916 0.985 0.986 1469577.3 2124.135 2721.087

009 S 1030 0.98 0.945 0.984 0.985 1584333.63 3551.124 3370.773

009 S 1334 0.98 0.941 0.975 0.97 1620307.97 2552.337 2716.868

010 S 0067 0.979 0.933 0.997 0.997 1251790.72 3202.023 3058.586

010 S 0419 0.981 0.952 0.998 0.998 1461938.79 5115.222 4993.933

010 S 0422 0.981 0.951 0.984 0.982 1495380.71 2993.234 3136.673

011 S 0002 0.979 0.94 1 1 1764766.88 3639.366 3706.866

011 S 0005 0.977 0.945 1 1 1516644.38 2579.993 3406.866

011 S 0010 0.978 0.945 1 1 1398573.75 2276.244 2118.745

011 S 0016 0.977 0.941 1 1 1309650 2782.5 2956.875

011 S 0021 0.98 0.944 0.999 1 1237864.73 3118.792 3177.592

011 S 0183 0.976 0.941 1 1 1411284.38 2568.743 2336.244

011 S 0241 0.977 0.945 1 1 1405177.5 2639.993 2039.995

011 S 0856 0.976 0.95 1 1 1587598.13 2885.618 3003.742

012 S 0689 0.979 0.929 0.983 0.986 1291387.52 1695.596 2179.194

012 S 1292 0.98 0.939 0.997 0.996 1341229.39 2536.794 2680.793

012 S 1321 0.98 0.938 0.994 0.997 1439172.69 2247.623 2960.43

013 S 0325 0.977 0.939 1 1 1506922.5 1925.62 2148.745

013 S 0592 0.976 0.937 1 1 1365075 2576.243 2506.869

013 S 1186 0.981 0.951 0.995 0.996 1436670.68 2722.828 3013.231

013 S 1276 0.978 0.938 1 1 1350365.63 3028.117 2818.118

013 S 4731 0.982 0.94 0.999 1 1253603.21 2005.195 2255.994

016 S 0769 0.979 0.934 0.983 0.983 1663815.67 2458.8 2432.4

016 S 0991 0.974 0.92 1 1 1072882.5 1404.371 1003.122

016 S 1138 0.979 0.944 0.995 0.995 1298206.85 2407.194 2677.193

016 S 1263 0.977 0.939 1 1 1314264.38 2034.37 2141.245

018 S 0425 0.98 0.943 0.992 0.993 1378163.26 2672.427 2653.227

018 S 4696 0.981 0.942 1 0.999 1264228.82 1768.818 1750.818

019 S 4252 0.981 0.942 1 1 1229927.27 2002.795 2381.994

019 S 4549 0.981 0.948 0.979 0.981 1620477.78 2713.228 2977.23

020 S 0213 0.978 0.929 1 1 1388171.25 3095.617 3487.491

020 S 1288 0.979 0.936 0.999 0.998 1468503.66 3465.591 3747.59

023 S 0030 0.979 0.942 0.993 0.993 1372458.05 2193.594 2257.194

Page 81: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

63

SubjectIDDICE

Nativ-invDICE

Norm-MNIDICE

LabL-invDICE

LabR-invICV

VolumeLHipp

VolumeRHipp

023 S 0031 0.979 0.931 0.995 0.99 1365068.45 2894.393 2753.993

023 S 0061 0.98 0.939 0.995 0.995 1244629.25 2770.793 3176.392

023 S 0139 0.978 0.946 1 0.999 1173964.85 2239.194 2222.394

023 S 0331 0.979 0.949 0.999 0.998 1332915.65 2126.395 2200.794

023 S 0376 0.98 0.933 0.993 0.992 1413134.46 2792.393 2665.193

023 S 0604 0.979 0.944 0.996 0.996 1529120.46 2871.593 3027.592

023 S 0916 0.977 0.943 0.998 0.999 1282852.85 2212.794 2699.993

023 S 1247 0.979 0.944 1 1 1329830.45 2266.794 2521.194

023 S 1289 0.979 0.943 0.997 0.992 1209842.45 1738.796 1426.796

027 S 1081 0.979 0.938 0.998 0.995 1341955.25 1901.995 2210.394

027 S 1385 0.98 0.947 1 1 1163481.65 1515.596 1617.596

029 S 1073 0.979 0.938 0.991 0.99 1296287.34 2332.963 2737.962

029 S 4385 0.977 0.939 0.997 0.998 1281850.89 2464.318 2772.513

031 S 1209 0.979 0.945 0.993 0.993 1412223.55 2214.866 2484.869

032 S 0479 0.98 0.935 0.988 0.986 1529947.26 3346.791 3169.192

032 S 0677 0.98 0.937 0.998 0.997 1320956.45 3439.191 3644.391

037 S 0303 0.979 0.939 0.991 0.991 1343265.65 2607.593 2506.794

067 S 0812 0.978 0.944 0.989 0.986 1357980.05 2223.594 2050.795

067 S 1185 0.978 0.943 1 1 1283341.25 2194.794 2494.794

067 S 1253 0.98 0.951 0.995 0.992 1342996.85 3032.392 3226.792

073 S 0089 0.978 0.945 1 1 1417365 3299.992 3172.492

082 S 1079 0.98 0.935 0.987 0.988 1611799.26 1938 2208

094 S 1293 0.979 0.94 0.996 0.996 1558810.06 2343.021 2487.835

094 S 4089 0.977 0.93 0.996 0.996 1357262.18 2430.899 2882.67

098 S 0149 0.975 0.932 0.987 0.987 1268936.47 2704.212 2268.627

098 S 0172 0.979 0.948 1 0.999 1346276.93 3514.21 3723.038

100 S 0006 0.98 0.944 0.971 0.972 1268843.52 2077.025 2237.074

100 S 0015 0.98 0.943 0.983 0.985 1275707.8 2891.946 2808.626

100 S 0047 0.981 0.932 0.995 0.996 1430707.46 3062.805 2678.9

100 S 0892 0.979 0.943 1 0.999 1211353.04 2181.088 2014.448

100 S 0995 0.979 0.949 0.99 0.991 1292708.27 2014.448 2077.729

100 S 1062 0.982 0.945 0.967 0.971 1461340.7 2407.04 2910.691

100 S 1286 0.981 0.94 0.985 0.983 1371247.73 3541.677 3562.771

123 S 0050 0.982 0.937 0.978 0.967 1694572.83 2678.908 1761.33

123 S 0072 0.982 0.925 0.984 0.985 1440437.73 3046.982 3062.802

123 S 0088 0.982 0.948 0.976 0.979 1431209.31 2361.439 2451.088

123 S 0091 0.982 0.939 0.996 0.994 1279213.56 3912.872 3827.442

123 S 0094 0.98 0.944 0.989 0.992 1409755.32 2227.51 2245.44

123 S 0106 0.981 0.939 0.984 0.983 1609120.94 3674.522 3436.163

123 S 0108 0.98 0.955 0.988 0.988 1352494.21 2864.524 3219.953

Page 82: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

64 ANEXO A. LISTA DE PACIENTES ADNI-HHP

SubjectIDDICE

Nativ-invDICE

Norm-MNIDICE

LabL-invDICE

LabR-invICV

VolumeLHipp

VolumeRHipp

123 S 0162 0.982 0.945 0.981 0.982 1582128.96 2967.888 3101.833

123 S 0390 0.981 0.943 0.976 0.981 1494515.01 2723.196 2908.821

123 S 1300 0.98 0.945 0.987 0.992 1354968.26 2609.307 2601.924

126 S 0606 0.978 0.944 0.994 0.993 1257716.45 2110.328 1787.28

126 S 0784 0.98 0.936 0.99 0.987 1257310.9 1933.237 2232.768

126 S 1340 0.977 0.918 1 1 1104657.96 1943.234 2265.044

127 S 0259 0.978 0.944 0.989 0.989 1275921.91 2590.306 2706.321

127 S 0260 0.977 0.94 1 1 1198118.57 2671.124 2836.987

127 S 0393 0.976 0.944 0.994 0.993 1189126.79 2469.367 2469.367

127 S 0754 0.981 0.947 0.991 0.991 1517832.01 2435.267 2495.384

127 S 0844 0.976 0.914 0.997 0.998 1132989.74 1867.807 2386.435

129 S 4369 0.977 0.942 0.995 0.994 1245158.33 2558.386 2692.06

130 S 0956 0.979 0.937 1 1 1177691.69 2941.23 2941.23

130 S 4730 0.981 0.945 0.993 0.994 1432359.56 1701.596 2687.993

131 S 0384 0.981 0.935 0.991 0.994 1433268.61 3264.02 3161.284

131 S 0691 0.98 0.929 0.985 0.99 1347103.19 2064.613 1942.073

131 S 1389 0.98 0.931 0.986 0.988 1323742.89 2228 2260.182

133 S 0525 0.98 0.949 0.993 0.993 1214390.21 2861.36 2953.118

136 S 0579 0.981 0.945 0.996 0.999 1346287.65 2680.793 2707.193

Tabla A.3: Resultados obtenidos con los pacientes ADNI-HHP

(a) DICE NatImg-inv (b) DICE NormImg-MNI152

Figura A.1: Indices DICE obtenidos para los pacientes ADNI-HHP (parte1)

Page 83: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

65

(a) DICE NatLabelL-inv (b) DICE NatLabelR-inv

Figura A.2: Indices DICE obtenidos para los pacientes ADNI-HHP (parte2)

Figura A.3: Volumenes ICV obtenidos para los pacientes ADNI-HHP

(a) Hipocampo izquierdo (b) Hipocampo derecho

Figura A.4: Volumenes hipocampales obtenidos para los pacientes ADNI-HHP

Page 84: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

66 ANEXO A. LISTA DE PACIENTES ADNI-HHP

Page 85: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Anexo B

Documentacion del codigo delprotocolo ENIGMA

67

Page 86: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

68 ANEXO B. DOCUMENTACION DEL CODIGO DEL PROTOCOLO ENIGMA

Page 87: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Code Documentation

Generated by Doxygen 1.8.10

Fri Aug 28 2015 17:23:34

Page 88: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e
Page 89: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Contents

1 Code documentation 73

2 File Index 75

2.1 File List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

3 File Documentation 77

3.1 src/obtainICV.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

3.1.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.1.2.1 obtainICV() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.2 obtainICV.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.3 src/rotar_libre.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

3.3.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

3.3.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.2.1 rotar_libre() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.3.1 inputimg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.3.2 linecommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.3.3 outputimg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

3.3.3.4 refimg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.4 rotar_libre.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.5 src/runfsl_BET.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

3.5.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.5.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.5.2.1 runfsl_BET() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

3.5.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.5.3.1 linecommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.6 runfsl_BET.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

3.7 src/runfsl_flirt.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

3.7.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.7.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

3.7.2.1 runfsl_flirt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Page 90: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

72 CONTENTS

3.7.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.7.3.1 lineCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.8 runfsl_flirt.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.9 src/runfsl_inv_flirt.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87

3.9.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.9.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.9.2.1 runfsl_inv_flirt() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

3.9.3 Variable Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3.9.3.1 lineCommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3.9.3.2 transfMatrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3.10 runfsl_inv_flirt.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

3.11 src/test_affineRegistration.m File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90

3.11.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.11.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.11.2.1 test_affineRegistration() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

3.12 test_affineRegistration.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 91: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 1

Code documentation

This appendix contains the documentation of the MATLAB functions developed in order to implement the ENIGMAprotocol. The functions and their components are explained, so that they are easily understandable. The code ofthe functions is also provided so that the experiments described in the thesis can be repeated if necessary.

See also

http://www.elai.upm.es/joomla/index.php/grupos-inv/vision-artificialhttp://enigma.ini.usc.edu/protocols/imaging-protocols/

Page 92: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

74 Code documentation

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 93: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 2

File Index

2.1 File List

Here is a list of all documented files with brief descriptions:

src/obtainICV.mMATLAB function used to compute the ICV of the input images . . . . . . . . . . . . . . . . . 77

src/rotar_libre.mMATLAB function used to apply free rotation of MRI images and labels . . . . . . . . . . . . . 78

src/runfsl_BET.mMATLAB function used to apply the first steps of the ENIGMA protocol to MRI images . . . . . 81

src/runfsl_flirt.mMATLAB function used to apply transformation matrices to MRI images . . . . . . . . . . . . 85

src/runfsl_inv_flirt.mMATLAB function used to apply inverse transformations to MRI images . . . . . . . . . . . . . 87

src/test_affineRegistration.mMATLAB function used to compute the DICE values . . . . . . . . . . . . . . . . . . . . . . . 90

Page 94: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

76 File Index

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 95: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 3

File Documentation

3.1 src/obtainICV.m File Reference

MATLAB function used to compute the ICV of the input images.

Functions

• function obtainICV ()

This function allows to compute the ICV of the input images.

Variables

• pathBrainImg = 'E:/personal/jmsanz/ADNI/Resultados/NativeImg3/'

Path to the input images.

• listBrainImg = dir(strcat(pathBrainImg,'∗.nii.gz'))

Vector that contains the names of the input images.

• icv = zeros(numel(listBrainImg),1)

Vector that will store the ICV values.

• img

Input image.

• spacing

Voxel spacing.

• unitVolume = spacing(1) ∗ spacing(2) ∗ spacing(3)

Voxel volume.

3.1.1 Detailed Description

MATLAB function used to compute the ICV of the input images.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file obtainICV.m.

Page 96: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

78 File Documentation

3.1.2 Function Documentation

3.1.2.1 function obtainICV ( )

This function allows to compute the ICV of the input images.

This function computes the ICV of an MRI image. It loads the selected image and obtains its voxel volume. Then,the function counts the number of non-zero voxels in the images and multiplies it by the voxel size. The result is theICV value.

Parameters

None

Returns

Vector containing the ICV values of each image

Definition at line 18 of file obtainICV.m.

3.2 obtainICV.m

0000100018 function [icv] = obtainICV()0001900020 %% Paths00021 pathBrainImg = ’E:/personal/jmsanz/ADNI/Resultados/NativeImg3/’;00022 listBrainImg = dir(strcat(pathBrainImg, ’*.nii.gz’));0002300024 %% Variables00025 icv = zeros(numel(listBrainImg),1);00026 fileID = fopen(’ICV3.txt’, ’w’);0002700028 %% Compute the ICV00029 for i=1:numel(listBrainImg)00030 % Load the brain image00031 [img,spacing,~,~,~] = MedicalVolumeLoaderITKMEX(strcat(pathBrainImg, listBrainImg(i).name));00032 % Compute the intracraneal volume0003300034 unitVolume = spacing(1) * spacing(2) * spacing(3);00035 index = img > 0;00036 icv(i,1) = unitVolume * numel(img(index));00037 fprintf(fileID, ’%s: %.2f\n’, listBrainImg(i).name, icv(i,1));00038 end0003900040 fclose(fileID);0004100042 end

3.3 src/rotar_libre.m File Reference

MATLAB function used to apply free rotation of MRI images and labels.

Functions

• function rotar_libre ()

This function allows to apply free rotation of MRI images and labels.

Variables

• pathOriginalImages = '/home2/jmsanz/Documentos/ADNI-HHP/OriginalImages/'

Path to the original images that need free rotation.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 97: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.3 src/rotar_libre.m File Reference 79

• pathOriginalLabels = '/home2/jmsanz/Documentos/ADNI-HHP/LabelsSeparated/'

Path to the original labels corresponding to images that need free rotation.

• pathRefImages = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot/'

Path to the images that will be the reference for the tranformation.

• pathRotatedImages = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot/'

Path to the directory where the rotated images will be saved.

• pathRotatedLabels = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRotLabels/'

Path to the directory where the rotated labels will be saved.

• pathTransformMatrices = '/home2/jmsanz/Documentos/ADNI-HHP/FreeRotationMatrices/'

Path to the directory that contains the transformation matrices.

• comandflirt = 'flirt'

Command to be used.

• transfMatrices =dir(strcat(pathTransformMatrices,'ADNI∗.mat'))

Vector that contains the names of the transformation matrices.

• dim = size(transfMatrices,1)

Number of images to rotate (same as the number of matrices).

• inputimg = strcat(pathOriginalImages,transfMatrices(i).name(4:end-4),'.nii.gz')

String containing the path to the input image.

• in = strcat('-in',32,inputimg)

String used as a parameter for FLIRT.

• outputimg = strcat(pathRotatedImages,transfMatrices(i).name(4:end-4),'_rot.nii.gz')

String containing the path to the output image.

• output = strcat('-o',32,outputimg)

String used as a parameter for FLIRT.

• options =strcat('-init',32,pathTransformMatrices,transfMatrices(i).name,32,'-datatype short -interp nearest-neighbour -dof 12 -applyxfm')

String containing the options for FLIRT.

• refimg = inputimg

String containing the path to the reference image.

• ref = strcat('-ref',32,refimg)

String used as a parameter for FLIRT.

• linecommand = sprintf('%s %s %s %s %s',comandflirt,in,ref,output,options)

String containing the whole FLIRT command call.

3.3.1 Detailed Description

MATLAB function used to apply free rotation of MRI images and labels.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file rotar_libre.m.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 98: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

80 File Documentation

3.3.2 Function Documentation

3.3.2.1 function rotar_libre ( )

This function allows to apply free rotation of MRI images and labels.

This function executes FLIRT (FSL tool) in order to apply transformation matrices to a group of images that needrotation. In addition to this, the same transformation matrix will be applied to the corresponding hippocampal labels.The transformation matrices are to be obtained using the Transforms module of 3D-Slicer.

The only images that will be transformed are the ones that have a corresponding transformation matrix. Theimages, labels and matrices have the following formats:

Images: [SubjectID].nii.gzLabels: [SubjectID]_label_L.nii.gz and [SubjectID]_label_R.nii.gzMatrices: Tm_[SubjectID].mat

Parameters

None

Returns

No return value.

Definition at line 33 of file rotar_libre.m.

3.3.3 Variable Documentation

3.3.3.1 inputimg = strcat(pathOriginalImages,transfMatrices(i).name(4:end-4),'.nii.gz')

String containing the path to the input image.

When rotating labels, this variable has the following value:

inputimg = strcat(pathOriginalLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_L.nii.gz’);

3.3.3.2 linecommand = sprintf('%s %s %s %s %s',comandflirt,in,ref,output,options)

String containing the whole FLIRT command call.

This command has to be followed by the line

system(linecommand);

that will execute the it in the command window.

3.3.3.3 outputimg = strcat(pathRotatedImages,transfMatrices(i).name(4:end-4),'_rot.nii.gz')

String containing the path to the output image.

When rotating labels, this variable has the following value:

outputimg = strcat(pathRotatedLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_L_fr.nii.gz’);

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 99: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.4 rotar_libre.m 81

3.3.3.4 refimg = inputimg

String containing the path to the reference image.

When rotating labels, this variable has the following value:

refimg = strcat(pathRefImages,’ADNI_’,transfMatrices(i).name(4:end-4),’_brain.nii.gz’);

3.4 rotar_libre.m

0000100033 function rotar_libre()0003400035 pathOriginalImages = ’/home2/jmsanz/Documentos/ADNI-HHP/OriginalImages/’;00036 pathOriginalLabels = ’/home2/jmsanz/Documentos/ADNI-HHP/LabelsSeparated/’;00037 pathRefImages = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot/’;00038 pathRotatedImages = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot/’;00039 pathRotatedLabels = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRotLabels/’;00040 pathTransformMatrices = ’/home2/jmsanz/Documentos/ADNI-HHP/FreeRotationMatrices/’;0004100042 comandflirt = ’flirt’;00043 transfMatrices=dir(strcat(pathTransformMatrices,’ADNI*.mat’));00044 dim = size(transfMatrices,1);0004500046 %% Transform an image using a transformation matrix0004700048 for i=1:dim00049 % Input and output images00050 inputimg = strcat(pathOriginalImages,transfMatrices(i).name(4:end-4),’.nii.gz’);00051 in = strcat(’-in’,32,inputimg);00052 outputimg = strcat(pathRotatedImages,transfMatrices(i).name(4:end-4),’_rot.nii.gz’);00053 output = strcat(’-o’,32,outputimg);0005400055 % FLIRT options00056 options=strcat(’-init’,32,pathTransformMatrices,transfMatrices(i).name,32,’-datatype short...00057 -interp nearestneighbour -dof 12 -applyxfm’);0005800059 % Reference image00060 refimg = inputimg;00061 ref = strcat(’-ref’,32,refimg);00062 linecommand = sprintf(’%s %s %s %s %s’, comandflirt, in, ref, output, options);00063 disp(linecommand);00064 system(linecommand);00065 end0006600067 %% Transform the labels using a transformation matrix00068 for i=1:dim00069 inputimg = strcat(pathOriginalLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_L.nii.gz’);00070 in = strcat(’-in’,32,inputimg);00071 outputimg = strcat(pathRotatedLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_L_fr.nii.gz’);00072 output = strcat(’-o’,32,outputimg);0007300074 options=strcat(’-init’,32,pathTransformMatrices,transfMatrices(i).name,32,...00075 ’-datatype short -interp nearestneighbour -dof 12 -applyxfm’);0007600077 refimg = strcat(pathRefImages,’ADNI_’,transfMatrices(i).name(4:end-4),’_brain.nii.gz’);00078 ref = strcat(’-ref’,32,refimg);00079 linecommand = sprintf(’%s %s %s %s %s’,comandflirt,in,ref,output,options)00080 disp(linecommand)00081 system(linecommand)0008200083 inputimg = strcat(pathOriginalLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_R.nii.gz’);00084 in = strcat(’-in’,32,inputimg);00085 outputimg = strcat(pathRotatedLabels,’ADNI_’,transfMatrices(i).name(4:end-4),’_label_R_fr.nii.gz’);00086 output = strcat(’-o’,32,outputimg);0008700088 linecommand = sprintf(’%s %s %s %s %s’,comandflirt,in,ref,output,options)00089 disp(linecommand)00090 system(linecommand)00091 end0009200093 end

3.5 src/runfsl_BET.m File Reference

MATLAB function used to apply the first steps of the ENIGMA protocol to MRI images.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 100: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

82 File Documentation

Functions

• function runfsl_BET ()

This function allows to apply the first steps of the ENIGMA protocol to MRI images.

Variables

• pathImgFiles = '/home2/jmsanz/Documentos/ADNI-HHP/OriginalImages/'

Path to the original untransformed images.

• pathImgRot = '/home2/jmsanz/Documentos/ADNI-HHP/FreeRotImages/'

Path to the rotated images.

• pathResultImg = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3/'

Path to the directory where the untransformed images will be saved.

• pathResultRot = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2/'

Path to the directory where the rotated images will be saved.

• filename = './FinalUntransformed3.txt'

Path to the textfile that contains the ID and centre of gravity for untransformed images.

• file_rot = './FinalFreeRot2.txt'

Path to the textfile that contains the ID and centre of gravity for rotated images.

• sujetos = importdata(filename,' ')

Vector that contains the ID and centre of gravity for untransformed images.

• sujetos_rot = importdata(file_rot,' ')

Vector that contains the ID and centre of gravity for rotated images.

• num_suj = size(sujetos.data,1)

Number of untransformed images.

• num_rot = size(sujetos_rot.data,1)

Number of rotated images.

• umbral = input('Introduce el valor del umbral (f): ')

Used in step 1. Threshold used in BET1 command call.

• inputimg = strcat(pathImgFiles, 'ADNI_', sujetos.textdatai)

Used in step 1. String containing the path to the input image (untransformed) for BET1 command call.

• outputimg = strcat(pathResultImg, 'ADNI_', sujetos.textdatai, '_braintmp')

Used in step 1. String containing the path to the output image (untransformed) for BET1 command call.

• linecommand

String containing the command calls for the different steps.

• inputimg_rot = strcat(pathImgRot, 'ADNI_', sujetos_rot.textdataj, '_rot')

Used in step 1. String containing the path to the input image (rotated) for BET1 command call.

• outputimg_rot = strcat(pathResultRot, 'ADNI_', sujetos_rot.textdataj, '_braintmp_rot')

Used in step 1. String containing the path to the output image (rotated) for BET1 command call.

• inputimg2 = strcat(pathResultImg, 'ADNI_', sujetos.textdatai, '_braintmp')

Used in step 2. String containing the path to the input image (untransformed) for FAST1 command call.

• inputimg_rot2 = strcat(pathResultRot, 'ADNI_', sujetos_rot.textdataj, '_braintmp_rot')

Used in step 2. String containing the path to the input image (rotated) for FAST1 command call.

• inputimg3 = strcat(pathImgFiles,'ADNI_',sujetos.textdatai)

Used in step 2. String containing the path to the input image (untransformed) for fslmaths command call.

• input_bias = strcat(pathResultImg,'ADNI_',sujetos.textdatai,'_braintmp_bias')

Used in step 2. String containing the path to the bias estimation (untransformed) for fslmaths command call.

• output_biascorrected = strcat(pathResultImg, 'ADNI_', sujetos.textdatai, '_biascorrected')

Used in step 2. String containing the path to the output corrected image (untransformed) for fslmaths command call.

• inputimg_rot3 = strcat(pathImgRot,'ADNI_',sujetos_rot.textdataj,'_rot')

Used in step 2. String containing the path to the input image (rotated) for fslmaths command call.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 101: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.5 src/runfsl_BET.m File Reference 83

• input_bias_rot = strcat(pathResultRot, 'ADNI_', sujetos_rot.textdataj, '_braintmp_rot_bias')

Used in step 2. String containing the path to the bias estimation (rotated) for fslmaths command call.

• output_biascorrected_rot = strcat(pathResultRot, 'ADNI_', sujetos_rot.textdataj, '_biascorrected_rot')

Used in step 2. String containing the path to the output corrected image (rotated) for fslmaths command call.

• umbral2 = input('Introduce el valor del umbral (f): ')

Used in step 3. Threshold used in BET2 command call.

• inputimg_bias_corrected = strcat(pathResultImg, 'ADNI_', sujetos.textdatai, '_biascorrected')

Used in step 3. String containing the path to the input image (untransformed and rotated) for BET2 command call.

• outputimg_stripped_fine = strcat(pathResultImg, 'ADNI_', sujetos.textdatai, '_brain')

Used in step 3. String containing the path to the output image (untransformed and rotated) for BET2 command call.

3.5.1 Detailed Description

MATLAB function used to apply the first steps of the ENIGMA protocol to MRI images.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file runfsl_BET.m.

3.5.2 Function Documentation

3.5.2.1 function runfsl_BET ( )

This function allows to apply the first steps of the ENIGMA protocol to MRI images.

This function executes the first three steps of the ENGMA protocol to two sets of MRI images. This sets contain theimages that did not need free rotation (untransformed images) and the images thad needed free rotation (rotatedimages). The steps to be performed are:

1. First Skull-Stripping (BET1)

2. Bias correction (FAST1)

3. Second Skull-Stripping (BET2)

Parameters

None

Returns

No return value.

Definition at line 22 of file runfsl_BET.m.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 102: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

84 File Documentation

3.5.3 Variable Documentation

3.5.3.1 linecommand

String containing the command calls for the different steps.

This command has to be followed by the line

system(linecommand);

that will execute the it in the command window.For BET1 command calls, this variable will take the following values:

00001 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg, outputimg, sujetos.data(i,1),sujetos.data(i,2), sujetos.data(i,3), sprintf(’%1.2f’, umbral));

00001 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg_rot, outputimg_rot,sujetos_rot.data(j,1), sujetos_rot.data(j,2), sujetos_rot.data(j,3), sprintf(’%1.2f’, umbral));

For FAST1 command calls, the variable will take the following values:

00001 linecommand = sprintf(’fast -b --nopve %s’, inputimg2);00002 linecommand = sprintf(’fslmaths %s -div %s %s’, inputimg3, input_bias, output_biascorrected);

00001 linecommand = sprintf(’fast -b --nopve %s’, inputimg_rot2);00002 linecommand = sprintf(’fslmaths %s -div %s %s’, inputimg_rot3, input_bias_rot,

output_biascorrected_rot);

For BET2 command calls, the variable will take the following values:

00001 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg_bias_corrected, outputimg_stripped_fine,sujetos.data(i,1), sujetos.data(i,2), sujetos.data(i,3), sprintf(’%1.2f’, umbral2));

3.6 runfsl_BET.m

0000100022 function runfsl_BET()0002300024 pathImgFiles = ’/home2/jmsanz/Documentos/ADNI-HHP/OriginalImages/’;00025 pathImgRot = ’/home2/jmsanz/Documentos/ADNI-HHP/FreeRotImages/’;00026 pathResultImg = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3/’;00027 pathResultRot = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2/’;0002800029 filename = ’./FinalUntransformed3.txt’;00030 file_rot = ’./FinalFreeRot2.txt’;00031 sujetos = importdata(filename,’ ’);00032 sujetos_rot = importdata(file_rot,’ ’);0003300034 num_suj = size(sujetos.data,1);00035 num_rot = size(sujetos_rot.data,1);0003600037 %% Primer BET00038 umbral = input(’Introduce el valor del umbral (f): ’);00039 for i = 1:num_suj00040 inputimg = strcat(pathImgFiles, ’ADNI_’, sujetos.textdatai);00041 outputimg = strcat(pathResultImg, ’ADNI_’, sujetos.textdatai, ’_braintmp’);00042 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg, outputimg, sujetos.data(i,1),...00043 sujetos.data(i,2), sujetos.data(i,3), sprintf(’%1.2f’, umbral));00044 disp(linecommand)00045 system(linecommand);00046 end00047 for j = 1:num_rot00048 inputimg_rot = strcat(pathImgRot, ’ADNI_’, sujetos_rot.textdataj, ’_rot’);00049 outputimg_rot = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj, ’_braintmp_rot’);00050 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg_rot, outputimg_rot,...00051 sujetos_rot.data(j,1), sujetos_rot.data(j,2), sujetos_rot.data(j,3), sprintf(’%1.2f’,...00052 umbral));00053 disp(linecommand)00054 system(linecommand);00055 end0005600057 %% Primer FAST

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 103: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.7 src/runfsl_flirt.m File Reference 85

00058 for i = 1:num_suj00059 inputimg2 = strcat(pathResultImg, ’ADNI_’, sujetos.textdatai, ’_braintmp’);00060 linecommand = sprintf(’fast -b --nopve %s’, inputimg2);00061 disp(linecommand)00062 system(linecommand);00063 end00064 for j = 1:num_rot00065 inputimg_rot2 = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj, ’_braintmp_rot’);00066 linecommand = sprintf(’fast -b --nopve %s’, inputimg_rot2);00067 disp(linecommand)00068 system(linecommand);00069 end0007000071 for i = 1:num_suj00072 inputimg3 = strcat(pathImgFiles,’ADNI_’,sujetos.textdatai);00073 input_bias= strcat(pathResultImg,’ADNI_’,sujetos.textdatai,’_braintmp_bias’);00074 output_biascorrected = strcat(pathResultImg, ’ADNI_’, sujetos.textdatai, ’_biascorrected’);00075 linecommand = sprintf(’fslmaths %s -div %s %s’, inputimg3, input_bias, output_biascorrected);00076 disp(linecommand)00077 system(linecommand);00078 end00079 for j = 1:num_rot00080 inputimg_rot3 = strcat(pathImgRot,’ADNI_’,sujetos_rot.textdataj,’_rot’);00081 input_bias_rot = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj, ’_braintmp_rot_bias’);00082 output_biascorrected_rot = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj,...00083 ’_biascorrected_rot’);00084 linecommand = sprintf(’fslmaths %s -div %s %s’, inputimg_rot3, input_bias_rot,...00085 output_biascorrected_rot);00086 disp(linecommand)00087 system(linecommand);00088 end000890009000091 %% Segundo BET00092 umbral2 = input(’Introduce el valor del umbral (f): ’);00093 for i = 1:num_suj00094 inputimg_bias_corrected= strcat(pathResultImg, ’ADNI_’, sujetos.textdatai, ’_biascorrected’);00095 outputimg_stripped_fine = strcat(pathResultImg, ’ADNI_’, sujetos.textdatai, ’_brain’);00096 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg_bias_corrected,...00097 outputimg_stripped_fine, sujetos.data(i,1) ,sujetos.data(i,2), sujetos.data(i,3),...00098 sprintf(’%1.2f’, umbral2));00099 disp(linecommand)00100 system(linecommand);00101 end00102 for j = 1:num_rot00103 inputimg_bias_corrected = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj,...00104 ’_biascorrected_rot’);00105 outputimg_stripped_fine = strcat(pathResultRot, ’ADNI_’, sujetos_rot.textdataj, ’_brain’);00106 linecommand = sprintf(’bet %s %s -c %d %d %d -f %s’, inputimg_bias_corrected,...00107 outputimg_stripped_fine, sujetos_rot.data(j,1), sujetos_rot.data(j,2),...00108 sujetos_rot.data(j,3), sprintf(’%1.2f’, umbral2));00109 disp(linecommand)00110 system(linecommand);00111 end0011200113 end

3.7 src/runfsl_flirt.m File Reference

MATLAB function used to apply transformation matrices to MRI images.

Functions

• function runfsl_flirt ()

MATLAB function used to apply transformation matrices to MRI images.

Variables

• pathImgFiles ='/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2/'

Path to the input images that will be transformed.

• pathResulImg ='/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2Flirt/'

Path to the directory where the output images will be saved.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 104: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

86 File Documentation

• pathRefImg ='/home2/jmsanz/Documentos/ADNI-HHP/Final/RefImage/'

Path to the images that will be the reference for the tranformation (MNI152).

• pathResulMat ='/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2FlirtMatrix/'

Path to the directory where the transformation matrices will be saved.

• listImgFiles = dir(strcat(pathImgFiles,'∗_brain.nii.gz'))

Vector that contains the names of the images that will be tranformed.

• ref = strcat('-ref',32,pathRefImg,'MNI152_T1_1mm_brain.nii.gz')

String containing the path to the reference image (MNI152).

• ResultingFile = strcat(listImgFiles(i).name(1:end-7),'_norm.nii.gz')

Path to the output image.

• ResultingMatrix = strcat(listImgFiles(i).name(1:end-7),'_norm.mat')

Path to the tranformation matrix.

• input = strcat('-in',32,pathImgFiles,listImgFiles(i).name)

String containing the path to the input image.

• output = strcat('-out',32,pathResulImg,ResultingFile)

String containing the path to the output image.

• options =strcat('-omat',32,pathResulMat,ResultingMatrix,32,'-datatype short')

String containing the options used for FLIRT.

• lineCommand = sprintf('flirt %s %s %s %s',input,ref,output,options)

String containing the whole FLIRT command call.

3.7.1 Detailed Description

MATLAB function used to apply transformation matrices to MRI images.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file runfsl_flirt.m.

3.7.2 Function Documentation

3.7.2.1 function runfsl_flirt ( )

MATLAB function used to apply transformation matrices to MRI images.

This function registers an MRI image to the normalized space defined by the probabilistic atlas MNI152. It performsthe transformation and outputs the resulting image and the matrix used.

Parameters

None

Returns

No return value.

Definition at line 17 of file runfsl_flirt.m.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 105: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.8 runfsl_flirt.m 87

3.7.3 Variable Documentation

3.7.3.1 lineCommand = sprintf('flirt %s %s %s %s',input,ref,output,options)

String containing the whole FLIRT command call.

This command has to be followed by the line

system(linecommand);

that will execute the it in the command window.

3.8 runfsl_flirt.m

0000100017 function runfsl_flirt()0001800019 pathImgFiles=’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2/’;00020 pathResulImg=’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2Flirt/’;00021 pathRefImg=’/home2/jmsanz/Documentos/ADNI-HHP/Final/RefImage/’;00022 pathResulMat=’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalFreeRot2FlirtMatrix/’;00023 listImgFiles = dir(strcat(pathImgFiles,’*_brain.nii.gz’));00024 ref = strcat(’-ref’,32,pathRefImg,’MNI152_T1_1mm_brain.nii.gz’);0002500026 %% FLIRT00027 for i=1:numel(listImgFiles)00028 % Outputs00029 ResultingFile = strcat(listImgFiles(i).name(1:end-7),’_norm.nii.gz’);00030 ResultingMatrix = strcat(listImgFiles(i).name(1:end-7),’_norm.mat’);0003100032 % Strings for the function00033 input = strcat(’-in’,32,pathImgFiles,listImgFiles(i).name);00034 output= strcat(’-out’,32,pathResulImg,ResultingFile);00035 options=strcat(’-omat’,32,pathResulMat,ResultingMatrix,32,’-datatype short’);0003600037 % Function call00038 lineCommand = sprintf(’flirt %s %s %s %s’,input,ref,output,options);00039 fprintf(’%s\n’,lineCommand);00040 system(lineCommand);00041 end0004200043 end

3.9 src/runfsl_inv_flirt.m File Reference

MATLAB function used to apply inverse transformations to MRI images.

Functions

• function runfsl_inv_flirt ()

This function allows to apply inverse transformations to MRI images.

Variables

• pathInputImages = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Flirt/'

Path to the normalized images.

• pathTransformMatrices = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3FlirtMatrix/'

Path to the transformation matrices.

• pathOutputImages = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Flirt/'

Path to the output images (in the native space).

• pathRefImg = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3/'

Path to the reference images (in the native space).

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 106: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

88 File Documentation

• pathInputLabels = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Labels/'

Path to the normalized labels.• pathOutputLabels = '/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Labels/'

Path to the output labels (in the native space).• transfMatrices = dir(strcat(pathTransformMatrices, 'ADNI∗.mat'))

Vector that contains the names of the transformation matrices.• outputFile = strcat(pathTransformMatrices,'inv_',transfMatrices(i).name)

String containing the path to the inverse transformation matrix.• inputFile = strcat(pathTransformMatrices,transfMatrices(i).name)

String containing the path to the input transformation matrix.• lineCommand

String containing the whole FLIRT command call.• transformationMatrix = strcat(pathTransformMatrices,transfMatrices(i).name)

String containing the path to the inverse transformation matrix.• ref =strcat('-ref',32,pathRefImg,transfMatrices(i).name(5:end-9))

String containing the path to the reference image.• input = strcat('-in',32,pathInputImages,transfMatrices(i).name(5:end-4),'.nii.gz')

String containing the path to the input image or label (normalized).• output = strcat('-out',32,pathOutputImages,transfMatrices(i).name(1:end-4),'.nii.gz')

String containing the path to the output image or label (in the native space).• options =strcat('-init', 32, transformationMatrix, 32, '-datatype short -interp nearestneighbour -dof 12 -

applyxfm')

String containing the options for the FLIRT command call.

3.9.1 Detailed Description

MATLAB function used to apply inverse transformations to MRI images.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file runfsl_inv_flirt.m.

3.9.2 Function Documentation

3.9.2.1 function runfsl_inv_flirt ( )

This function allows to apply inverse transformations to MRI images.

This function obtains the inverse matrix of the input transformation matrix and applies it to the corresponding MRIimage. In the context of the thesis, it is used to transform the normalized images back into the native space.

Parameters

None

Returns

No return value.

Definition at line 18 of file runfsl_inv_flirt.m.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 107: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.10 runfsl_inv_flirt.m 89

3.9.3 Variable Documentation

3.9.3.1 lineCommand

String containing the whole FLIRT command call.

This command has to be followed by the line

system(linecommand);

that will execute the it in the command window.

In order to obtain the inverse matrices, its value has to be:

00001 lineCommand = strcat(’convert_xfm’, 32, ’-omat’, 32, outputFile, 32, ’-inverse’, 32, inputFile);

In order to transform the normalized images, its value has to be:

00001 lineCommand = sprintf(’flirt %s %s %s %s’, input, ref, output, options);

In order to transform the labels, its value has to be:

00001 lineCommand = sprintf(’flirt %s %s %s %s’, input, ref, output, options);

3.9.3.2 transfMatrices = dir(strcat(pathTransformMatrices, 'ADNI∗.mat'))

Vector that contains the names of the transformation matrices.

Vector that contains the names of the inverse transformation matrices.

3.10 runfsl_inv_flirt.m

0000100018 function runfsl_inv_flirt()0001900020 %% Inverse MAT file0002100022 pathInputImages = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Flirt/’;00023 pathTransformMatrices = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3FlirtMatrix/’;00024 pathOutputImages = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Flirt/’;00025 pathRefImg = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3/’;00026 pathInputLabels = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Labels/’;00027 pathOutputLabels = ’/home2/jmsanz/Documentos/ADNI-HHP/Final/FinalUntransformed3Labels/’;0002800029 %% Obtain the transformation matrices00030 transfMatrices = dir(strcat(pathTransformMatrices, ’ADNI*.mat’));0003100032 %% Obtain the inverse matrix00033 for i=1:numel(transfMatrices)00034 outputFile = strcat(pathTransformMatrices,’inv_’,transfMatrices(i).name);00035 inputFile = strcat(pathTransformMatrices,transfMatrices(i).name);00036 lineCommand = strcat(’convert_xfm’,32,’-omat’,32,outputFile,32,...00037 ’-inverse’,32,inputFile);00038 fprintf(’%s\n’,lineCommand);00039 system(lineCommand);00040 end0004100042 %% Inverse FLIRT00043 transfMatrices = dir(strcat(pathTransformMatrices, ’inv_ADNI*.mat’));0004400045 for i=1:numel(transfMatrices)00046 % Image00047 transformationMatrix = strcat(pathTransformMatrices,transfMatrices(i).name);00048 ref=strcat(’-ref’,32,pathRefImg,transfMatrices(i).name(5:end-9));00049 input = strcat(’-in’,32,pathInputImages,transfMatrices(i).name(5:end-4),’.nii.gz’);00050 output= strcat(’-out’,32,pathOutputImages,transfMatrices(i).name(1:end-4),’.nii.gz’);00051 options=strcat(’-init’, 32, transformationMatrix, 32, ’-datatype short -interp...00052 nearestneighbour -dof 12 -applyxfm’);00053 lineCommand = sprintf(’flirt %s %s %s %s’,input,ref,output,options);

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 108: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

90 File Documentation

00054 fprintf(’%s\n’,lineCommand);00055 system(lineCommand);00056 end0005700058 for i=1:numel(transfMatrices)00059 % Left label00060 transformationMatrix = strcat(pathTransformMatrices,transfMatrices(i).name);00061 options=strcat(’-init’,32,transformationMatrix,32,...00062 ’-datatype short -interp nearestneighbour -dof 12 -applyxfm’);00063 ref=strcat(’-ref’,32,pathRefImg,transfMatrices(i).name(5:end-9),’.nii.gz’);00064 input = strcat(’-in’,32,pathInputLabels,transfMatrices(i).name(5:end-14),’label_L_norm.nii.gz’);00065 output= strcat(’-out’,32,pathOutputLabels,transfMatrices(i).name(1:end-14),’label_L_norm.nii.gz’);00066 lineCommand = sprintf(’flirt %s %s %s %s’,input,ref,output,options);00067 fprintf(’%s\n’,lineCommand);00068 system(lineCommand);0006900070 % Right label00071 ref=strcat(’-ref’,32,pathRefImg,transfMatrices(i).name(5:end-9),’.nii.gz’);00072 input = strcat(’-in’,32,pathInputLabels,transfMatrices(i).name(5:end-14),’label_R_norm.nii.gz’);00073 output= strcat(’-out’,32,pathOutputLabels,transfMatrices(i).name(1:end-14),’label_R_norm.nii.gz’);00074 lineCommand = sprintf(’flirt %s %s %s %s’,input,ref,output,options);00075 fprintf(’%s\n’,lineCommand);00076 system(lineCommand);0007700078 end0007900080 end

3.11 src/test_affineRegistration.m File Reference

MATLAB function used to compute the DICE values.

Functions

• function test_affineRegistration ()

This function allows to compute the DICE values.

Variables

• nativeImgPath = 'E:\personal\jmsanz\ADNI\Resultados\NativeImg3\'

Path to the native images.

• invSpatNormPath = 'E:\personal\jmsanz\ADNI\Resultados\NormImg-inv3\'

Path to the normalized images transformed back to the native space.

• spatialNormPath = 'E:\personal\jmsanz\ADNI\Resultados\NormImg3\'

Path to the normalized images.

• refImgPath = 'E:\personal\jmsanz\ADNI\Resultados\RefImg\'

Path to the MNI152 image.

• nativeLabPath = 'E:\personal\jmsanz\ADNI\Resultados\NativeLabels3\'

Path to the native labels.

• invLabPath = 'E:\personal\jmsanz\ADNI\Resultados\NormLabels-inv3\'

Path to the normalized labels transformed back to the native space.

• dice_train = zeros(numel(listImgSpatNorm),2)

Matrix that will contain the DICE values computed with the images.

• dice_train_lab = zeros(numel(listInvLab),1)

Matrix that will contain the DICE values computed with the labels.

• dice =@(X,Y) 2∗ sum(X(:) & Y(:))/sum(X(:)+Y(:))

Definition of the DICE operation.

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 109: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

3.12 test_affineRegistration.m 91

3.11.1 Detailed Description

MATLAB function used to compute the DICE values.

Author

Jose Maria Sanz Sanz

Date

28 Aug 2015

Definition in file test_affineRegistration.m.

3.11.2 Function Documentation

3.11.2.1 function test_affineRegistration ( )

This function allows to compute the DICE values.

This function computes the DICE value between two images. The definition of the DICE is:

2* sum(X(:) & Y(:))/sum(X(:)+Y(:));

The DICE values computed are the following ones:

1. DICE between the native image and the normalized one (after transforming it back to the native space).

2. DICE between the normalized image and the probabilistic atlas MNI152.

3. DICE between the native labels and the normalized ones (after transforming them back to the native space).

Parameters

None

Returns

dice_train Contains DICE values (1 and 2).dice_train Contains DICE values (3).

Definition at line 22 of file test_affineRegistration.m.

3.12 test_affineRegistration.m

0000100022 function [dice_train,dice_train_lab]=test_affineRegistration()0002300024 %% Paths and lists of images00025 % Paths and lists for Native-inv DICE score00026 nativeImgPath = ’E:\personal\jmsanz\ADNI\Resultados\NativeImg3\’;00027 listNativeImg = dir(strcat(nativeImgPath, ’*.nii.gz’));00028 invSpatNormPath = ’E:\personal\jmsanz\ADNI\Resultados\NormImg-inv3\’;00029 listInvSpatNorm = dir(strcat(invSpatNormPath, ’*.nii.gz’));00030 % Paths and lists for Norm-MNI DICE score00031 spatialNormPath = ’E:\personal\jmsanz\ADNI\Resultados\NormImg3\’;00032 listImgSpatNorm = dir(strcat(spatialNormPath, ’*.nii.gz’));00033 refImgPath = ’E:\personal\jmsanz\ADNI\Resultados\RefImg\’;00034 listImgRef = dir(strcat(refImgPath, ’*.nii.gz’));00035 % Paths and lists for NativeLab-invLab DICE score00036 nativeLabPath = ’E:\personal\jmsanz\ADNI\Resultados\NativeLabels3\’;00037 listNativeLab = dir(strcat(nativeLabPath, ’*.nii.gz’));

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 110: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

92 File Documentation

00038 invLabPath = ’E:\personal\jmsanz\ADNI\Resultados\NormLabels-inv3\’;00039 listInvLab = dir(strcat(invLabPath, ’*.nii.gz’));0004000041 dice_train = zeros(numel(listImgSpatNorm),2);00042 dice_train_lab = zeros(numel(listInvLab),1);00043 dice=@(X,Y) 2* sum(X(:) & Y(:))/sum(X(:)+Y(:));0004400045 %% DICE Native-Inv00046 % DICE score between the images in the native space and the normalized00047 % images changed back to the normalized space00048 fileID1 = fopen(’DICE_Scores_Native-Inv3.txt’,’w’);00049 for i=1:numel(listImgSpatNorm)0005000051 fprintf(fileID1,’%s %s:’,listNativeImg(i).name,listInvSpatNorm(i).name);00052 % Load the native image00053 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00054 strcat(nativeImgPath,listNativeImg(i).name));00055 label_nat=targetImage>0;00056 % Load the normalized image that has been inverted00057 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00058 strcat(invSpatNormPath,listInvSpatNorm(i).name));00059 label_inv=targetImage>0;00060 % Obtain the overlap index (DICE)00061 dice_train(i,1)=dice(label_nat,label_inv);0006200063 % Print the result to a text file00064 fprintf(fileID1,’ %.3f\n\r’,dice_train(i,1));00065 end00066 fclose(fileID1);0006700068 %% DICE Norm-MNI00069 % DICE score between the reference image (MNI152) and the normalized images00070 fileID2 = fopen(’DICE_Scores_Norm-NMI3.txt’,’w’);00071 for i=1:numel(listImgSpatNorm)0007200073 fprintf(fileID2,’%s %s:’,listImgSpatNorm(i).name,listImgRef(1).name);00074 % Load the reference image00075 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00076 strcat(refImgPath,listImgRef(1).name));00077 label_ref=targetImage>0;00078 % Load the normalized image00079 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00080 strcat(spatialNormPath,listImgSpatNorm(i).name));00081 label_seg=targetImage>0;00082 % Obtain the overlap index (DICE)00083 dice_train(i,2)=dice(label_seg,label_ref);0008400085 % Print the result to a text file00086 fprintf(fileID2,’ %.3f\n\r’,dice_train(i,2));00087 end00088 fclose(fileID2);0008900090 %% DICE NativeLab-InvLab00091 % DICE score between the native labels and the normalized labels changed00092 % back to the native space00093 fileID3 = fopen(’DICE_Scores_NatLab-InvLab3.txt’,’w’);00094 for i=1:numel(listInvLab)00095 nativeLab = strcat(listInvLab(i).name(5:end-12),’.nii.gz’);00096 fprintf(fileID3,’%s %s:’,nativeLab,listInvLab(i).name);00097 % Load the native label00098 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00099 strcat(nativeLabPath,nativeLab));00100 label_natLab=targetImage>0;00101 % Load the normalized label that has been inverted00102 [targetImage,~,~,~,~] = MedicalVolumeLoaderITKMEX(...00103 strcat(invLabPath,listInvLab(i).name));00104 label_invLab=targetImage>0;00105 % Obtain the overlap index (DICE)00106 dice_train_lab(i,1)=dice(label_natLab,label_invLab);00107 dice_train_lab(i,1)00108 % Print the result to a text file00109 fprintf(fileID3,’ %.3f\n\r’,dice_train_lab(i,1));00110 end00111 fclose(fileID3);0011200113 end

Generated on Fri Aug 28 2015 17:23:34 for Code Documentation by Doxygen

Page 111: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Anexo C

Documentacion del codigo depatch-labeling

93

Page 112: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

94 ANEXO C. DOCUMENTACION DEL CODIGO DE PATCH-LABELING

Page 113: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Code Documentation

Generated by Doxygen 1.8.10

Thu Sep 3 2015 14:18:20

Page 114: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e
Page 115: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Contents

1 Code documentation 99

2 File Index 101

2.1 File List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

3 Class Index 103

3.1 Class List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4 Class Documentation 105

4.1 patch Struct Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.2 Member Data Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.2.1 labels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.2.2 mu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.2.3 mu_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

4.1.2.4 p . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.1.2.5 std . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.1.2.6 std_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.1.2.7 var . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

4.1.2.8 var_l . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

5 File Documentation 107

5.1 src/parDistLabelMask.h File Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.1.1 Detailed Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.1.2 Function Documentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

5.1.2.1 clamp(int x, int a, int b) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

5.1.2.2 distLabelMask(unsigned int numPixels, unsigned int ∗n, std::vector< unsignedint > &vX, std::vector< unsigned int > &vY, std::vector< unsigned int > &v←

Z, unsigned int numAtlases, patch ∗patches, patch ∗patchTarget, std::vector<unsigned int > i, unsigned int long_vector, double thresh, unsigned int numAll←

Patches, float ∗dist_labels, unsigned int f, std::vector< float > dist, std::vector<float > dist_lb, std::vector< std::vector< bool > > labels) . . . . . . . . . . . . 108

5.1.2.3 min(std::vector< float > v) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Page 116: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

98 CONTENTS

5.1.2.4 parMEX(unsigned int numPixels, unsigned int ∗X, unsigned int ∗Y, unsigned int∗Z, unsigned int ∗n, unsigned int numAtlases, patch ∗patches, patch ∗patch←

Target, unsigned int long_vector, double thresh, unsigned int numAllPatches, int∗q, float ∗dist_labels) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

5.2 parDistLabelMask.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 117: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 1

Code documentation

This appendix contains the documentation of the C++ function developed as an optimization of the patch-labelingmethod proposed by Platero. The aim of this function is to translate part of the original MATLAB code to C++ inorder to optimize and reduce execution time.

See also

Platero, C. (2015). Combining Patch-based Strategies and non-rigid registration-based label fusion methods.(Unpublished)

Page 118: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

100 Code documentation

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 119: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 2

File Index

2.1 File List

Here is a list of all documented files with brief descriptions:

src/parDistLabelMask.hMEX function that applies non-local means method for automatic brain MRI segmentation . . . 107

Page 120: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

102 File Index

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 121: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 3

Class Index

3.1 Class List

Here are the classes, structs, unions and interfaces with brief descriptions:

patchThis structure contains an atlas and its mean and standard deviation . . . . . . . . . . . . . . 105

Page 122: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

104 Class Index

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 123: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 4

Class Documentation

4.1 patch Struct Reference

This structure contains an atlas and its mean and standard deviation.

Public Attributes

• float ∗ mu

• float ∗ mu_l

• float ∗ std

• float ∗ std_l

• float ∗ var

• float ∗ var_l

• float ∗ p

• bool ∗ labels

4.1.1 Detailed Description

This structure contains an atlas and its mean and standard deviation.

Definition at line 24 of file parDistLabelMask.h.

4.1.2 Member Data Documentation

4.1.2.1 bool∗ patch::labels

Label

4.1.2.2 float∗ patch::mu

Mean of the patch

4.1.2.3 float∗ patch::mu_l

Mean of the patch label

Page 124: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

106 Class Documentation

4.1.2.4 float∗ patch::p

Image

4.1.2.5 float∗ patch::std

Standard deviation of the patch

4.1.2.6 float∗ patch::std_l

Standard deviation of the patch label

4.1.2.7 float∗ patch::var

Variance of the patch

4.1.2.8 float∗ patch::var_l

Variance of the patch label

The documentation for this struct was generated from the following file:

• src/parDistLabelMask.h

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 125: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Chapter 5

File Documentation

5.1 src/parDistLabelMask.h File Reference

MEX function that applies non-local means method for automatic brain MRI segmentation.

#include "mex.h"#include <vector>

Classes

• struct patch

This structure contains an atlas and its mean and standard deviation.

Functions

• void parMEX (unsigned int numPixels, unsigned int ∗X, unsigned int ∗Y, unsigned int ∗Z, unsigned int ∗n,unsigned int numAtlases, patch ∗patches, patch ∗patchTarget, unsigned int long_vector, double thresh, un-signed int numAllPatches, int ∗q, float ∗dist_labels)

This function gathers all the input data and prepares the output data.

• void distLabelMask (unsigned int numPixels, unsigned int ∗n, std::vector< unsigned int > &vX, std::vector<unsigned int > &vY, std::vector< unsigned int > &vZ, unsigned int numAtlases, patch ∗patches, patch∗patchTarget, std::vector< unsigned int > i, unsigned int long_vector, double thresh, unsigned int numAll←

Patches, float ∗dist_labels, unsigned int f, std::vector< float > dist, std::vector< float > dist_lb, std::vector<std::vector< bool > > labels)

This function applies the non-local means method.

• int clamp (int x, int a, int b)

This function clamps a float variable between the specified limits.

• float min (std::vector< float > v)

This function obtains the minimum value of a vector of floats.

5.1.1 Detailed Description

MEX function that applies non-local means method for automatic brain MRI segmentation.

Author

Jose Maria Sanz Sanz

Page 126: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

108 File Documentation

Date

03 Sep 2015

Definition in file parDistLabelMask.h.

5.1.2 Function Documentation

5.1.2.1 int clamp ( int x, int a, int b )

This function clamps a float variable between the specified limits.

Parameters

x Variable to clampa Lower limitb Upper limit

Returns

Clamped value

5.1.2.2 void distLabelMask ( unsigned int numPixels, unsigned int ∗ n, std::vector< unsigned int > & vX, std::vector<unsigned int > & vY, std::vector< unsigned int > & vZ, unsigned int numAtlases, patch ∗ patches, patch ∗patchTarget, std::vector< unsigned int > i, unsigned int long_vector, double thresh, unsigned int numAllPatches,float ∗ dist_labels, unsigned int f, std::vector< float > dist, std::vector< float > dist_lb, std::vector< std::vector<bool >> labels )

This function applies the non-local means method.

This function computes the similarity measure in order to choose which patches will be selected.It also applies the non-local means label fusion

Parameters

numPixels Number of voxels selected∗n Image dimensions

&vX X coordinates of the selected voxels&vY Y coordinates of the selected voxels&vZ Z coordinates of the selected voxels

numAtlases Number of atlases∗patches Array containing the reference atlas

∗patchTarget Structure containing the target imagei Coordinates of the centre of the current patch

long_vector Number of voxels in the patchthresh Threshold to select patch

numAllPatches Number of voxels in a patch times the number of reference atlas∗dist_labels Result of non-local means

f Voxel indexdist (empty) Auxiliar variable for non-local means

dist_lb (empty) Auxiliar variable for non-local means

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 127: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

5.2 parDistLabelMask.h 109

labels (empty) Auxiliar variable for non-local means

5.1.2.3 float min ( std::vector< float > v )

This function obtains the minimum value of a vector of floats.

Parameters

v Input vector

Returns

Minimum value

5.1.2.4 void parMEX ( unsigned int numPixels, unsigned int ∗ X, unsigned int ∗ Y, unsigned int ∗ Z, unsigned int ∗ n,unsigned int numAtlases, patch ∗ patches, patch ∗ patchTarget, unsigned int long_vector, double thresh, unsignedint numAllPatches, int ∗ q, float ∗ dist_labels )

This function gathers all the input data and prepares the output data.

This function gets all the input values using MEX-specific functions and prepares the output variable. The functionsused appear in the library mex.h:

mxGetDatamxGetPrmxGetScalarmxGetLogicalsmxGetNumberOfElementsmxCreateNumericMatrix

Parameters

numPixels Number of voxels selected∗X X coordinates of the selected voxels∗Y Y coordinates of the selected voxels∗Z Z coordinates of the selected voxels∗n Image dimensions

numAtlases Number of atlases (dimension of ∗patches)∗patches Vector containing the reference atlas

∗patchTarget Structure containing the target imagelong_vector Number of voxels in the patch

thresh Threshold to select patchnumAllPatches Number of voxels in a patch times the number of reference atlas

∗q Patch radius (in voxels) in the three dimensions∗dist_labels (MEX output) Result of non-local means

5.2 parDistLabelMask.h

0000100015 // Include header files00016 #include "mex.h"00017 #include <vector>000180001900020 //Structure patches00024 struct patch0002500026 float *mu;00027 float *mu_l;00028 float *std;00029 float *std_l;00030 float *var;

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 128: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

110 File Documentation

00031 float *var_l;00032 float *p;00033 bool *labels;00035 ;0003600037 // Declare function prototypes00064 void parMEX(unsigned int numPixels, unsigned int *X, unsigned int *Y, unsigned int *Z, unsigned int *

n, unsigned int numAtlases, patch *patches, patch *patchTarget, unsigned int long_vector, doublethresh, unsigned int numAllPatches, int *q, float *dist_labels);

00065 // Declare function prototypes00090 void distLabelMask(unsigned int numPixels, unsigned int *n, std::vector<unsigned int> &vX,

std::vector<unsigned int> &vY, std::vector<unsigned int> &vZ, unsigned int numAtlases,patch *patches, patch *patchTarget, std::vector<unsigned int> i, unsigned int long_vector, doublethresh, unsigned int numAllPatches, float *dist_labels, unsigned int f, std::vector<float> dist,std::vector<float> dist_lb, std::vector<std::vector<bool> > labels);

00091 // Declare function prototypes00101 int clamp(int x, int a, int b);00109 float min(std::vector<float> v);

Generated on Thu Sep 3 2015 14:18:20 for Code Documentation by Doxygen

Page 129: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

Bibliografıa

[1] Nestor, S.M., Gibson, E., Gao, F.Q., Kiss, A., Black, S.E., Initiative, A.D.N.,et al.: A direct morphometric comparison of five labeling protocols for multi-atlas driven automatic segmentation of the hippocampus in alzheimer’s disease.NeuroImage 66 (2013) 50–70

[2] Jack, C.R., Bernstein, M.A., Fox, N.C., Thompson, P., Alexander, G., Harvey,D., Borowski, B., Britson, P.J., L Whitwell, J., Ward, C., et al.: The alzhei-mer’s disease neuroimaging initiative (adni): Mri methods. Journal of MagneticResonance Imaging 27 (2008) 685–691

[3] Boccardi, M., Bocchetta, M., Apostolova, L.G., Barnes, J., Bartzokis, G., Cor-betta, G., DeCarli, C., Firbank, M., Ganzola, R., Gerritsen, L., et al.: Delphidefinition of the eadc-adni harmonized protocol for hippocampal segmentationon magnetic resonance. Alzheimer’s & Dementia (2014)

[4] : Enigma. (http://enigma.ini.usc.edu/)

[5] Stein, J.L., Medland, S.E., Vasquez, A.A., Hibar, D.P., Senstad, R.E., Winkler,A.M., Toro, R., Appel, K., Bartecek, R., Bergmann, Ø., et al.: Identification ofcommon variants associated with human hippocampal and intracranial volumes.Nature genetics 44 (2012) 552–561

[6] : Fsl overview. (http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslOverview)

[7] Smith, S.M.: Fast robust automated brain extraction. Human brain mapping17 (2002) 143–155

[8] Mazziotta, J.C., Toga, A.W., Evans, A., Fox, P., Lancaster, J.: A probabilisticatlas of the human brain: theory and rationale for its development the interna-tional consortium for brain mapping (icbm). Neuroimage 2 (1995) 89–101

[9] Jenkinson, M., Smith, S.: A global optimisation method for robust affine regis-tration of brain images. Medical image analysis 5 (2001) 143–156

[10] Jenkinson, M., Bannister, P., Brady, M., Smith, S.: Improved optimizationfor the robust and accurate linear registration and motion correction of brainimages. Neuroimage 17 (2002) 825–841

[11] Buckner, R.L., Head, D., Parker, J., Fotenos, A.F., Marcus, D., Morris, J.C.,Snyder, A.Z.: A unified approach for morphometric and functional data analy-sis in young, old, and demented adults using automated atlas-based head sizenormalization: reliability and validation against manual measurement of totalintracranial volume. Neuroimage 23 (2004) 724–738

111

Page 130: Segmentacion multi-atlas en neuro-imag enes para la ...€¦ · iii T tulo: Segmentaci on multi-atlas en neuro-imag enes para la extracci on autom atica del hipocampo Autor: Jos e

112 BIBLIOGRAFIA

[12] Klein, S., Staring, M., Murphy, K., Viergever, M.A., Pluim, J.P.: Elastix: atoolbox for intensity-based medical image registration. Medical Imaging, IEEETransactions on 29 (2010) 196–205

[13] Avants, B.B., Tustison, N.J., Stauffer, M., Song, G., Wu, B., Gee, J.C.: Theinsight toolkit image registration framework. Frontiers in neuroinformatics 8(2014)

[14] Suh, J.W., Wang, H., Das, S., Avants, B., Yushkevich, P.A.: Automatic seg-mentation of the hippocampus in t1-weighted mri with multi-atlas label fusionusing open source software: Evaluation in 1.5 and 3.0t adni mri. InternationalSociety for Magnetic Resonance in Medicine (ISMRM) conference (2011)

[15] Coupe, P., Manjon, J.V., Fonov, V., Pruessner, J., Robles, M., Collins, D.L.:Patch-based segmentation using expert priors: Application to hippocampus andventricle segmentation. NeuroImage 54 (2011) 940–954

[16] Rousseau, F., Habas, P.A., Studholme, C.: A supervised patch-based approachfor human brain labeling. Medical Imaging, IEEE Transactions on 30 (2011)1852–1862

[17] Boccardi, M., Bocchetta, M., Morency, F.C., Collins, D.L., Nishikawa, M., Gan-zola, R., Grothe, M.J., Wolf, D., Redolfi, A., Pievani, M., et al.: Training labelsfor hippocampal segmentation based on the eadc-adni harmonized hippocampalprotocol. Alzheimer’s & Dementia (2015)

[18] : A harmonized protocol for hippocampal volumetry: an eadc-adni effort. (http://www.hippocampal-protocol.net/SOPs/index.php)

[19] : Adni — alzheimer’s disease neuroimaging initiative. (http://adni.loni.usc.edu/)

[20] Folstein, M.F., Folstein, S.E., McHugh, P.R.: “mini-mental state”: a practicalmethod for grading the cognitive state of patients for the clinician. Journal ofpsychiatric research 12 (1975) 189–198

[21] Boccardi, M., Ganzola, R., Bocchetta, M., Pievani, M., Redolfi, A., Bartzokis,G., Camicioli, R., Csernansky, J.G., de Leon, M.J., et al.: Survey of protocolsfor the manual segmentation of the hippocampus: preparatory steps towards ajoint eadc-adni harmonized protocol. Journal of Alzheimer’s disease: JAD 26(2011)

[22] Leung, K.K., Barnes, J., Modat, M., Ridgway, G.R., Bartlett, J.W., Fox, N.C.,Ourselin, S., Initiative, A.D.N., et al.: Brain maps: an automated, accurateand robust brain extraction technique using a template library. Neuroimage 55(2011) 1091–1108

[23] Keihaninejad, S., Heckemann, R.A., Fagiolo, G., Symms, M.R., Hajnal, J.V.,Hammers, A., Initiative, A.D.N., et al.: A robust method to estimate the intra-cranial volume across mri field strengths (1.5 t and 3t). Neuroimage 50 (2010)1427–1437

[24] Platero, C.: Combining patch-based strategies and non-rigid registration-basedlabel fusion methods. (Unpublished) (2015)