Skip to content

Commit 28eb3a3

Browse files
format-reads.cpp: fixing max_frag_len because it was set to infinite
1 parent 690f020 commit 28eb3a3

File tree

1 file changed

+10
-5
lines changed

1 file changed

+10
-5
lines changed

src/utils/format-reads.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -309,7 +309,7 @@ swap(bam_rec &a, bam_rec &b) {
309309
static void
310310
format(const string &cmd, const size_t n_threads, const string &inputfile,
311311
const string &outfile, const bool bam_format, const string &input_format,
312-
const size_t suff_len, const size_t max_frag_len) {
312+
const size_t suff_len, const int32_t max_frag_len) {
313313
static const dnmt_error bam_write_err{"error writing bam"};
314314

315315
bamxx::bam_tpool tp(n_threads);
@@ -345,8 +345,7 @@ format(const string &cmd, const size_t n_threads, const string &inputfile,
345345
if (same_name(prev_aln, aln, suff_len)) {
346346
// below: essentially check for dovetail
347347
if (!bam_is_rev(aln)) swap(prev_aln, aln);
348-
const size_t frag_len =
349-
merge_mates(max_frag_len, prev_aln, aln, merged);
348+
const auto frag_len = merge_mates(max_frag_len, prev_aln, aln, merged);
350349
if (frag_len > 0 && frag_len < max_frag_len) {
351350
if (is_a_rich(merged)) flip_conversion(merged);
352351
if (!out.write(hdr, merged)) throw bam_write_err;
@@ -385,7 +384,7 @@ main_format(int argc, const char **argv) {
385384

386385
string input_format;
387386
string outfile;
388-
int max_frag_len = std::numeric_limits<int>::max();
387+
int32_t max_frag_len = 10000;
389388
size_t suff_len = 0;
390389
bool single_end = false;
391390
bool VERBOSE = false;
@@ -409,7 +408,7 @@ main_format(int argc, const char **argv) {
409408
opt_parse.add_opt("single-end", '\0',
410409
"assume single-end [do not use with -suff]", false,
411410
single_end);
412-
opt_parse.add_opt("max-frag", 'L', "maximum allowed insert size", false,
411+
opt_parse.add_opt("max-frag", 'L', "max allowed insert size", false,
413412
max_frag_len);
414413
opt_parse.add_opt("check", 'c',
415414
"check this many reads to validate read name suffix",
@@ -443,6 +442,12 @@ main_format(int argc, const char **argv) {
443442
<< opt_parse.about_message() << endl;
444443
return EXIT_FAILURE;
445444
}
445+
if (max_frag_len <= 0) {
446+
cerr << "specified maximum fragment size: " << max_frag_len << endl
447+
<< opt_parse.help_message() << endl
448+
<< opt_parse.about_message() << endl;
449+
return EXIT_FAILURE;
450+
}
446451
const string infile(leftover_args.front());
447452
if (leftover_args.size() == 2 && !use_stdout)
448453
outfile = leftover_args.back();

0 commit comments

Comments
 (0)