This shows you the differences between two versions of the page.
neuroimagen:pipe03 [2019/04/30 09:53] osotolongo [PET-FBB] |
neuroimagen:pipe03 [2020/08/04 10:58] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== ACE Pipeline (v0.3.0) ====== | ||
- | |||
- | De momento, el procesamiento MRI, rs/fMRI y DTI esta integrado en el cluster. El procesamiento de las imagenes PET no lo esta. | ||
- | ===== Creando el proyecto ===== | ||
- | Para comenzar a trabajar es necesario crear la estructura del proyecto, que debe ser fija. Para ello existe el script // | ||
- | |||
- | **Ejemplo**, | ||
- | |||
- | < | ||
- | $ make_std.pl mopead | ||
- | </ | ||
- | |||
- | crea el archivo // | ||
- | |||
- | < | ||
- | $ cat ~/ | ||
- | DATA = / | ||
- | DATABASE = / | ||
- | WORKING = / | ||
- | NIFTI = / | ||
- | MRI = / | ||
- | fMRI = / | ||
- | DTI = / | ||
- | PET-FDG = / | ||
- | PET-PIB = / | ||
- | PET-FBB = / | ||
- | FBB-NC = / | ||
- | SPECT = / | ||
- | </ | ||
- | |||
- | Este archivo lo leen todos los demas scripts, así que si es necesario mover algun directorio de sitio,basta con cambiar este archivo para que los scripts busquen la imagenes en el nuevo directorio. | ||
- | |||
- | Fuera de crear el directorio del proyecto y el directorio // | ||
- | |||
- | < | ||
- | $ cat mopead.csv | ||
- | 0001;mop | ||
- | 0002;mop | ||
- | 0003;mop | ||
- | 0004;mop | ||
- | 0005;mop | ||
- | 0006;mop | ||
- | 0007;mop | ||
- | 0008;mop | ||
- | 0009;mop | ||
- | 0010;mop | ||
- | 0011;mop | ||
- | 0012;mop | ||
- | 0013;mop | ||
- | 0014;mop | ||
- | 0015;mop | ||
- | 0016;mop | ||
- | 0017;mop | ||
- | 0018;mop | ||
- | 0019;mop | ||
- | 0020;mop | ||
- | 0021;mop | ||
- | 0022;mop | ||
- | 0023;mop | ||
- | </ | ||
- | |||
- | Esta no es más que una cadena numerica de entre 4 y 6 numeros (no tiene por que ser consecutiva ni estar ordenada) y una cadena de caracteres de entre 1 y 4 caracteres (no tienen que ser iguales, puede usarse para diferenciar grupos), separados por un punto y coma (;). //Cuatro numeros y tres caracteres es un buen compromiso.// | ||
- | |||
- | ===== MRI ===== | ||
- | La organizacion de las tareas de segmentacion se realizo con el proyecto MOPEAD. Ver [[neuroimagen: | ||
- | |||
- | Los archivos de imagen //T1// deben estar almacenados en el directorio //mri// dentro del directorio del proyecto y en formato NIfTI-1. Deben ademas ser nombrados de acuerdo a la base de datos del proyecto. El archivo // | ||
- | |||
- | El script // | ||
- | * //-a//, adjunta el archivo log al email | ||
- | * //-cut//, para hacer solo un subconjunto de los archivos. Ver mas abajo en [[neuroimagen: | ||
- | |||
- | Así, | ||
- | < | ||
- | $ fsl2fs.pl mopead | ||
- | </ | ||
- | crea la estructura y convierte todos los T1 en // | ||
- | |||
- | < | ||
- | $ ls / | ||
- | mop0001s0005.nii.gz | ||
- | mop0002s0005.nii.gz | ||
- | mop0003s0005.nii.gz | ||
- | mop0004s0005.nii.gz | ||
- | mop0005s0005.nii.gz | ||
- | mop0006s0005.nii.gz | ||
- | |||
- | $ ls -d / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | / | ||
- | |||
- | $ ls / | ||
- | 001.mgz | ||
- | </ | ||
- | |||
- | Ya la estructura esta preparada para lanzar la segmentación. Para esto es el script // | ||
- | * //-a//, adjunta el archivo log al email | ||
- | * //-cut//, para hacer solo un subconjunto de los sujetos. Ver [[neuroimagen: | ||
- | |||
- | La orden, | ||
- | < | ||
- | $ precon.pl mopead | ||
- | </ | ||
- | lanza la segmentacion de freesurfer al // | ||
- | |||
- | Para comprobar si hay algun error se lanza otro script, | ||
- | < | ||
- | $ check_fs_run.pl mopead | ||
- | </ | ||
- | Este lee los logs de // | ||
- | |||
- | Tras esto solo queda sacar las metricas, | ||
- | < | ||
- | $ mri_metrics.pl mopead | ||
- | </ | ||
- | que devuelve el archivo // | ||
- | ===== DTI ===== | ||
- | |||
- | Para la redefinicion del calculo DTI se ha utilizado el proyecto MOPEAD. Ver la [[neuroimagen: | ||
- | |||
- | ==== Preprocesamiento ==== | ||
- | Los archivos de //DTI// deben estar almacenados en el directorio //dti// dentro del directorio del proyecto y en formato NIfTI-1. Deben ademas ser nombrados de acuerdo a la base de datos del proyecto. El archivo // | ||
- | |||
- | De cara al cluster, hay dos maneras de ejecutar el procesamiento DTI. Los scripts // | ||
- | |||
- | Las opciones son, | ||
- | * //-cut//, (Ver [[neuroimagen: | ||
- | * // | ||
- | * // | ||
- | |||
- | Por ejemplo, | ||
- | |||
- | <code bash> | ||
- | $ dti_reg_split -nocorr -cut soloestos.csv facehbi | ||
- | </ | ||
- | |||
- | procesara los sujetos contenidos en el archivo // | ||
- | |||
- | Los valores de FA y MD se obtienen ejecutando // | ||
- | <code bash> | ||
- | $ dti_metrics.pl facehbi | ||
- | </ | ||
- | Por defecto utiliza el //JHU white-matter tractography atlas//. Las opciones son, | ||
- | * //-l//, no envía la tabla por email | ||
- | * //-a1//, usa el // | ||
- | * //-a2//, usa el //JHU white-matter tractography atlas// | ||
- | * //-sd//, incluye tambien las desviaciones standard | ||
- | |||
- | ==== Tractografía ==== | ||
- | Para la tractografia se utliza el script // | ||
- | |||
- | Las opciones son, | ||
- | * //-cut// (Ver [[neuroimagen: | ||
- | * < | ||
- | * //-uofm//: utiliza el [[https:// | ||
- | * //-s2t//: ejecuta // | ||
- | |||
- | Por ejemplo para ejecutar el script con los hipocampos como mascara, | ||
- | <code bash> | ||
- | $ cat dti_track.seed | ||
- | 17 | ||
- | 53 | ||
- | |||
- | $ dti_track.pl mopead | ||
- | </ | ||
- | |||
- | Para ejecutar esto mismo en el //Default Mode Network dorsal//, definido por el [[https:// | ||
- | <code bash> | ||
- | $ dti_track.pl -uofm DMN_dorsal mopead | ||
- | </ | ||
- | |||
- | Para hacer un //seed to targets// del nodo 1 de la //Laguage Network//, de este atlas, a los demas nodos, | ||
- | <code bash> | ||
- | $ cat dti_track.seed | ||
- | mri_LN1.nii | ||
- | |||
- | $ cat dti_track.targets | ||
- | mri_LN2.nii | ||
- | mri_LN3.nii | ||
- | mri_LN4.nii | ||
- | mri_LN5.nii | ||
- | mri_LN6.nii | ||
- | mri_LN7.nii | ||
- | |||
- | $ dti_track.pl -s2t -uofm LN mopead | ||
- | </ | ||
- | |||
- | ==== Metricas en tractos escogidos ==== | ||
- | |||
- | Una vez hecha la tractografia tenemos un mapa de determinado grupo de tractos sobre los que podemos sacar, para cada sujeto, los valores medios de FA y MD. Esto lo podemos hacer con el script // | ||
- | |||
- | El procedimiento depende de que tracto hayamos procesado. Por ejemplo, | ||
- | <code bash> | ||
- | $ dti_metrics_alt.pl -path DMN facehbi | ||
- | </ | ||
- | buscara los archivos //output// de // | ||
- | |||
- | La forma de proceder es, primero realizar la tractografia con el atlas y la red deseada, | ||
- | <code bash> | ||
- | dti_track.pl -uofm DMN facehbi | ||
- | </ | ||
- | luego mover los directorios al //path// correcto (esto se puede hacer automaticamente pero es un paso sencillo y para mantener la generalidad es mejor dejarlo asi por ahora), | ||
- | <code bash> | ||
- | for x in `ls -d working/ | ||
- | </ | ||
- | y finalmente sacar las metricas, | ||
- | <code bash> | ||
- | dti_metrics_alt.pl -path DMN facehbi | ||
- | </ | ||
- | |||
- | **Nota:** El paso 2 puede obviarse y el script por defecto buscara la tractografia en // | ||
- | |||
- | Las opciones son, | ||
- | * //-cut//, //-l// (Ver [[neuroimagen: | ||
- | * //-path//, define la red sobre la que se trabajara. Cambia el directorio de busqueda de las redes y el nombre del archivo de salida | ||
- | * //-thr//, seguido de un valor entre 0 y 1, cambia el valor de umbral bajo el cual se cortan las mascaras | ||
- | * //-sd//, añade la desviacion standard | ||
- | |||
- | |||
- | |||
- | |||
- | |||
- | ===== PET-FDG ===== | ||
- | |||
- | El primer paso para analizar las imágenes PET-FDG es registrarlas al espacio MNI. Para ello es necesario tener las imágenes MRI previamente procesadas con Freesurfer. El script es capaz de buscar y convertir las imágenes necesarias y copiarlas al directorio // | ||
- | |||
- | El comando a utilizar para el coregistro es, | ||
- | <code bash> | ||
- | $ pet_reg.pl estudio | ||
- | </ | ||
- | |||
- | Las opciones son, | ||
- | * //-cut//, //-a//, //-l//, (Ver [[neuroimagen: | ||
- | * //-norm//, normaliza las imagenes entre 0 y 1 | ||
- | |||
- | El script de registro en el espacio MNI produce además un informe de dicho registro en el archivo // | ||
- | registro de todas las imágenes se haya producido satisfactoriamente. | ||
- | Tras esto solo hay que decidir que normalización ha de hacerse y que ROI debe analizarse. Por ejemplo, | ||
- | |||
- | <code bash> | ||
- | cd working; for x in *_pet_inMNI*; | ||
- | </ | ||
- | normaliza por el //pons// todos los PET-FDG de los sujetos catalogados como //mci// o //hc// y halla el valor medio de la ROI de trabajo de ADNI. | ||
- | Esta linea está aquí a modo de ejemplo pero también puede hacerse con el comando, | ||
- | |||
- | <code bash> | ||
- | $ parallel_fdg_adniroi_metrics.pl estudio | ||
- | </ | ||
- | |||
- | que deja los resultados en el archivo, estudio_fdg_adni_suvr_predef.csv. Ver más sobre las [[http:// | ||
- | |||
- | Tambien pueden obtenerse estos valores en toda la segmentacion de freesurfer, normalizados por //pons//, | ||
- | |||
- | <code bash> | ||
- | $ pet_fdg_rois_metrics.pl estudio | ||
- | </ | ||
- | |||
- | o normalizados por el cerebelo, | ||
- | |||
- | <code bash> | ||
- | $ pet_fs_roi_metrics.pl estudio | ||
- | </ | ||
- | |||
- | |||
- | |||
- | ===== PET-PIB ===== | ||
- | |||
- | Las imagenes PET-PIB se registran al espacio anatomico del sujeto, | ||
- | |||
- | <code bash> | ||
- | $ pib_reg.pl estudio | ||
- | </ | ||
- | |||
- | Las opciones son, | ||
- | * //-cut//, //-a//, // | ||
- | * //-useb//, utiliza el cerebro extraido para hacer el registro | ||
- | * //-usem//, registra una mascara del PET-PIB al espacio de sujeto y utliza esta informacion para registrar la imagen | ||
- | |||
- | **Nota:** Las imagenes PIB son bastante problematicas de registrar, por ello aqui las opciones //-useb// y //-usem//, asi como el informe del registro. Se ha de inspeccionar visualmente el registro y relanzar con estas opciones en los sujetos que no haya funcionado. | ||
- | |||
- | Luego se extrae el valor medio de la captacion en el cortex **(en las 5 regiones que todo el mundo usa)**, normalizado por el cerebelo, | ||
- | <code bash> | ||
- | $ parallel_pib_rois_metrics.pl estudio | ||
- | </ | ||
- | |||
- | los resultados se escriben en el archivo // | ||
- | ===== PET-FBB ===== | ||
- | Esta herramienta se creo ustilizando el estudio FACEHBI como piloto. El procedimiento sigue las lineas de este estudio. Se reciben 4 imagenes, cada una integrando 5 minutos. Las imagenes se coregistran independientemente al espacio del sujeto y se luego promedian. | ||
- | |||
- | ** El analisis de FBB está integrado en el cluster y ahora utiliza SLURM ** por lo que puede controlarse con las herramientas correspondientes. | ||
- | |||
- | Para ello, | ||
- | |||
- | <code bash> | ||
- | $ fbb_correct.pl estudio | ||
- | </ | ||
- | |||
- | Las opciones son, | ||
- | * //-cut//, (Ver [[neuroimagen: | ||
- | |||
- | Tras esto, se extrae el valor medio en el cortex **(si, en las mismas 5 regiones)**, | ||
- | <code bash> | ||
- | $ fbb_rois_metrics.pl estudio | ||
- | </ | ||
- | los resultados se escriben en el archivo // | ||
- | |||
- | También pueden extraerse los valores de Centiloide, medidos tomando como referencia el valor en el cerebelo (completo), según [[https:// | ||
- | |||
- | <code bash> | ||
- | $ fbb_cl_metrics.pl estudio | ||
- | </ | ||
- | |||
- | y los resultados quedan en el archivo // | ||
- | |||
- | ===== fMRI ===== | ||
- | |||
- | El tratamiento de las fMRI se ha implementado, | ||
- | |||
- | ==== ICA individual ==== | ||
- | |||
- | Para realizar el ICA de un solo sujeto se utiliza el script // | ||
- | |||
- | <code bash> | ||
- | $ rs_ica_one.pl mopead | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | **Nota:** Para realizar esta tarea se utiliza una plantilla que se encuentra en // | ||
- | |||
- | ---- | ||
- | |||
- | Los resultados de cada sujeto quedan en // working/ | ||
- | |||
- | ==== ICA grupal ==== | ||
- | |||
- | Para realizar el ICA del proyecto o un grupo de sujetos se utliza el script // | ||
- | |||
- | <code bash> | ||
- | rs_ica_group.pl mopead | ||
- | </ | ||
- | |||
- | ---- | ||
- | |||
- | **Nota:** Para realizar el analisis se utilizan varias plantillas que se encuentran en ${PIPEDIR}/ | ||
- | |||
- | < | ||
- | notalone_ica_template.fsf | ||
- | group_ica_template_p1.fsf | ||
- | group_ica_template_targets.fsf | ||
- | group_ica_template_p2.fsf | ||
- | </ | ||
- | |||
- | Estas plantillas se rellenan con los directorios particulares del proyecto en si. No obstante, en caso de tener que cambiar alguna opción mas, como el TR, habria que editar directamente las plantillas correspondientes. Notese que en cualquier caso habria que cambiar dos plantillas, // | ||
- | |||
- | ---- | ||
- | |||
- | Los resultados de cada sujeto quedan en // | ||
- | ===== Opciones comunes ===== | ||
- | |||
- | Para realizar la misma tarea se usan en cada script las mismas opciones de entrada. | ||
- | |||
- | * //-cut//: toma una archivo //.csv// como argumento y ejecuta el script solo sobre los sujetos nombrados en ese archivo. Este archivo debe tener el mismo formato que la base de datos del proyectoy debe ser un subconjunto de ella. O sea, solo se ejecutara el script sobre los sujetos que **tambien** esten en la base de datos del proyecto. < | ||
- | |||
- | * //-a//: Envía como attachment los resultados finales o los //logs// que producen los scripts | ||
- | |||
- | * //-l//: Cuando por defecto el script envía attachments, | ||
- | |||
- | * Para manejar el cluster se usa [[https:// | ||