Mercurial > repos > nick > duplex
comparison consensus-time.py @ 18:e4d75f9efb90 draft
planemo upload commit b'4303231da9e48b2719b4429a29b72421d24310f4\n'-dirty
author | nick |
---|---|
date | Thu, 02 Feb 2017 18:44:31 -0500 |
parents | af383638de66 |
children |
comparison
equal
deleted
inserted
replaced
17:836fa4fe9494 | 18:e4d75f9efb90 |
---|---|
1 #!/usr/bin/env python | |
2 import sys | |
3 import time | |
4 import ctypes | |
5 | |
6 first = None | |
7 times = [] | |
8 for i in range(10000): | |
9 py_seqs = [] | |
10 seq_len = 0 | |
11 with open(sys.argv[1]) as infile: | |
12 for line in infile: | |
13 if line.startswith('>'): | |
14 continue | |
15 seq = line.strip() | |
16 if len(seq) > seq_len: | |
17 seq_len = len(seq) | |
18 py_seqs.append(seq) | |
19 | |
20 seqs = (ctypes.c_char_p * len(py_seqs))() | |
21 for j, seq in enumerate(py_seqs): | |
22 seqs[j] = ctypes.c_char_p(seq) | |
23 | |
24 consensus = ctypes.cdll.LoadLibrary('./consensus.so') | |
25 start = time.time() | |
26 consensus.get_votes(seqs, len(seqs), seq_len) | |
27 elapsed = 1000 * 1000 * (time.time() - start) | |
28 if i == 0: | |
29 first = elapsed | |
30 else: | |
31 times.append(elapsed) | |
32 | |
33 print '{:0.1f}\t{:0.1f}'.format(first, sum(times)/len(times)) |