view consensus-time.py @ 4:af383638de66 draft

planemo upload commit 022984f323d3da44f70b3bf79c684cfd8dda3f61-dirty
author nick
date Mon, 23 Nov 2015 18:44:23 -0500
parents
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))