File: join_multi_wig_to_graph_plot.pl

package info (click to toggle)
trinityrnaseq 2.11.0%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 417,528 kB
  • sloc: perl: 48,420; cpp: 17,749; java: 12,695; python: 3,124; sh: 1,030; ansic: 983; makefile: 688; xml: 62
file content (76 lines) | stat: -rwxr-xr-x 1,368 bytes parent folder | download | duplicates (2)
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);
    


    
}