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))