1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/usr/bin/env perl
use strict;
use warnings;
my $usage = "usage: $0 file.intron_analysis ...\n\n";
my @files = @ARGV;
unless (@files) {
die "$usage\n\n";
}
my @types = qw(
NOVEL
REF
NOVELCOMBO
REFCOMBO
SUBrefCombo);
print "#analysis\t" . join("\t", @types) . "\n";
foreach my $intron_analysis_output (@files) {
my %T = map { + $_ => 1 } @types;
my %type_to_feature;
open (my $fh, $intron_analysis_output) or die "Error, cannot open file $intron_analysis_output";
while (<$fh>) {
chomp;
unless (/\w/) { next; }
my ($type, $intron_set, @rest) = split(/\t/);
unless ($T{$type}) {
print STDERR "Error, do not understand type: $type\n$_\n";
next;
}
$type_to_feature{$type}->{$intron_set} = 1;
}
close $fh;
my @vals;
foreach my $type (@types) {
my $count = scalar (keys %{$type_to_feature{$type}});
push (@vals, $count);
}
print $intron_analysis_output . "\t" . join("\t", @vals) . "\n";
}
exit(0);
|