#!/usr/local/bin/perl # -*-Fundamental-*- open(BRTAGS, ") { chomp; $Brtags{$_} = 1; } close BRTAGS; open(TAGS, ") { chomp; ($tag, $mapping) = split(/\t+/, $_); $branch = "UNMAPPED"; if ($tag =~ /^(.*)-\d{3}$/ && $Brtags{"$1-br"}) { $branch = "$1-br"; } elsif ($tag =~ /^OLDphoebe-\d\d\d[a-z]{0,1}-(\d+-\d+)$/ && $Brtags{"OLDphoebe-$1-br"}) { $branch = "OLDphoebe-$1-br"; } if ($mapping eq "UNMAPPED" && $branch eq "UNMAPPED") { if ($tag =~ /[_\-]branch[_\-]?point$/i || $tag =~ /[_\-]bp$/i || $tag =~ /^branch[_\-]point/i || $tag =~ /[_\-]br[_\-](point|base)$/i) { $result = "BRANCHPOINT-DROPPED"; } else { $result = "UNMAPPED"; } } elsif ($mapping eq "UNMAPPED") { $result = "$branch [F]"; } elsif ($branch eq "UNMAPPED") { $result = "$mapping [H]"; } elsif ($branch eq $mapping) { $result = "$branch [B]"; } else { $result = "F-B-COLLISION"; } if ($result eq "UNMAPPED" || $result eq "F-B-COLLISION") { if ($tag =~ /^OLDphoebe-2-0-/) { $result = "OLDphoebe-2-0-br [M]"; } elsif ($tag =~ /^cp-1-/) { $result = "main [M]"; } } print "$tag\t$mapping\t$branch\t$result\n"; if (! defined($tally{$result})) { $tally{$result} = 1; } else { $tally{$result}++; } } $nmapped = 0; $nother = 0; foreach my $key (sort(keys(%tally))) { if ($key =~ /^(UNMAPPED|F-B-COLLISION|BRANCHPOINT-DROPPED)$/) { printf ("%20s %d\n", $key, $tally{$key}) } elsif ($key =~ /\[.\]/) { $nmapped++; } else { $nother++; } } printf ("%20s %d\n", "mapped", $nmapped); printf ("%20s %d\n", "other", $nother);