def jellyfish(args):
    '\n    %prog jellyfish [*.fastq|*.fasta]\n\n    Run jellyfish to dump histogram to be used in kmer.histogram().\n    '
    from jcvi.apps.base import getfilesize
    from jcvi.utils.cbook import human_size
    p = OptionParser(jellyfish.__doc__)
    p.add_option('-K', default=23, type='int', help='K-mer size')
    p.add_option('--coverage', default=40, type='int', help='Expected sequence coverage')
    p.add_option('--prefix', default='jf', help='Database prefix')
    p.add_option('--nohist', default=False, action='store_true', help='Do not print histogram')
    p.set_home('jellyfish')
    p.set_cpus()
    (opts, args) = p.parse_args(args)
    if (len(args) < 1):
        sys.exit((not p.print_help()))
    fastqfiles = args
    K = opts.K
    coverage = opts.coverage
    totalfilesize = sum((getfilesize(x) for x in fastqfiles))
    fq = fastqfiles[0]
    pf = opts.prefix
    gzip = fq.endswith('.gz')
    hashsize = (totalfilesize / coverage)
    logging.debug('Total file size: {0}, hashsize (-s): {1}'.format(human_size(totalfilesize, a_kilobyte_is_1024_bytes=True), hashsize))
    jfpf = '{0}-K{1}'.format(pf, K)
    jfdb = jfpf
    fastqfiles = ' '.join(fastqfiles)
    jfcmd = op.join(opts.jellyfish_home, 'jellyfish')
    cmd = jfcmd
    cmd += ' count -t {0} -C -o {1}'.format(opts.cpus, jfpf)
    cmd += ' -s {0} -m {1}'.format(hashsize, K)
    if gzip:
        cmd = (('gzip -dc {0} | '.format(fastqfiles) + cmd) + ' /dev/fd/0')
    else:
        cmd += (' ' + fastqfiles)
    if need_update(fastqfiles, jfdb):
        sh(cmd)
    if opts.nohist:
        return
    jfhisto = (jfpf + '.histogram')
    cmd = (jfcmd + ' histo -t 64 {0} -o {1}'.format(jfdb, jfhisto))
    if need_update(jfdb, jfhisto):
        sh(cmd)
%prog jellyfish [*.fastq|*.fasta]

Run jellyfish to dump histogram to be used in kmer.histogram().
def jellyfish(args):
    '\n    %prog jellyfish [*.fastq|*.fasta]\n\n    Run jellyfish to dump histogram to be used in kmer.histogram().\n    '
    from jcvi.apps.base import getfilesize
    from jcvi.utils.cbook import human_size
    p = OptionParser(jellyfish.__doc__)
    p.add_option('-K', default=23, type='int', help='K-mer size')
    p.add_option('--coverage', default=40, type='int', help='Expected sequence coverage')
    p.add_option('--prefix', default='jf', help='Database prefix')
    p.add_option('--nohist', default=False, action='store_true', help='Do not print histogram')
    p.set_home('jellyfish')
    p.set_cpus()
    (opts, args) = p.parse_args(args)
    if (len(args) < 1):
        sys.exit((not p.print_help()))
    fastqfiles = args
    K = opts.K
    coverage = opts.coverage
    totalfilesize = sum((getfilesize(x) for x in fastqfiles))
    fq = fastqfiles[0]
    pf = opts.prefix
    gzip = fq.endswith('.gz')
    hashsize = (totalfilesize / coverage)
    logging.debug('Total file size: {0}, hashsize (-s): {1}'.format(human_size(totalfilesize, a_kilobyte_is_1024_bytes=True), hashsize))
    jfpf = '{0}-K{1}'.format(pf, K)
    jfdb = jfpf
    fastqfiles = ' '.join(fastqfiles)
    jfcmd = op.join(opts.jellyfish_home, 'jellyfish')
    cmd = jfcmd
    cmd += ' count -t {0} -C -o {1}'.format(opts.cpus, jfpf)
    cmd += ' -s {0} -m {1}'.format(hashsize, K)
    if gzip:
        cmd = (('gzip -dc {0} | '.format(fastqfiles) + cmd) + ' /dev/fd/0')
    else:
        cmd += (' ' + fastqfiles)
    if need_update(fastqfiles, jfdb):
        sh(cmd)
    if opts.nohist:
        return
    jfhisto = (jfpf + '.histogram')
    cmd = (jfcmd + ' histo -t 64 {0} -o {1}'.format(jfdb, jfhisto))
    if need_update(jfdb, jfhisto):
        sh(cmd)