view 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 source

#!/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))