blob: 811ca0452f3ccadd04226bf1c55f54e11b6e4021 (
plain) (
blame)
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
|
#!/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);
}
|