def count(args):
    '\n    %prog count fastafile jf.db\n\n    Run dump - jellyfish - bin - bincount in serial.\n    '
    from bitarray import bitarray
    p = OptionParser(count.__doc__)
    (opts, args) = p.parse_args(args)
    if (len(args) != 2):
        sys.exit((not p.print_help()))
    (fastafile, jfdb) = args
    K = get_K(jfdb)
    cmd = "jellyfish query {0} -C | cut -d' ' -f 2".format(jfdb)
    t = must_open('tmp', 'w')
    proc = Popen(cmd, stdin=PIPE, stdout=t)
    t.flush()
    f = Fasta(fastafile, lazy=True)
    for (name, rec) in f.iteritems_ordered():
        kmers = list(make_kmers(rec.seq, K))
        print('\n'.join(kmers), file=proc.stdin)
    proc.stdin.close()
    logging.debug(cmd)
    proc.wait()
    a = bitarray()
    binfile = '.'.join((fastafile, jfdb, 'bin'))
    fw = open(binfile, 'w')
    t.seek(0)
    for row in t:
        c = row.strip()
        a.append(int(c))
    a.tofile(fw)
    logging.debug('Serialize {0} bits to `{1}`.'.format(len(a), binfile))
    fw.close()
    sh('rm {0}'.format(t.name))
    logging.debug('Shared K-mers (K={0}) between `{1}` and `{2}` written to `{3}`.'.format(K, fastafile, jfdb, binfile))
    cntfile = '.'.join((fastafile, jfdb, 'cnt'))
    bincount([fastafile, binfile, '-o', cntfile, '-K {0}'.format(K)])
    logging.debug('Shared K-mer counts written to `{0}`.'.format(cntfile))
%prog count fastafile jf.db

Run dump - jellyfish - bin - bincount in serial.
def count(args):
    '\n    %prog count fastafile jf.db\n\n    Run dump - jellyfish - bin - bincount in serial.\n    '
    from bitarray import bitarray
    p = OptionParser(count.__doc__)
    (opts, args) = p.parse_args(args)
    if (len(args) != 2):
        sys.exit((not p.print_help()))
    (fastafile, jfdb) = args
    K = get_K(jfdb)
    cmd = "jellyfish query {0} -C | cut -d' ' -f 2".format(jfdb)
    t = must_open('tmp', 'w')
    proc = Popen(cmd, stdin=PIPE, stdout=t)
    t.flush()
    f = Fasta(fastafile, lazy=True)
    for (name, rec) in f.iteritems_ordered():
        kmers = list(make_kmers(rec.seq, K))
        print('\n'.join(kmers), file=proc.stdin)
    proc.stdin.close()
    logging.debug(cmd)
    proc.wait()
    a = bitarray()
    binfile = '.'.join((fastafile, jfdb, 'bin'))
    fw = open(binfile, 'w')
    t.seek(0)
    for row in t:
        c = row.strip()
        a.append(int(c))
    a.tofile(fw)
    logging.debug('Serialize {0} bits to `{1}`.'.format(len(a), binfile))
    fw.close()
    sh('rm {0}'.format(t.name))
    logging.debug('Shared K-mers (K={0}) between `{1}` and `{2}` written to `{3}`.'.format(K, fastafile, jfdb, binfile))
    cntfile = '.'.join((fastafile, jfdb, 'cnt'))
    bincount([fastafile, binfile, '-o', cntfile, '-K {0}'.format(K)])
    logging.debug('Shared K-mer counts written to `{0}`.'.format(cntfile))