Each table row shows performance measurements for this MicroPython program with a particular command-line input value N.
| N | CPU secs | Elapsed secs | Memory KB | Code B | ≈ CPU Load |
|---|
Read the ↓ make, command line, and program output logs to see how this program was run.
Read fasta benchmark to see what this program should do.
# The Computer Language Benchmarks Game
# http://benchmarksgame.alioth.debian.org/
#
# modified by Ian Osgood
# modified again by Heinrich Acker
# 2to3
import sys, bisect
alu = (
'GGCCGGGCGCGGTGGCTCACGCCTGTAATCCCAGCACTTTGG'
'GAGGCCGAGGCGGGCGGATCACCTGAGGTCAGGAGTTCGAGA'
'CCAGCCTGGCCAACATGGTGAAACCCCGTCTCTACTAAAAAT'
'ACAAAAATTAGCCGGGCGTGGTGGCGCGCGCCTGTAATCCCA'
'GCTACTCGGGAGGCTGAGGCAGGAGAATCGCTTGAACCCGGG'
'AGGCGGAGGTTGCAGTGAGCCGAGATCGCGCCACTGCACTCC'
'AGCCTGGGCGACAGAGCGAGACTCCGTCTCAAAAA')
iub = list(zip('acgtBDHKMNRSVWY', [0.27, 0.12, 0.12, 0.27] + [0.02]*11))
homosapiens = [
('a', 0.3029549426680),
('c', 0.1979883004921),
('g', 0.1975473066391),
('t', 0.3015094502008),
]
def genRandom(lim, ia = 3877, ic = 29573, im = 139968):
seed = 42
imf = float(im)
while 1:
seed = (seed * ia + ic) % im
yield lim * seed / imf
Random = genRandom(1.)
def makeCumulative(table):
P = []
C = []
prob = 0.
for char, p in table:
prob += p
P += [prob]
C += [char]
return (P, C)
def repeatFasta(src, n):
width = 60
r = len(src)
s = src + src + src[:n % r]
for j in range(n // width):
i = j*width % r
print(s[i:i+width])
if n % width:
print(s[-(n % width):])
def randomFasta(table, n):
width = 60
r = range(width)
gR = Random.__next__
bb = bisect.bisect
jn = ''.join
probs, chars = makeCumulative(table)
for j in range(n // width):
print(jn([chars[bb(probs, gR())] for i in r]))
if n % width:
print(jn([chars[bb(probs, gR())] for i in range(n % width)]))
n = int(sys.argv[1])
print('>ONE Homo sapiens alu')
repeatFasta(alu, n*2)
print('>TWO IUB ambiguity codes')
randomFasta(iub, n*3)
print('>THREE Homo sapiens frequency')
randomFasta(homosapiens, n*5)
Wed, 28 Sep 2022 08:59:25 GMT COMMAND LINE: /usr/bin/micropython fasta.micropython-2.micropython 2500000 PROGRAM FAILED PROGRAM OUTPUT: Traceback (most recent call last): File "fasta.micropython-2.micropython", line 8, in <module> ImportError: no module named 'bisect'