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 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
#!/usr/bin/env perl
use strict;
use warnings;
use lib ("/usr/lib/trinityrnaseq/PerlLib");
use WigParser;
my $usage = "usage: $0 wigA [ wigB ... ]\n\n";
my @wig_files = @ARGV;
unless (@wig_files) {
die $usage;
}
main: {
my @data_arefs;
my $max_pos = 0;
foreach my $wig_file (@wig_files) {
my %scaff_to_data = &WigParser::parse_wig($wig_file);
my @scaffs = keys %scaff_to_data;
if (scalar(@scaffs) != 1) {
die "Error, only a single scaffold can be leveraged by Artemis, and " . scalar(@scaffs) . " scaffs worth of data are found in file: $wig_file:\n@scaffs";
}
my $scaff = $scaffs[0];
my $data_aref = $scaff_to_data{$scaff};
push (@data_arefs, $data_aref);
my $max = $#$data_aref;
if ($max > $max_pos) {
$max_pos = $max;
}
}
## output results
for (my $i = 1; $i <= $max_pos; $i++) {
my $printed_flag = 0;
foreach my $data_aref (@data_arefs) {
my $val = $data_aref->[$i] || 0;
if ($printed_flag) {
print "\t";
}
print "$val";
$printed_flag = 1;
}
print "\n";
}
exit(0);
}
|