blob: 6cfd1022ec9488f68664a862fb406e24cb02d29b [file] [log] [blame]
/*
* The Computer Language Benchmark Games
* http://shootout.alioth.debian.org/
*
* contributed by James Durbin
* based very closely on Ruby version by jose fco. gonzalez
*/
def seq = new StringBuffer()
seq = System.in.readLines().join("\n") + "\n"
initialLength = seq.length()
seq = (seq =~">.*\n|\n").replaceAll('')
codeLength = seq.length()
[
'agggtaaa|tttaccct',
'[cgt]gggtaaa|tttaccc[acg]',
'a[act]ggtaaa|tttacc[agt]t',
'ag[act]gtaaa|tttac[agt]ct',
'agg[act]taaa|ttta[agt]cct',
'aggg[acg]aaa|ttt[cgt]ccct',
'agggt[cgt]aa|tt[acg]accct',
'agggta[cgt]a|t[acg]taccct',
'agggtaa[cgt]|[acg]ttaccct'
].each{
println "$it " + (seq =~ it).getCount()
}
[
B: '(c|g|t)',
D: '(a|g|t)',
H: '(a|c|t)',
K: '(g|t)',
M: '(a|c)',
N: '(a|c|g|t)',
R: '(a|g)',
S: '(c|t)',
V: '(a|c|g)',
W: '(a|t)',
Y: '(c|t)'
].each { f, r ->
seq = (seq =~ f).replaceAll(r)
}
println ''
println initialLength
println codeLength
println seq.length()