summaryrefslogtreecommitdiffstats
path: root/KMER.pl
diff options
context:
space:
mode:
Diffstat (limited to 'KMER.pl')
-rw-r--r--KMER.pl23
1 files changed, 23 insertions, 0 deletions
diff --git a/KMER.pl b/KMER.pl
new file mode 100644
index 0000000..93f423b
--- /dev/null
+++ b/KMER.pl
@@ -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);