次のようなデータがあります(隣接行列):
foo bar 0.14 qux 0.2
bar foo 0.14 qux 0.4
qux foo 0.2 bar 0.4
私がやりたいのは、それらをペアワイズテーブルに変換することです:
foo bar 0.14
foo qux 0.2
bar qux 0.4
しかし、私は次のコードで立ち往生しています。それを行う正しい方法は何ですか?
use strict;
while ( <DATA> ) {
chomp;
next if (/^>/);
my $line = $_;
my @els = split(/\s+/,$line);
my $pivot = $els[0];
my $genen = '';
my $score = '';
foreach my $id ( 0 .. $#els ) {
next if ($id == 0);
if ( $id % 2 != 0 ) {
# gene name
#print "$els[$id]\n";
$genen = $els[$id];
}
else {
#
$score = $els[$id];
}
print "$pivot $genen $score\n";
}
#print "--\n";
}
__DATA__
foo bar 0.3 qux 0.2
bar foo 0.15 qux 0.4
qux foo 0.3 bar 0.4