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,
#!/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 .