From 4b6eeb34c83c2d85a7e4a5b4d4c2fb9718290012 Mon Sep 17 00:00:00 2001 From: Heng Li Date: Mon, 15 Sep 2014 23:42:24 -0400 Subject: [PATCH] r830: optionally fixed chunk size --- bwamem.c | 2 -- fastmap.c | 8 +++++--- main.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/bwamem.c b/bwamem.c index dbe039f..64c26fa 100644 --- a/bwamem.c +++ b/bwamem.c @@ -1153,8 +1153,6 @@ void mem_process_seqs(const mem_opt_t *opt, const bwt_t *bwt, const bntseq_t *bn double ctime, rtime; int i; - for (i = 0; i < bns->n_seqs; ++i) - if (bns->anns[i].is_alt) has_alt = 1; ctime = cputime(); rtime = realtime(); global_bns = bns; w.regs = malloc(n * sizeof(mem_alnreg_v)); diff --git a/fastmap.c b/fastmap.c index 05a5954..6cdad68 100644 --- a/fastmap.c +++ b/fastmap.c @@ -39,6 +39,7 @@ int main_mem(int argc, char *argv[]) { mem_opt_t *opt, opt0; int fd, fd2, i, c, n, copy_comment = 0; + int fixed_chunk_size = -1, actual_chunk_size; gzFile fp, fp2 = 0; kseq_t *ks, *ks2 = 0; bseq1_t *seqs; @@ -54,7 +55,7 @@ int main_mem(int argc, char *argv[]) opt = mem_opt_init(); memset(&opt0, 0, sizeof(mem_opt_t)); - while ((c = getopt(argc, argv, "epaFMCSPHVYk:c:v:s:r:t:R:A:B:O:E:U:w:L:d:T:Q:D:m:I:N:W:x:G:h:y:")) >= 0) { + while ((c = getopt(argc, argv, "epaFMCSPHVYk:c:v:s:r:t:R:A:B:O:E:U:w:L:d:T:Q:D:m:I:N:W:x:G:h:y:K:")) >= 0) { if (c == 'k') opt->min_seed_len = atoi(optarg), opt0.min_seed_len = 1; else if (c == 'x') mode = optarg; else if (c == 'w') opt->w = atoi(optarg), opt0.w = 1; @@ -85,6 +86,7 @@ int main_mem(int argc, char *argv[]) else if (c == 'W') opt->min_chain_weight = atoi(optarg), opt0.min_chain_weight = 1; else if (c == 'y') opt->max_mem_intv = atol(optarg), opt0.max_mem_intv = 1; else if (c == 'C') copy_comment = 1; + else if (c == 'K') fixed_chunk_size = atoi(optarg); else if (c == 'Q') { opt0.mapQ_coef_len = 1; opt->mapQ_coef_len = atoi(optarg); @@ -205,7 +207,6 @@ int main_mem(int argc, char *argv[]) return 1; // FIXME memory leak } } else update_a(opt, &opt0); -// if (opt->T < opt->min_HSP_score) opt->T = opt->min_HSP_score; // TODO: tie ->T to MEM_HSP_COEF bwa_fill_scmat(opt->a, opt->b, opt->mat); if ((idx = bwa_idx_load(argv[optind], BWA_IDX_ALL)) == 0) return 1; // FIXME: memory leak @@ -234,7 +235,8 @@ int main_mem(int argc, char *argv[]) } if (!(opt->flag & MEM_F_ALN_REG)) bwa_print_sam_hdr(idx->bns, rg_line); - while ((seqs = bseq_read(opt->chunk_size * opt->n_threads, &n, ks, ks2)) != 0) { + actual_chunk_size = fixed_chunk_size > 0? fixed_chunk_size : opt->chunk_size * opt->n_threads; + while ((seqs = bseq_read(actual_chunk_size, &n, ks, ks2)) != 0) { int64_t size = 0; if ((opt->flag & MEM_F_PE) && (n&1) == 1) { if (bwa_verbose >= 2) diff --git a/main.c b/main.c index 9ff48fc..0b09051 100644 --- a/main.c +++ b/main.c @@ -4,7 +4,7 @@ #include "utils.h" #ifndef PACKAGE_VERSION -#define PACKAGE_VERSION "0.7.10-r829-dirty" +#define PACKAGE_VERSION "0.7.10-r830-dirty" #endif int bwa_fa2pac(int argc, char *argv[]);