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