blob: 811ca0452f3ccadd04226bf1c55f54e11b6e4021 (
plain) (
tree)
|
|
#!/usr/bin/env perl
use strict;
use warnings;
use 5.016;
my @dna;
{
my $dna;
while (<>) {
chomp;
if (/^>(.*)/) {
push @dna, $dna if $dna;
$dna = '';
}
else {
$dna .= $_;
}
}
push @dna, $dna;
}
for my $dna1 (@dna) {
my @row;
for my $dna2 (@dna) {
push @row, sprintf "%0.2f", hamming($dna1, $dna2) / length($dna1);
}
say join(' ', @row);
}
sub hamming {
my ($str1, $str2) = @_;
return length(($str1 ^ $str2) =~ s/\x00//gr);
}
|