aboutsummaryrefslogtreecommitdiff
path: root/challenge-090/tyler-wardhaugh/lua/ch-1.lua
diff options
context:
space:
mode:
authorLuis Mochan <mochan@fis.unam.mx>2020-12-09 12:36:23 -0600
committerLuis Mochan <mochan@fis.unam.mx>2020-12-09 12:36:23 -0600
commitda971e8987ceade04a6eecbe59efd44b7e9dffb1 (patch)
tree073bb8527dc39be46412e02e739131f1c613cc7b /challenge-090/tyler-wardhaugh/lua/ch-1.lua
parentb656bc813129c410b0ccd81449a55222a4f8dcc6 (diff)
parent931e28a9fe63ad0942cf9f3099191a0e21a978c2 (diff)
downloadperlweeklychallenge-club-da971e8987ceade04a6eecbe59efd44b7e9dffb1.tar.gz
perlweeklychallenge-club-da971e8987ceade04a6eecbe59efd44b7e9dffb1.tar.bz2
perlweeklychallenge-club-da971e8987ceade04a6eecbe59efd44b7e9dffb1.zip
Merge branch 'master' of github.com:manwar/perlweeklychallenge-club
Diffstat (limited to 'challenge-090/tyler-wardhaugh/lua/ch-1.lua')
-rwxr-xr-xchallenge-090/tyler-wardhaugh/lua/ch-1.lua35
1 files changed, 35 insertions, 0 deletions
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