File: transpose.pl

package info (click to toggle)
snpeff 5.4.b%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 757,496 kB
  • sloc: java: 62,572; perl: 2,279; sh: 1,185; python: 744; xml: 507; makefile: 50
file content (27 lines) | stat: -rwxr-xr-x 526 bytes parent folder | download | duplicates (3)
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
#!/usr/bin/perl


use strict;

my(%data, $l);
my($maxcol) = 0;
my($rownum) = 0;

# Read data
while($l = <STDIN>) {
	chomp $l;
	my(@row) = split /\t/, $l;
	my($colnum) = 0;
	foreach my $val (@row) { $data{$rownum}{$colnum++} = $val; }
	$rownum++;
	$maxcol = $colnum if $colnum > $maxcol;
}

# Print data
my $maxrow = $rownum;
for (my $col = 0; $col < $maxcol; $col++) {
	for (my $row = 0; $row < $maxrow; $row++) {
		printf "%s%s", ($row == 0) ? "" : "\t", defined $data{$row}{$col} ? $data{$row}{$col} : "";
	}
	print "\n";
}