#!/usr/bin/perl use strict; use warnings; use NEURO qw(load_study); use Data::Dump qw(dump); use File::Find::Rule; my $study = "facehbi"; my %std = load_study($study); my $src_dir = "/nas/clinic/facehbi"; my $output_dir = $std{'PET-FBB'}; my @other_exts = ("nii.gz","json"); opendir(my $dh, $src_dir) || die "Can't opendir $src_dir: $!"; my @adqs = grep {/^[A-Za-z]/} readdir($dh); closedir $dh; foreach my $adq (sort @adqs) { (my $subject = $adq) =~ s/.*-F(.*)B$/0$1/; my $order = 'dcm2niix -z y -o '.$std{'DATA'}.'/tmp/ '.$src_dir.'/'.$adq.'/DICOM'; print "$order\n"; system($order); my @conv_files = find(file => 'name' => "*.nii.gz", in => $std{'DATA'}.'/tmp/'); foreach my $nii_file (@conv_files){ $order = 'fslinfo '.$nii_file; my %xinfo; foreach (qx/$order/){ my ( $key, $value ) = /(\S+)\s+(\S+)\s*.*/; $xinfo{$key} =$value; } if($xinfo{"dim4"}>1){ print "Choosing and moving files\n"; $order = 'fslsplit '.$nii_file.' '.$output_dir.'/smc'.$subject.'s -t'; print "$order\n"; system($order); } } print "Cleaning house\n"; $order = "rm $std{'DATA'}/tmp/*"; system($order); }