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
|
#!/usr/bin/env perl
use strict;
use warnings;
my $usage = "usage: $0 (FPKM|RAW) fileA fileB ...\n\n";
unless (@ARGV && scalar(@ARGV) > 2 && $ARGV[0] =~ /^(FPKM|RAW)$/) {
die $usage;
}
my $dat_type = shift @ARGV;
my @files = @ARGV;
my %data;
foreach my $file (@files) {
open (my $fh, $file) or die "Error, cannot open file $file";
while (<$fh>) {
chomp;
unless (/\w/) { next; }
if (/^\#/) {
next;
}
my @x = split(/\t/);
my $trans = $x[0];
my $val = ($dat_type eq "FPKM") ? $x[5] : $x[4];
$data{$trans}->{$file} = $val;
}
close $fh;
}
print "#transcript\t" . join("\t", @files) . "\n";
foreach my $transcript (sort keys %data) {
print $transcript;
foreach my $file (@files) {
my $val = $data{$transcript}->{$file} || 0;
print "\t$val";
}
print "\n";
}
exit(0);
|