From ec53034d57fe6d3a652c29ad0f6b6ba33d8ed848 Mon Sep 17 00:00:00 2001 From: Tyler Wardhaugh Date: Tue, 8 Dec 2020 13:07:11 -0800 Subject: Ch90 (Lua): Tasks 1 & 2 --- challenge-090/tyler-wardhaugh/lua/ch-1.lua | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100755 challenge-090/tyler-wardhaugh/lua/ch-1.lua (limited to 'challenge-090/tyler-wardhaugh/lua/ch-1.lua') diff --git a/challenge-090/tyler-wardhaugh/lua/ch-1.lua b/challenge-090/tyler-wardhaugh/lua/ch-1.lua new file mode 100755 index 0000000000..e964ce9f6d --- /dev/null +++ b/challenge-090/tyler-wardhaugh/lua/ch-1.lua @@ -0,0 +1,35 @@ +#!/usr/bin/env lua + +local t1 = {} +local util = require'util' + +t1.DEFAULT_DNA = 'GTAAACCCCTTTTCATTTAGACAGATCGACTCCTTATCCATTCTCAGAGATGTGTTGCTGGTCGCCG' + +function t1.process_dna(dna) + freq = {} + for c in dna:gmatch'.' do + freq[c] = (freq[c] or 0) + 1 + end + + local replacement = {A='T', T='A', C='G', G='C'} + local complement = dna:gsub('(%w)', function (c) return replacement[c] end) + + return freq, complement +end + +function t1.run(args) + local dna = args[1] or t1.DEFAULT_DNA + local freq, complement = t1.process_dna(dna) + + io.write('Counts = { ') + local seq = util.dict_to_seq(freq) + for i, v in ipairs(seq) do + io.write(v[1] .. ': ' .. v[2]) + if i ~= #seq then io.write(', ') end + end + print(' }\n') + + print('Complement: ' .. complement) +end + +return t1 -- cgit