use FileUtil; my $f = shift; my $bedTopOut = shift; my $bedBotOut = shift; my $fh = FileUtil::openFileHandle($f); while (<$fh>) { $l = $_; chomp; my @d = split /\t/; next if $d[4] < 20; if ($d[1] & 16) { $mm{$d[2]}[0][$d[3]]++; $m{$d[2]}[0][$d[3]]++; } else { $mm{$d[2]}[1][$d[3]]++; $m{$d[2]}[1][$d[3]]++; } } $fh->close(); my $bfho = new FileHandle("| perl /geode/projects/ln/BL-CGBI/G1//bin/drusch/minimizeBedGraph.pl - >$bedTopOut"); foreach my $i (keys %m) { my $max = @{$m{$i}[0]}; for (my $j = 0; $j <= $max; $j++) { my $l = join "\t",$i,$j,$j+1,$mm{$i}[0][$j]+0; print $bfho $l,"\n"; } } $bfho->close(); my $bfho = new FileHandle("| perl /geode/projects/ln/BL-CGBI/G1//bin/drusch/minimizeBedGraph.pl - >$bedBotOut"); foreach my $i (keys %m) { my $max = @{$m{$i}[1]}; for (my $j = 0; $j <= $max; $j++) { my $l = join "\t",$i,$j,$j+1,$mm{$i}[1][$j]+0; print $bfho $l,"\n"; } } $bfho->close();