User Tools

Site Tools


neuroimagen:tau_analysis_refact

Analisis de PET-tau

http://detritus.fundacioace.com/files/ADNI_UCBERKELEY_AV1451_Methods_2021-01-14.pdf

Voy a intentar entender el analisis de PET-tau a taves de un set de sujetos bajados de ADNI. Los sujetos deben tener una MRI y un PET-Tau hechos en fecha similar (+/- 6 meses?). En el documento de ADNI esta mas o menos explicado el analisis y con un poco de maña y otro de google podemos armar lo que falta.

Procesando

Basicamente se han de hacer algunas tareas que conducen a dos metricas distintas.

  • Registro de PET-Tau a espacio nativo MRI
  • Aplicar mascaras provenientes de la segmentacion FS a imagen PET-Tau
  • Calcular imagen SUVR segun valor en ROR
  • Calcular metricas sin corregir
  • Hacer PVC a imagen registrada
  • Calcular SUVR con correccion

Registro a T1w

El primer paso es colocar la imagen tau (4D de 6 slices) en espacio nativo T1. Debemos haber procesado el T1 con Freesurfer, asi que traemos primero el struc de FS. Ahora hacemos un split de la imagen tau y registramos cada imagen resultante al T1. La imagen tau final sera el valor medio de cada una de estas imagenes registradas.

Utilizamos las 6 imágenes de 5min para la correccion de movimiento

Y para ir preparando el wrapper

el call, usando el modulo SLURM.pm se hace como,

Informe de registro

Tras efectuar el registro se puede generar el informe para ver como ha ido. Aqui el procedimiento es muy parecido al de FBB asi que no vale la pena comentar nada

Hacer mascaras

Ahora debemos seleccionar las regiones de interes donde queremos medir el SUVR. Hay varias opciones, como las regiones de Braak donde normalmente se observa la progresion del AD, un combinacion de estas regiones o una meta-region que definamos.

Las definiciones de cada region se han tomado de los metodos de ADNI para el AV1451.

Ahora tomamos la segmentacion de FS (aparc+aseg), la llevamos a espacio nativo y seleccionamos, segun los LUT, los elementos de cada ROI. Se hace una mascara con cada ROI y simplemente se suman para tener la mascara de la ROI deseada.

Es bastante rapido de hacer

Esto en el wrapper ha de hacerse para cada roi que deseemos

Normalizacion

Mascara para normalizar

Vamos a normalizar por la sustancia gris del cerebelo. Para garantizar que no haya contaminacion en las mediciones de la materia gris del cerebelo tomamos solo la zona inferior (inferior cerebellum gray matter). Para ello se toma el atlas del cerebelo de SUIT en espacio MNI que proporciona AFNI. Se calcula el registro del T1w a espacio MNI y con la inversa se lleva este atlas a espacio nativo. De aqui se seleccionan las regiones inferiores del cerebelo y se hace una mascara del cerebelo calculado por FS. Ahora bien, dado que el cerebelo de SUIT no encaja exactamente con el segmentado de FS, tomamos la parte inferior y la parte superior (de SUIT) y a cada una se le hace un smooth con un kernel gaussiano de 8mm y se comparan. Si la inferior es mayor que la superior y pertenece a la segmentacion de FS, entonces se toma este punto como valido. La mascara resultante es la que se utilizara para normalizar. Esto parece muy complicado pero son dos operaciones matematicas, $B(I-S)$, donde \[ B(x) = \{ \begin{array}{cc} 1, & x>0 \\
0, & \textrm{otherwise} \end{array} \].

Un poco mas complicado pero similar a la extraccion de ROIs

Y en el wrapper se lanza como un proceso independiente en SLURM

Merge Masks

Ahora construimos un 4D con las mascaras que hemos escogido + la que utilizaremos para normalizar. Esto es un solo comando que usa el string que hemos venido construyendo y se lanza directamente tras terminar todas las mascaras

Calculo de valores e imagen SUVR

Ahora, ya podemos aplicar las mascaras que tenemos y calcular cuanto vale el //uptake// en cada una. Ademas como voy a tener el valor de normalizacio, calculo la imagen SUVR

Esto se lanza justo cuando se terminan de hacer las mascaras

PVC correction

Usando la imagen registrada y las mascaras 4D que hemos construido, calcularemos la correccion de volumen parcial (PVC) correspondiente a cada mascara. Vamos a usar PETPVC, desarrollada en University College London para corregir usando el metodo GTM.

Esto es una sola orden simple

y los lanzamos desde el wrapper cuando tengamos el SUVR

PVC correction (metodos)

Por defecto hemos elegido el GMT como metodo de correccion pero es posible elegir otro metodo de manera relativamente sencilla.

Esta, por ejemplo, es la implementación del Multi-target correction (MTC),

que puede añadirse al wrapper con solo algunas lineas

Pero que tambien habria que añadir como opcion en el archivo de las metricas (Ver mas abajo)

Metricas

Cuando tenemos el output del PVC (y los SUVR sin corregir), hemos de escribir toda la informacion en una tabla que agrupe las metricas y los sujetos. Ha de ser una tabla para los SUVR corregidos y la misma tablas para los SUVR sin corregir.

Pero como tenemos los resultados en el mismo formato, solo hay que escribir un algoritmo

Esto ha de lanzarse tras hacer los PVC

Mas sobre metodos de PVC

Para extraer las metricas siguiendo un metodo extra de correccion habra que cambiar la linea,

my @subs = ("pvc", "unc");

y añadir la cabecera del metodo. Por ejemplo, para el MTC,

my @subs = ("pvc", "unc","mtc");

Wrapper

Al final nos ha quedado un algoritmo extremadamente paralelizado y mucho mas rapido (aunque mas complejo) que, por ejemplo el procesamiento PET-FBB. Se hacen muchisimos procesos cortos. Dependiendo de cuantas ROI se procesen puede llegar a dividirse un sujeto en mas de 10 tareas relativamente rapidas. Por ejemplo, el procesamiento por defecto de 57 sujetos se divide en 675 tareas independientes con su arbol de dependencias bien definido.

Todo el procesamiento Tau, del NIfTI a las metricas finales

Testing with ADNI

Procesamiento

Ahora tengo que probar que todo funciona correctamente y comprar los resultados contra los reportados en ADNI. el primer paso debe ser escoger los sujetos que voy a procesar.

Lo que hago es ir a R, instalar el paquete ADNIMERGE y encontrar la correspondencia entre los RID y los PTID ya que los resultados del AV1451 se reportan con el RID pero las imagenes se identifican por el PTID.

Cuando tenga las lista de los PTID debo ir a la pagina de ADNI y buscar, en es ta lista, aquellos que tienen MRI T1 y PET-Tau al mismo tiempo. Entonces simplemente escogo algunos sujetos y bajo las dos imagenes (MRI y PET) que matcheen bien (uy que palabreja). Los tags son muy distintos aqui asi que debo revisar bien el proceso de conversion a BIDS. Pero con unos 50 MRI que se convierten automaticamente tengo para empezar. Despues tocara revisar que los PETs esten OK.

Entonces sigo el procedimiento usual de cualquier proyecto, hago la DB, convierto a BIDS, paso el recon a todas las MRI. Primero vamos a construir el proyecto de la manera usual y a ejecutar la segmentacion de Freesurfer y sacamos al final los datos que necesitemos para comparar.

Data ADNI

A ver que hay dentro,

Ah, voy a sacar una medida de aqui a ver,

y a preprocesar un poco

Comparando con ADNI

Pegando en bash

Esto lo puedo mirar con R

Después de haber revisado todos los procedimientos, comparado de varias maneras con los datos de ADNI y usado varias maneras de normalización hemos de tomar decisiones.

  1. La normalización se hará por inferior cerebellum gray matter (ICGM) que parece ser la mas estable.

Aqui las comparaciones,

Uncorrected Braak 1 PVCed Braak 1
Uncorrected Braak 3+4 PVCed Braak 3+4
Uncorrected Braak 5+6 PVCed Braak 5+6
Uncorrected Meta Temporal PVCed Meta Temporal

$R^2$

Uncorrected Corrected
Braak 1 0.97 0.96
Braak 3+4 0.99 0.98
Braak 5+6 0.99 0.95
Meta temporal 0.99 0.99

$slope$

Uncorrected Corrected
Braak 1 1.11 0.90
Braak 3+4 1.05 0.98
Braak 5+6 1.02 0.92
Meta temporal 1.07 0.98

Comparando con otro metodo de correccion (MTC)

Comparando Geometric Matrix Transfer (GMT) com Multi-target Correction (MTC)

Braak 1 Meta-temporal

y el ajuste,

$R^2$ $slope$
Braak 1 0.99 1.02
Meta-temporal 1.0 0.98

How to cite

PET-Tau scans have been processing following ADNI method, freely available at ADNI website for registered researchers [1, 2]. First, the 4D 30min PET image was separated into 6 5min images for movement correction and registered into the T1w subject native space. The regions of interest for calculating SUVR, as well as for normalization, where built using the Freesurfer 7.2 segmentation of the T1w. Partial volume correction was calculated using GTM method [3] with PETPVC [4]. Corrected and uncorrected SUVR where calculated using inferior cerebellum gray matter as region of reference.

[1] http://loni.adni.usc.edu. Flortaucipir (AV-1451) processing methods. (https://adni.bitbucket.io/reference/docs/UCBERKELEYAV1451/UCBERKELEY_AV1451_Methods_2021-01-14.pdf)

[2] Maass, A., et al., Comparison of multiple tau-PET measures as biomarkers in aging and Alzheimer's disease. Neuroimage, 2017. 157: p. 448-463.

[3] Rousset, O.G., Y. Ma, and A.C. Evans, Correction for partial volume effects in PET: principle and validation. J Nucl Med, 1998. 39(5): p. 904-11.

[4] BA Thomas, V Cuplov, A Bousse, A Mendes, K Thielemans, BF Hutton, K Erlandsson. PETPVC: a toolbox for performing partial volume correction techniques in positron emission tomography. Physics in Medicine and Biology 61 (22), 7975.

neuroimagen/tau_analysis_refact.txt · Last modified: 2021/11/28 16:39 by osotolongo