From 6fad94ac730598ca83794c6874a5a7648e9ab811 Mon Sep 17 00:00:00 2001 From: Calvin Morrison Date: Wed, 5 Feb 2014 14:37:43 -0500 Subject: add example, rename variables, rename function, improve error function, check for types --- kmer.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) (limited to 'kmer.py') diff --git a/kmer.py b/kmer.py index c22ec1e..1774f5f 100644 --- a/kmer.py +++ b/kmer.py @@ -20,19 +20,32 @@ try: except: raise Exception("Error: could not load libkmer.so") -def load_kmer_counts_from_file(fh, kmer): +def get_counts_from_file(fn, kmer): ''' + load kmer counts from a filename (not a handle), of size kmer. + +returns an array size 4^k of counts + + >>> import kmer + >>> counts = kmer.get_counts_from_file("test.fa", 6) + ''' + + if type(fn) is not str: + raise TypeError("fn must be a str"); + if type(kmer) is not int: + raise TypeError("fn must be int"); + ret = [] - width = (kmer ** 4) + 1 + width = (kmer ** 4) libkmer.get_kmer_counts_from_filename.restype = c.POINTER(c.c_ulonglong * width ) - counts = libkmer.get_kmer_counts_from_filename(fh, kmer); + counts = libkmer.get_kmer_counts_from_filename(fn, kmer); - if counts.contents: + if counts: for i in counts.contents: ret.append(i) else: - ret = 'error' + ret = 'error could not count mers on' + str(fn) return ret -- cgit v1.2.3