allow to pac forward strand only
This commit is contained in:
parent
66629512d9
commit
fe9da3c704
18
bntseq.c
18
bntseq.c
|
|
@ -211,7 +211,7 @@ static void add1(const kseq_t *seq, bntseq_t *bns, FILE *fp, uint8_t *buf, int *
|
||||||
bns->l_pac += seq->seq.l;
|
bns->l_pac += seq->seq.l;
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix)
|
int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix, int for_only)
|
||||||
{
|
{
|
||||||
extern void seq_reverse(int len, ubyte_t *seq, int is_comp); // in bwaseqio.c
|
extern void seq_reverse(int len, ubyte_t *seq, int is_comp); // in bwaseqio.c
|
||||||
kseq_t *seq;
|
kseq_t *seq;
|
||||||
|
|
@ -241,9 +241,11 @@ int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix)
|
||||||
for (i = 0; i < seq->seq.l; ++i) // convert to 2-bit encoding
|
for (i = 0; i < seq->seq.l; ++i) // convert to 2-bit encoding
|
||||||
seq->seq.s[i] = nst_nt4_table[(int)seq->seq.s[i]];
|
seq->seq.s[i] = nst_nt4_table[(int)seq->seq.s[i]];
|
||||||
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
||||||
|
if (!for_only) {
|
||||||
seq_reverse(seq->seq.l, (uint8_t*)seq->seq.s, 1);
|
seq_reverse(seq->seq.l, (uint8_t*)seq->seq.s, 1);
|
||||||
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
xassert(bns->l_pac, "zero length sequence.");
|
xassert(bns->l_pac, "zero length sequence.");
|
||||||
ret = bns->l_pac;
|
ret = bns->l_pac;
|
||||||
{ // finalize .pac file
|
{ // finalize .pac file
|
||||||
|
|
@ -267,13 +269,19 @@ int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix)
|
||||||
|
|
||||||
int bwa_fa2pac(int argc, char *argv[])
|
int bwa_fa2pac(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
|
int c, for_only = 0;
|
||||||
gzFile fp;
|
gzFile fp;
|
||||||
if (argc < 2) {
|
while ((c = getopt(argc, argv, "f")) >= 0) {
|
||||||
fprintf(stderr, "Usage: bwa fa2pac <in.fasta> [<out.prefix>]\n");
|
switch (c) {
|
||||||
|
case 'f': for_only = 1; break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (argc == optind) {
|
||||||
|
fprintf(stderr, "Usage: bwa fa2pac [-f] <in.fasta> [<out.prefix>]\n");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
fp = xzopen(argv[1], "r");
|
fp = xzopen(argv[optind], "r");
|
||||||
bns_fasta2bntseq(fp, (argc < 3)? argv[1] : argv[2]);
|
bns_fasta2bntseq(fp, (optind+1 < argc)? argv[optind+1] : argv[optind], for_only);
|
||||||
gzclose(fp);
|
gzclose(fp);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue