#!/usr/bin/perl use warnings; $input = "infile"; $background = "2"; open (INPUT, $input) or die "Cannot open infile!$!"; dbmopen (%PAHASH, "crDB", 0777) or die "Cannot open DBM file!$!"; while () { next if (/^Gene/) || (/^AFFX/) || (/^2000/); chomp (@linearray = split "\t", $_); $name = shift @linearray; $signal = shift @linearray; $affycall = shift @linearray; #$name =~ s/_.{2,4}$//; if ($affycall eq "P" && $signal>$background) { $$PAHASH{$name}[0]++; } else { $$PAHASH{$name}[1]++; } } open (PRESENT, ">present"); open (ABSENT, ">absent"); foreach $key (keys %PAHASH) { if (defined $$PAHASH{$key}[0]) { print PRESENT "$key\t($$PAHASH{$key}[0] present calls)"; } else { print ABSENT "$key\t($$PAHASH{$key}[1] absent calls)\n"; } } dbmclose %PAHASH; exit;