michael@0: // The Great Computer Language Shootout michael@0: // http://shootout.alioth.debian.org michael@0: // michael@0: // Contributed by Ian Osgood michael@0: michael@0: var last = 42, A = 3877, C = 29573, M = 139968; michael@0: michael@0: function rand(max) { michael@0: last = (last * A + C) % M; michael@0: return max * last / M; michael@0: } michael@0: michael@0: var ALU = michael@0: "GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG" + michael@0: "GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA" + michael@0: "CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT" + michael@0: "ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA" + michael@0: "GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG" + michael@0: "AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC" + michael@0: "AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA"; michael@0: michael@0: var IUB = { michael@0: a:0.27, c:0.12, g:0.12, t:0.27, michael@0: B:0.02, D:0.02, H:0.02, K:0.02, michael@0: M:0.02, N:0.02, R:0.02, S:0.02, michael@0: V:0.02, W:0.02, Y:0.02 michael@0: } michael@0: michael@0: var HomoSap = { michael@0: a: 0.3029549426680, michael@0: c: 0.1979883004921, michael@0: g: 0.1975473066391, michael@0: t: 0.3015094502008 michael@0: } michael@0: michael@0: function makeCumulative(table) { michael@0: var last = null; michael@0: for (var c in table) { michael@0: if (last) table[c] += table[last]; michael@0: last = c; michael@0: } michael@0: } michael@0: michael@0: function fastaRepeat(n, seq) { michael@0: var seqi = 0, lenOut = 60; michael@0: while (n>0) { michael@0: if (n0) { michael@0: if (n