r1025: accept file with -H; allow to replace @SQ
This commit is contained in:
parent
efa0dd561a
commit
925ddfb697
14
bwa.c
14
bwa.c
|
|
@ -369,10 +369,18 @@ int bwa_idx2mem(bwaidx_t *idx)
|
|||
|
||||
void bwa_print_sam_hdr(const bntseq_t *bns, const char *hdr_line)
|
||||
{
|
||||
int i;
|
||||
int i, n_SQ = 0;
|
||||
const char *p = hdr_line;
|
||||
extern char *bwa_pg;
|
||||
for (i = 0; i < bns->n_seqs; ++i)
|
||||
err_printf("@SQ\tSN:%s\tLN:%d\n", bns->anns[i].name, bns->anns[i].len);
|
||||
while ((p = strstr(p, "@SQ\t")) != 0) {
|
||||
if (p == hdr_line || *(p-1) == '\n') ++n_SQ;
|
||||
p += 4;
|
||||
}
|
||||
if (n_SQ == 0) {
|
||||
for (i = 0; i < bns->n_seqs; ++i)
|
||||
err_printf("@SQ\tSN:%s\tLN:%d\n", bns->anns[i].name, bns->anns[i].len);
|
||||
} 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 (hdr_line) err_printf("%s\n", hdr_line);
|
||||
if (bwa_pg) err_printf("%s\n", bwa_pg);
|
||||
}
|
||||
|
|
|
|||
18
fastmap.c
18
fastmap.c
|
|
@ -192,7 +192,21 @@ int main_mem(int argc, char *argv[])
|
|||
} else if (c == 'R') {
|
||||
if ((rg_line = bwa_set_rg(optarg)) == 0) return 1; // FIXME: memory leak
|
||||
} else if (c == 'H') {
|
||||
hdr_line = bwa_insert_header(optarg, hdr_line);
|
||||
if (optarg[0] != '@') {
|
||||
FILE *fp;
|
||||
if ((fp = fopen(optarg, "r")) != 0) {
|
||||
char *buf;
|
||||
buf = calloc(1, 0x10000);
|
||||
while (fgets(buf, 0xffff, fp)) {
|
||||
i = strlen(buf);
|
||||
assert(buf[i-1] == '\n'); // a long line
|
||||
buf[i-1] = 0;
|
||||
hdr_line = bwa_insert_header(buf, hdr_line);
|
||||
}
|
||||
free(buf);
|
||||
fclose(fp);
|
||||
}
|
||||
} else hdr_line = bwa_insert_header(optarg, hdr_line);
|
||||
} else if (c == 'I') { // specify the insert size distribution
|
||||
aux.pes0 = pes;
|
||||
pes[1].failed = 0;
|
||||
|
|
@ -253,7 +267,7 @@ int main_mem(int argc, char *argv[])
|
|||
fprintf(stderr, "\nInput/output options:\n\n");
|
||||
fprintf(stderr, " -p smart pairing (ignoring in2.fq)\n");
|
||||
fprintf(stderr, " -R STR read group header line such as '@RG\\tID:foo\\tSM:bar' [null]\n");
|
||||
fprintf(stderr, " -H STR insert an arbitrary header line [null]\n");
|
||||
fprintf(stderr, " -H STR/FILE insert STR to header if it starts with @; or insert lines in FILE [null]\n");
|
||||
fprintf(stderr, " -j ignore ALT contigs\n");
|
||||
fprintf(stderr, "\n");
|
||||
fprintf(stderr, " -v INT verbose level: 1=error, 2=warning, 3=message, 4+=debugging [%d]\n", bwa_verbose);
|
||||
|
|
|
|||
Loading…
Reference in New Issue