User Tools

Site Tools


neuroimagen:fbb

This is an old revision of the document!


Problemas con el procesamiento de FBB y como no morir en el intento

de DICOM a NiFTI

Necesitamos convertir los DICOM de FBB a formato NiFTI-1 para trabajar con FSL. El servidor DICOM corta el numero de slices por directorio a 500 por lo que inicialmente hubo muchisimos problemas de conversion y procesamiento.

Luego hay que buscar por todas las subcarpetas del DICOM las imagenes 4x5min que estan desordenadas. Para convertir uno de los sujetos ha de hacerse algo asi,

$ for x in `find /nas/raw_images/facehbi/fbb/FACEHBI-F001B/DICOM/ -type f`; do if [[ `dckey -k "SeriesDescription" $x 2>&1 | grep  "4x5min"` ]]; then cp $x /nas/facehbi/tmp_2nifti/; fi; done; y=$(ls /nas/facehbi/tmp_2nifti/ | head -n 1); dcm2nii -o /nas/facehbi/tmp/ /nas/facehbi/tmp_2nifti/$y;

que da una salida muy ruidosa, pero funciona. Para hacerlos todos de una tacada habria que iterar esto por todos los sujetos.

for s in `ls -d /nas/clinic/* | grep FACEHBI | grep "B$"`; do sbj=$(echo $s |sed 's/.*-F\(.*\)B$/\1/');  for x in `find ${s}/DICOM/ -type f`; do if [[ `dckey -k "SeriesDescription" $x 2>&1 | grep  "4x5min"` ]]; then cp $x /nas/facehbi/tmp_2nifti/; fi; done; y=$(ls /nas/facehbi/tmp_2nifti/ | head -n 1); dcm2nii -o /nas/facehbi/tmp/ /nas/facehbi/tmp_2nifti/$y; conv=$(ls /nas/facehbi/tmp/ | head -n 1); fslsplit /nas/facehbi/tmp/${conv} /nas/facehbi/fbb_first/smc0${sbj}s -t; rm -rf /nas/facehbi/tmp/*; rm -rf /nas/facehbi/tmp_2nifti/*; done

si queremos aprovechar un archivo yet.txt (ver aqui)

$ for sbj in `awk -F";" '{print $1}' yet.txt | sed 's/0//;'`; do s="/nas/clinic/FACEHBI-F${sbj}B";  for x in `find ${s}/DICOM/ -type f`; do if [[ `dckey -k "SeriesDescription" $x 2>&1 | grep  "4x5min"` ]]; then cp $x /nas/facehbi/tmp_2nifti/; fi; done; y=$(ls /nas/facehbi/tmp_2nifti/ | head -n 1); dcm2nii -o /nas/facehbi/tmp/ /nas/facehbi/tmp_2nifti/$y; conv=$(ls /nas/facehbi/tmp/ | head -n 1); fslsplit /nas/facehbi/tmp/${conv} /nas/facehbi/fbb/smc0${sbj}s -t; rm -rf /nas/facehbi/tmp/*; rm -rf /nas/facehbi/tmp_2nifti/*; done

Correccion de movimiento

Ahora tenemos 4 archivos representando la integracion de 5 min y hay que corregistrarlos al espacio de usuario. Lo primero es traer el archivo de freesurfer y luego corregistrar cada uo de los fbb al user space. despues se ha de unirlos temporalmente y hacer un mcflirt.

lo primero seria traerse la mri del directorio de freesurfer

get_fs_subj

y luego corregistrar cada imagen al espacio del sujeto. Hay 4 variantes para esto.

1.- Intentando registrar cada imagen independientemente.

fbb_reg

2.- Usando la informacion de un registro para el resto

fbb_regc

3.- Usando la informacion solo del cerebro extraido para hacer el corregistro

fbb_regb

4.- el mas complicado, usando una mascara. Este metodo se probo con el corregistro de PiBs y usa un umbral de intensidad

fbb_regm

Esto lo he intentado agrupar en el script fbb_correct.pl,

fbb_correct.pl (chunk)

Resumiendo

si todo va bien basta con hacer:

$ fbb_correct.pl -e facehbi 
$ parallel_fbb_rois_metrics.pl facehbi

Postprocessing (carrot)

$ cd /home/osotolongo/Documents/ACE/facehbi
$ R CMD BATCH selected_mri.r
$ sed 's/"//g' facehbi_mri_selected.csv | awk -F"," '{if($1!="Subject") printf("%04d;%s;%s;%s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7); else printf("%s;%s;%s;%s;%s;%s;%s\n",$1,$2,$3,$4,$5,$6,$7)}' > facehbi_mri_selected_reformatted.csv
$ join -t";" -j 1 facehbi_fbb_fs_suvr_predef.csv facehbi_mri_selected_reformatted.csv > facehbi_fbb_mri.csv
$ join -t";" -j 1 facehbi_fbb_mri.csv facehbi_dti.csv > facehbi_fbb_mri_dti.csv
$ awk 'NR<2{print $0;next}{print $0| "sort -k1"}' demographics.csv | sed 's/, /;/g' > facehbi_demographics.csv
$ join -t";" -j 1 facehbi_demographics.csv facehbi_fbb_mri_dti.csv > facehbi_data.csv
$ sed 's/;/ /g' facehbi_data.csv > facehbi_data.dat

extract_data | awk 'NR<3{print $0;next}{print $0| “sort -r”}'

neuroimagen/fbb.1462439238.txt.gz · Last modified: 2020/08/04 10:45 (external edit)