#!/usr/bin/perl use strict; use warnings; use NEURO qw(load_study check_or_make); use Data::Dump qw(dump); use File::Find::Rule; my $study = "bioface"; my %std = load_study($study); my $src_dir = '/nas/bioface_raw/'; my $conv_file = $std{'DATA'}.'/converted_nifti.csv'; my $ids_file = $std{'DATA'}.'/ids.csv'; my $names_file =$std{'DATA'}.'/ni_names.csv'; my $proj_file = $std{'DATA'}.'/bioface.csv'; #Leo la DB my %idsinfo; open IDS, "<$ids_file" or die $!; while(){ chomp; my ($key, $value) = split(/,\s?/); $idsinfo{$key} = $value; } close IDS; #Leo los que ya he descomprimido my @orig_str = qx/ls $src_dir/; chomp @orig_str; #Leo los que se han convertido my @conv_str; open CONV, "<$conv_file" or die $!; chomp (@conv_str = ); close CONV; #Y a ver cuantos faltan por convertir! my %conv_str = map { $_ => 1 } @conv_str; my @not_conv = grep !$conv_str{$_}, @orig_str; # y a convertirlos! foreach my $guy (@not_conv){ if(exists($idsinfo{$guy})){ my $odir = $std{'DATA'}.'/niftis/'.$guy; check_or_make($odir); my $order = 'dcm2niix -z i -b y -o '.$odir.' '.$src_dir.'/'.$guy; print "$order\n"; system($order); } } #actualizo los convertidos push(@conv_str, @not_conv); open CONV, ">$conv_file" or die $!; print CONV "$_\n" foreach @conv_str; close CONV;