#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; use File::Path qw(make_path); use Data::Dump qw(dump); my $idir = '/old_nas/adni/ADNI'; my $odir = '/nas/data/gadni/bids'; my $rules = '/nas/data/gadni/gadni_mri.csv'; my %subjects; open IRF, "<$rules" or die "\nNo rules file\n\n"; while (){ my ($skey, $svalue) = /(\d{4});(.*)/; $subjects{$skey} = $svalue; } #dump %subjects; foreach my $subject (sort keys %subjects){ my $opath = $odir.'/sub-'.$subject.'/anat'; make_path($opath) unless (-d $opath); my $ipath = $idir.'/'.$subjects{$subject}; my @niftis = find(file => 'name' => '*.nii', in => $ipath); my $count = 1; foreach my $isrc (@niftis){ my $itrg = $opath.'/sub-'.$subject.'_run-'.sprintf("%02d", $count).'_T1w.nii.gz'; my $order = 'mri_convert --conform '.$isrc.' '.$itrg; print "$order\n"; system($order); $count++; } }