def count_kmers(tmp_dirpath, fpath, log_fpath, err_fpath, can_reuse=True): kmc_out_fpath = join(tmp_dirpath, basename(fpath) + '.kmc') if can_reuse and is_non_empty_file(kmc_out_fpath + '.kmc_pre') and is_non_empty_file(kmc_out_fpath + '.kmc_suf'): return kmc_out_fpath max_mem = max(2, get_free_memory()) run_kmc(['-m' + str(max_mem), '-k' + str(KMERS_LEN), '-fm', '-cx1', '-ci1', fpath, kmc_out_fpath, tmp_dirpath], log_fpath, err_fpath, use_kmc_tools=False) return kmc_out_fpath
def get_gridss_memory(): free_mem = get_free_memory() if free_mem >= 64: return 31 elif free_mem >= 32: return 16 elif free_mem >= 16: return 8 return 2
def count_kmers(tmp_dirpath, fpath, kmer_len, log_fpath, err_fpath): kmc_out_fpath = join(tmp_dirpath, basename(fpath) + '.kmc') max_mem = max(2, get_free_memory()) run_kmc([ '-m' + str(max_mem), '-n128', '-k' + str(kmer_len), '-fm', '-cx1', '-ci1', fpath, kmc_out_fpath, tmp_dirpath ], log_fpath, err_fpath, use_kmc_tools=False) return kmc_out_fpath
def sort_bam(bam_fpath, sorted_bam_fpath, err_path, logger, threads=None, sort_rule=None): if not threads: threads = qconfig.max_threads mem = '%dGB' % min(100, max(2, get_free_memory())) cmd = [ sambamba_fpath('sambamba'), 'sort', '-t', str(threads), '--tmpdir', dirname(sorted_bam_fpath), '-m', mem, '-o', sorted_bam_fpath, bam_fpath ] if sort_rule: cmd += [sort_rule] qutils.call_subprocess(cmd, stderr=open(err_path, 'a'), logger=logger)