support interleaved fastq
This commit is contained in:
parent
570e082b38
commit
4dc982a3c7
20
fastmap.c
20
fastmap.c
|
|
@ -26,12 +26,13 @@ int main_mem(int argc, char *argv[])
|
|||
void *ko = 0, *ko2 = 0;
|
||||
|
||||
opt = mem_opt_init();
|
||||
while ((c = getopt(argc, argv, "aCPHk:c:v:s:r:t:R:")) >= 0) {
|
||||
while ((c = getopt(argc, argv, "paCPHk:c:v:s:r:t:R:")) >= 0) {
|
||||
if (c == 'k') opt->min_seed_len = atoi(optarg);
|
||||
else if (c == 't') opt->n_threads = atoi(optarg), opt->n_threads = opt->n_threads > 1? opt->n_threads : 1;
|
||||
else if (c == 'P') opt->flag |= MEM_F_NOPAIRING;
|
||||
else if (c == 'H') opt->flag |= MEM_F_HARDCLIP;
|
||||
else if (c == 'a') opt->flag |= MEM_F_ALL;
|
||||
else if (c == 'p') opt->flag |= MEM_F_PE;
|
||||
else if (c == 'c') opt->max_occ = atoi(optarg);
|
||||
else if (c == 'v') bwa_verbose = atoi(optarg);
|
||||
else if (c == 'r') opt->split_factor = atof(optarg);
|
||||
|
|
@ -42,7 +43,7 @@ int main_mem(int argc, char *argv[])
|
|||
}
|
||||
if (optind + 1 >= argc) {
|
||||
fprintf(stderr, "\n");
|
||||
fprintf(stderr, "Usage: bwa mem [options] <idxbase> <in.fq>\n\n");
|
||||
fprintf(stderr, "Usage: bwa mem [options] <idxbase> <in1.fq> [in2.fq]\n\n");
|
||||
fprintf(stderr, "Options: -k INT minimum seed length [%d]\n", opt->min_seed_len);
|
||||
fprintf(stderr, " -t INT number of threads [%d]\n", opt->n_threads);
|
||||
fprintf(stderr, " -c INT skip seeds with more than INT occurrences [%d]\n", opt->max_occ);
|
||||
|
|
@ -51,6 +52,7 @@ int main_mem(int argc, char *argv[])
|
|||
fprintf(stderr, " -R STR read group header line such as '@RG\\tID:foo\\tSM:bar' [null]\n");
|
||||
fprintf(stderr, " -v INT verbose level [%d]\n", bwa_verbose);
|
||||
fprintf(stderr, " -a output all alignments for SE or unpaired PE\n");
|
||||
fprintf(stderr, " -p first query file consists of interleaved paired-end sequences\n");
|
||||
fprintf(stderr, " -P perform mate SW only but skip pairing\n");
|
||||
fprintf(stderr, " -H hard clipping\n");
|
||||
fprintf(stderr, " -C append FASTA/FASTQ comment to SAM output\n");
|
||||
|
|
@ -58,6 +60,7 @@ int main_mem(int argc, char *argv[])
|
|||
free(opt);
|
||||
return 1;
|
||||
}
|
||||
|
||||
mem_fill_scmat(opt->a, opt->b, opt->mat);
|
||||
if ((idx = bwa_idx_load(argv[optind], BWA_IDX_ALL)) == 0) return 1; // FIXME: memory leak
|
||||
bwa_print_sam_hdr(idx->bns, rg_line);
|
||||
|
|
@ -66,10 +69,15 @@ int main_mem(int argc, char *argv[])
|
|||
fp = gzdopen(fd, "r");
|
||||
ks = kseq_init(fp);
|
||||
if (optind + 2 < argc) {
|
||||
ko2 = kopen(argv[optind + 2], &fd2);
|
||||
fp2 = gzdopen(fd2, "r");
|
||||
ks2 = kseq_init(fp2);
|
||||
opt->flag |= MEM_F_PE;
|
||||
if (opt->flag&MEM_F_PE) {
|
||||
if (bwa_verbose >= 2)
|
||||
fprintf(stderr, "[W::%s] when '-p' is in use, the second query file will be ignored.\n", __func__);
|
||||
} else {
|
||||
ko2 = kopen(argv[optind + 2], &fd2);
|
||||
fp2 = gzdopen(fd2, "r");
|
||||
ks2 = kseq_init(fp2);
|
||||
opt->flag |= MEM_F_PE;
|
||||
}
|
||||
}
|
||||
while ((seqs = bseq_read(opt->chunk_size * (ko2? 2 : 1), &n, ks, ks2)) != 0) {
|
||||
int64_t size = 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue