ID1 ID2 dN dS Omega Label_ID1 Label_ID2 Group
AVP78042 AVP78031 0.0059 0.1188 0.0500 SARSr-bat-CoV SARSr-bat-CoV Intra
ATO98108 AVP78031 0.1373 1.4673 0.0936 SARSr-bat-CoV SARSr-bat-CoV Intra
ATO98108 AVP78042 0.1371 1.4224 0.0964 SARSr-bat-CoV SARSr-bat-CoV Intra
####
Distance ID_1 ID_2 Value
DISTANCE AVP78042.1 ATO98108.1 0.29731
DISTANCE AVP78042.1 ATO98120.1 0.29281
DISTANCE AVP78042.1 ATO98132.1 0.33095
####
use strict;
use warnings;
use feature qw{ say };
sub load {
my ($file, $table, $phase) = @_;
open my $in, '<', $file or die "$file: $!";
while (<$in>) {
chomp;
my @columns = split /\t/;
my $id = join '_', @columns[0, 1];
die "Duplicate $id."
if 'first' eq $phase && exists $table->{$id};
push @{ $table->{$id} }, $columns[2];
say join "\t", @columns[0, 1], @{ $table->{$id} }
if 'print' eq $phase;
}
}
my %table;
my $phase = 'first';
while (my $file = shift @ARGV) {
load($file, \%table, $phase);
$phase = 1 == @ARGV ? 'print' : '';
}
####
ID1 ID2 dN dS Omega Value Label_ID1 Label_ID2 Group
AVP78042 AVP78031 0.0059 0.1188 0.0500 0.29731 SARSr-bat-CoV SARSr-bat-CoV Intra
ATO98108 AVP78031 0.1373 1.4673 0.0936 - SARSr-bat-CoV SARSr-bat-CoV Intra