User Tools

Site Tools


neuroimagen:xnat_pipelines

This is an old revision of the document!


Plataforma XNAT - Pipelines

Instalación de los pipelines de Xnat

Prerrequisitos:

  • XNat instalado y funcionando
  • Los programas Git y Mercurial para descargar código de repositorios.
  • El programa mrimicro que proporciona la herramienta dcm2niix que se usa para convertir DICOM en NIFTI.

Descarga del software

Seguimos el tutorial de arriba que sugiere una forma de instalación desde un directorio temporal, que requiere menos pasos que hacerlo, como indican en otros tutoriales, desde dentro del XNAT_HOME (el resultado es equivalente)

Sistema de pipelines

$ cd
$ mkdir tmp
$ cd tmp
$ git clone https://github.com/NrgXnat/xnat-pipeline-engine.git
$ cd xnat-pipeline-engine
$ vim gradle.properties
xnatUrl=http://detritus.fundacioace.com:8088/xnat
siteName=XNAT
adminEmail=osotolongo@fundacioace.com
smtpServer=smtp.fundacioace.com
destination=/nas/data/xnat/pipeline
modulePaths=/nas/daniel/tmp/modules

Nota: si no se pone el servidor SMTP correcto, no funcionará la característica de muchos pipelines de enviar un mensaje de correo al usuario diciéndole que un proceso largo ha terminado.

Pipeline que convierte DICOM a NIFTI

$ cd
$ cd tmp
$ mkdir modules
$ cd modules
$ hg clone https://bitbucket.org/nrg_customizations/nrg_pipeline_dicomtonifti

Este pipeline usa el dcm2niix para convertir los DICOM en un NIFTI 4D. Por eso el el ejecutable dcm2niix debería estar accesible y visible (o sea, en el PATH) del usuario bajo en que se ejecuta XNat. Si no es así, se debe incluir la ruta en el script de configuración:

$ cd nrg_pipeline_dicomtonifti/scripts/scripts
$ vim dcm2niix_setup.sh
#!/bin/bash
 
DCM2NIIX_HOME=/nas/software/mricron/
export PATH=$DCM2NIIX_HOME:$PATH

Instalación del pipeline

Basta ejecutar desde el directorio xnat-pipeline-engine el programa gradlew (como root):

$ cd
$ cd tmp/xnat-pipeline-engine
$ sudo ./gradlew

El programa gradlew instala en $XNAT_HOME/pipeline los módulos/pipelines que estaban en el paquete y otros que son usados desde él, así como varias herramientas para interactuar con XNat desde scripts.

Resultado de la instalación

En $XNAT_HOME/pipeline se habrán creado varios directorios, entre ellos el catalog, dentro del cual se pueden encontrar los distintos pipelines. En particular, el que interesa para este ejemplo es el dcm2niix.

$ ls /nas/data/xnat/pipeline/catalog/
nt-tools         DicomToNifti      FSL_tools      pipeline-tools
birn_tools        Freesurfer        images         utils
commandlineTools  freesurfer_tools  mricron        validation_tools
dcm2niix          FSL               notifications  xnat_tools

Comprobación de la instalación

Accediendo a XNat, en el menú Administer > Pipelines, seleccionar el enlace a “Add pipeline to repository”. En la página que se abre, se debe introducir en el campo “Enter path to pipeline descriptor xml ⇒” la ruta absoluta a la descripción XML del pipeline que queremos usar:

/nas/data/xnat/pipeline/catalog/dcm2niix/DicomToNifti_X.xml

Una vez definido el pipeline en XNat, se debe crear un proyecto y, dentro en él, seleccionar los pipelines que se quieren ejecutar sobre las secuencias que se cargarán en él.

Para ello, en el proyecto, se selecciona la pestaña “Pipelines” y se hace click sobre “Add more pipelines”: se debe añadir la línea de la tabla donde ponga “DicomToNifti_X.xml”. En la ventana que se abre, se deben seleccionar las dos opciones de configuración:

* Launch pipeline automatically when session is archived

Esta opción nos recuerda que el procesamiento se lleva a cabo una vez se cargan las imágenes en el proyecto (o, si se cargan como “pre-archivo”, cuando se selecciona archivar éste).

Para comprobar que la conversión se ha completado, se puede seleccionar “Actions > Download images”. En la página que se carga, se verá en la columna central con los “Scan formats” un apartado “NIFTY”.

Ejemplos de pipelines

A continuación se explica cuál es la estructura de un pipeline y se dan ejemplos de modificación de un pipeline y de construcción de otro.

Estructura de un pipeline

Un pipeline se define en un archivo XML dentro de un subdirectorio de pipeline/catalog que se crea al instalar en pipeline engine (dentro de /nas/data/xnat). En el subdirectorio se recomienda la siguiente estructura:

  • descripción XML del pipeline
  • resources: subdirectorio con definiciones XML para llamar a programas externos
  • scripts: subdirectorio con los scripts o programas externos propios del pipeline

Ejemplo: el pipeline …

La descripción del pipeline se hace en un documento XML con la siguiente estructura:



Ejemplo: modificación del //pipeline// ...

Ejemplo: limpieza de las series en una sesión DICOM

Aquí se describirá el pipeline CleanMRSession que lleva a cabo la selección de los scans de una serie DICOM de forma análoga a la descrita en la página Usar la API de XNAT.

Este pipeline consta de los siguientes archivos:

  • CleanMRSession.xml
  • resources/cleanMRSession.xml
  • scripts/cleanMRSession.sh (script Bash)
CleanMRSession.xml

El código, completo, es así:

cleanMRSession.xml (descripción de cleamMRSession.sh)

El código, completo, es así:

cleanMRSession.sh (script que realiza el borrado)

El código, completo, es así:

neuroimagen/xnat_pipelines.1572311609.txt.gz · Last modified: 2020/08/04 10:47 (external edit)