User Tools

Site Tools


neuroimagen:bids

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,

para los T1,

y para los T2,

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. FIXME

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 . DELETEME

neuroimagen/bids.txt · Last modified: 2020/08/04 10:58 (external edit)