diff options
-rw-r--r-- | KMER.pl | 23 |
1 files changed, 23 insertions, 0 deletions
@@ -0,0 +1,23 @@ +#!/usr/bin/env perl +use strict; +use warnings; +use 5.016; + +my @bases = qw(A C G T); +my @tetranucleotides = ( + map { s/(..)/$bases[oct("0b$1")]/egr } map { sprintf("%08b", $_) } 0..255 +); +my %tetranucleotide_map = ( + map { $tetranucleotides[$_] => $_ } 0..255 +); + +<>; +chomp(my @dna = <>); +my $dna = join('', @dna); + +my @found = (0) x 256; +for my $i (0..(length($dna) - 4)) { + $found[$tetranucleotide_map{substr($dna, $i, 4)}]++; +} + +say join(' ', @found); |