Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Add the header line to the output SAM
In particular, this defines the output SAM to be unsorted BUT also query grouped.  The latter is very important to explicitly define so downstream tools that don't make assumptions know that reads from the same template are grouped.
  • Loading branch information
nh13 authored Dec 14, 2021
commit 6b18630a62eef0a422c590bb8626460f06a8c356
12 changes: 11 additions & 1 deletion bwa.c
Original file line number Diff line number Diff line change
Expand Up @@ -406,10 +406,17 @@ int bwa_idx2mem(bwaidx_t *idx)

void bwa_print_sam_hdr(const bntseq_t *bns, const char *hdr_line)
{
int i, n_SQ = 0;
int i, n_HD = 0, n_SQ = 0;
extern char *bwa_pg;

if (hdr_line) {
// check for HD line
const char *p = hdr_line;
if ((p = strstr(p, "@HD")) != 0) {
++n_HD;
}
// check for SQ lines
p = hdr_line;
while ((p = strstr(p, "@SQ\t")) != 0) {
if (p == hdr_line || *(p-1) == '\n') ++n_SQ;
p += 4;
Expand All @@ -423,6 +430,9 @@ void bwa_print_sam_hdr(const bntseq_t *bns, const char *hdr_line)
}
} else if (n_SQ != bns->n_seqs && bwa_verbose >= 2)
fprintf(stderr, "[W::%s] %d @SQ lines provided with -H; %d sequences in the index. Continue anyway.\n", __func__, n_SQ, bns->n_seqs);
if (n_HD == 0) {
err_printf("@HD\tVN:1.5\tSO:unsorted\tGO:query\n");
}
if (hdr_line) err_printf("%s\n", hdr_line);
if (bwa_pg) err_printf("%s\n", bwa_pg);
}
Expand Down