Brain Imaging Data Structure
Existe un numero de paquetes de software que procesan la neuroimagen en formato BIDS. Necesito elaborar alguna manera sencilla de procesar los archivos existentes de los proyectos y trasladarlos a este formato.
Voy a empezar con el fMRI,
- fmri2bids.pl
#!/usr/bin/perl use strict; use warnings; use Data::Dump qw(dump); my $idir = "fmri"; my $bdir = "bids"; opendir my ($dh), $idir or die "Could not open dir: $!"; my @files = grep { /.*s\d+\.nii\.gz/ } readdir $dh; close $dh; foreach my $nifti (@files){ (my $sn = $nifti) =~ s/\D+(\d+)s\d+\.nii\.gz/$1/; my $odir = $bdir."/sub-".$sn."/func"; my $order = "mkdir -p $odir"; print "$order \n"; system($order); (my $ifns = $nifti) =~ s/(\D+\d+s\d+)\.nii\.gz/$1/; (my $ifnp = $nifti) =~ s/(\D+\d+)s\d+\.nii\.gz/$1/; my $ifn = $idir."/".$nifti; my $ofn = $odir."/sub-".$sn."_task-rs_run-1_bold.nii.gz"; $order = "cp $ifn $ofn"; print "$order\n"; system($order); $ifn = $idir."/".$ifns.".json"; $ofn = $odir."/sub-".$sn."_task-rs_run-1_bold.json"; $order = "cp $ifn $ofn"; print "$order\n"; system($order); $ifn = $idir."/".$ifnp."_a2p.nii.gz"; $ofn = $odir."/sub-".$sn."_dir-a2p_bold.nii.gz"; $order = "cp $ifn $ofn"; print "$order\n"; system($order); $ifn = $idir."/".$ifnp."_p2a.nii.gz"; $ofn = $odir."/sub-".$sn."_dir-p2a_bold.nii.gz"; $order = "cp $ifn $ofn"; print "$order\n"; system($order); }
lo mismo podemos hacer para el dti,
Y de esta manera, al correr estos script lainformacion del proyecto que da en el formato deseado,
bids ├── sub-0001 │ ├── anat │ │ ├── sub-0001_T1w.json │ │ ├── sub-0001_T1w.nii.gz │ │ ├── sub-0001_T2w.json │ │ └── sub-0001_T2w.nii.gz │ ├── dwi │ │ ├── sub-0001_dwi_dir-a2p.nii.gz │ │ ├── sub-0001_dwi.json │ │ └── sub-0001_dwi.nii.gz │ └── func │ ├── sub-0001_dir-a2p_bold.nii.gz │ ├── sub-0001_dir-p2a_bold.nii.gz │ ├── sub-0001_task-rs_run-1_bold.json │ └── sub-0001_task-rs_run-1_bold.nii.gz ├── sub-0002 │ ├── anat │ │ ├── sub-0002_T1w.json │ │ ├── sub-0002_T1w.nii.gz │ │ ├── sub-0002_T2w.json │ │ └── sub-0002_T2w.nii.gz │ ├── dwi │ │ ├── sub-0002_dwi_dir-a2p.nii.gz │ │ ├── sub-0002_dwi.json │ │ └── sub-0002_dwi.nii.gz │ └── func │ ├── sub-0002_dir-a2p_bold.nii.gz │ ├── sub-0002_dir-p2a_bold.nii.gz │ ├── sub-0002_task-rs_run-1_bold.json │ └── sub-0002_task-rs_run-1_bold.nii.gz ........
Nota: Falta mover los PETs pero tengo que tomar la decision de como guardarlos correctamente. Hay 4 archivos por sujeto y el proceso es algo mas complejo. Ademas hay que reconvertirlos para copiar los archivos .json.
Nota2: Cuando hay mas de un archivo por sujeto el procedimiento no sirve. Por eso he toamod el proyecto MOPEAD como piloto. Pensar como hacerlo.
Nota3: He tenido que retocar las plantillas para convertir de DCM a NIfTI. Debo poder hacer esto directamnte desde DCM. Revisar las plantillas para hacerlo .