#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; use File::Basename qw(basename); use Data::Dump qw(dump); my %rois = ('global' => 'ACG', ('parietal' => 'Koedam'), ('tempor' => 'Scheltens'), ('frontal' => 'Kipps') ); my $parse_dir = shift; my @txts = find(file => 'name' => "*.txt", in => $parse_dir); my %info; dump @txts; foreach my $report (sort @txts){ my $name = basename $report; $name =~ s/\.txt$//; foreach my $roi (sort keys %rois){ if($roi eq 'global'){ $info{$name}{$rois{$roi}} = "NA"; }elsif($roi eq 'frontal'){ $info{$name}{$rois{$roi}.'_F'} = "NA"; $info{$name}{$rois{$roi}.'_A'} = "NA"; $info{$name}{$rois{$roi}.'_P'} = "NA"; }else{ $info{$name}{$rois{$roi}.'_I'} = "NA"; $info{$name}{$rois{$roi}.'_D'} = "NA"; } } open IDF, "<$report"; my $this_line; while() { if (/^Atr/){ foreach my $roi (sort keys %rois){ if (/$roi/){ if (/gra.*\d\/\d\/\d/ and /frontal/){ my ($fb, $ab, $pb) = /gra.*(\d)\/(\d)\/(\d)/; $info{$name}{$rois{$roi}.'_F'} = $fb if defined $fb; $info{$name}{$rois{$roi}.'_A'} = $ab if defined $ab; $info{$name}{$rois{$roi}.'_P'} = $pb if defined $pb; }elsif (/\(D\/I\).*\d*-*\d\/\d*-*\d/){ my ($gd,$gi) = /\(D\/I\).*\d*-*(\d)\/\d*-*(\d)/; $info{$name}{$rois{$roi}.'_I'} = $gi if defined $gi; $info{$name}{$rois{$roi}.'_D'} = $gd if defined $gd; }else{ (my $gb) = /\d*-*(\d)/; unless (/global/) { $info{$name}{$rois{$roi}.'_I'} = $gb if defined $gb; $info{$name}{$rois{$roi}.'_D'} = $gb if defined $gb; }else{ $info{$name}{$rois{$roi}} = $gb if defined $gb; } } } } } } close IDF; } print "Subject"; foreach my $roi (sort keys %rois){ my $ch; if ($roi eq 'global'){ $ch = ','.$rois{$roi}; }elsif($roi eq 'frontal'){ $ch = ','.$rois{$roi}.'_F,'.$rois{$roi}.'_A,'.$rois{$roi}.'_P'; }else{ $ch = ','.$rois{$roi}.'_I,'.$rois{$roi}.'_D'; } print "$ch"; } print "\n"; foreach my $subject (sort keys %info){ print "$subject"; foreach my $roi (sort keys %rois){ if ($roi eq 'global'){ my $ag = exists($info{$subject}{$rois{$roi}})?$info{$subject}{$rois{$roi}}:"NA"; print ",$ag"; }elsif ($roi eq 'frontal'){ my $af = exists($info{$subject}{$rois{$roi}.'_F'})?$info{$subject}{$rois{$roi}.'_F'}:"NA"; my $aa = exists($info{$subject}{$rois{$roi}.'_A'})?$info{$subject}{$rois{$roi}.'_A'}:"NA"; my $ap = exists($info{$subject}{$rois{$roi}.'_P'})?$info{$subject}{$rois{$roi}.'_P'}:"NA"; print ",$af,$aa,$ap"; }else{ my $ad = exists($info{$subject}{$rois{$roi}.'_D'})?$info{$subject}{$rois{$roi}.'_D'}:"NA"; my $ai = exists($info{$subject}{$rois{$roi}.'_I'})?$info{$subject}{$rois{$roi}.'_I'}:"NA"; print ",$ai,$ad"; } } print "\n"; }