diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/consensus-time.py	Mon Nov 23 18:44:23 2015 -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))