Mercurial > repos > nick > duplex
diff 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 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/consensus-time.py Thu Feb 02 18:44:31 2017 -0500 @@ -0,0 +1,33 @@ +#!/usr/bin/env python +import sys +import time +import ctypes + +first = None +times = [] +for i in range(10000): + py_seqs = [] + seq_len = 0 + with open(sys.argv[1]) as infile: + for line in infile: + if line.startswith('>'): + continue + seq = line.strip() + if len(seq) > seq_len: + seq_len = len(seq) + py_seqs.append(seq) + + seqs = (ctypes.c_char_p * len(py_seqs))() + for j, seq in enumerate(py_seqs): + seqs[j] = ctypes.c_char_p(seq) + + consensus = ctypes.cdll.LoadLibrary('./consensus.so') + start = time.time() + consensus.get_votes(seqs, len(seqs), seq_len) + elapsed = 1000 * 1000 * (time.time() - start) + if i == 0: + first = elapsed + else: + times.append(elapsed) + +print '{:0.1f}\t{:0.1f}'.format(first, sum(times)/len(times))