removed reverse pac; bwa is not working right now
This commit is contained in:
parent
b96f180a15
commit
46123639cf
3
bntseq.c
3
bntseq.c
|
|
@ -213,6 +213,7 @@ static void add1(const kseq_t *seq, bntseq_t *bns, FILE *fp, uint8_t *buf, int *
|
|||
|
||||
int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix)
|
||||
{
|
||||
extern void seq_reverse(int len, ubyte_t *seq, int is_comp); // in bwaseqio.c
|
||||
kseq_t *seq;
|
||||
char name[1024];
|
||||
bntseq_t *bns;
|
||||
|
|
@ -238,6 +239,8 @@ int64_t bns_fasta2bntseq(gzFile fp_fa, const char *prefix)
|
|||
// read sequences
|
||||
while (kseq_read(seq) >= 0) {
|
||||
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
||||
seq_reverse(seq->seq.l, (uint8_t*)seq->seq.s, 1);
|
||||
add1(seq, bns, fp, buf, &l_buf, &m_seqs, &m_holes, &q);
|
||||
}
|
||||
xassert(bns->l_pac, "zero length sequence.");
|
||||
ret = bns->l_pac;
|
||||
|
|
|
|||
45
bwtindex.c
45
bwtindex.c
|
|
@ -105,14 +105,6 @@ int bwa_index(int argc, char *argv[])
|
|||
return 1;
|
||||
}
|
||||
if (algo_type == 0) algo_type = l_pac > 50000000? 2 : 3; // set the algorithm for generating BWT
|
||||
{
|
||||
strcpy(str, prefix); strcat(str, ".pac");
|
||||
strcpy(str2, prefix); strcat(str2, ".rpac");
|
||||
t = clock();
|
||||
fprintf(stderr, "[bwa_index] Reverse the packed sequence... ");
|
||||
bwa_pac_rev_core(str, str2);
|
||||
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
strcpy(str, prefix); strcat(str, ".pac");
|
||||
strcpy(str2, prefix); strcat(str2, ".bwt");
|
||||
|
|
@ -127,20 +119,6 @@ int bwa_index(int argc, char *argv[])
|
|||
}
|
||||
fprintf(stderr, "[bwa_index] %.2f seconds elapse.\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
strcpy(str, prefix); strcat(str, ".rpac");
|
||||
strcpy(str2, prefix); strcat(str2, ".rbwt");
|
||||
t = clock();
|
||||
fprintf(stderr, "[bwa_index] Construct BWT for the reverse packed sequence...\n");
|
||||
if (algo_type == 2) bwt_bwtgen(str, str2);
|
||||
else if (algo_type == 1 || algo_type == 3) {
|
||||
bwt_t *bwt;
|
||||
bwt = bwt_pac2bwt(str, algo_type == 3);
|
||||
bwt_dump_bwt(str2, bwt);
|
||||
bwt_destroy(bwt);
|
||||
}
|
||||
fprintf(stderr, "[bwa_index] %.2f seconds elapse.\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
bwt_t *bwt;
|
||||
strcpy(str, prefix); strcat(str, ".bwt");
|
||||
|
|
@ -152,17 +130,6 @@ int bwa_index(int argc, char *argv[])
|
|||
bwt_destroy(bwt);
|
||||
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
bwt_t *bwt;
|
||||
strcpy(str, prefix); strcat(str, ".rbwt");
|
||||
t = clock();
|
||||
fprintf(stderr, "[bwa_index] Update reverse BWT... ");
|
||||
bwt = bwt_restore_bwt(str);
|
||||
bwt_bwtupdate_core(bwt);
|
||||
bwt_dump_bwt(str, bwt);
|
||||
bwt_destroy(bwt);
|
||||
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
bwt_t *bwt;
|
||||
strcpy(str, prefix); strcat(str, ".bwt");
|
||||
|
|
@ -175,18 +142,6 @@ int bwa_index(int argc, char *argv[])
|
|||
bwt_destroy(bwt);
|
||||
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
{
|
||||
bwt_t *bwt;
|
||||
strcpy(str, prefix); strcat(str, ".rbwt");
|
||||
strcpy(str3, prefix); strcat(str3, ".rsa");
|
||||
t = clock();
|
||||
fprintf(stderr, "[bwa_index] Construct SA from reverse BWT and Occ... ");
|
||||
bwt = bwt_restore_bwt(str);
|
||||
bwt_cal_sa(bwt, 32);
|
||||
bwt_dump_sa(str3, bwt);
|
||||
bwt_destroy(bwt);
|
||||
fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC);
|
||||
}
|
||||
free(str3); free(str2); free(str); free(prefix);
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
37
bwtmisc.c
37
bwtmisc.c
|
|
@ -157,43 +157,6 @@ int bwa_bwtupdate(int argc, char *argv[])
|
|||
return 0;
|
||||
}
|
||||
|
||||
void bwa_pac_rev_core(const char *fn, const char *fn_rev)
|
||||
{
|
||||
int64_t seq_len, i;
|
||||
bwtint_t pac_len, j;
|
||||
ubyte_t *bufin, *bufout, ct;
|
||||
FILE *fp;
|
||||
seq_len = bwa_seq_len(fn);
|
||||
pac_len = (seq_len >> 2) + 1;
|
||||
bufin = (ubyte_t*)calloc(pac_len, 1);
|
||||
bufout = (ubyte_t*)calloc(pac_len, 1);
|
||||
fp = xopen(fn, "rb");
|
||||
fread(bufin, 1, pac_len, fp);
|
||||
fclose(fp);
|
||||
for (i = seq_len - 1, j = 0; i >= 0; --i) {
|
||||
int c = bufin[i>>2] >> ((~i&3)<<1) & 3;
|
||||
bwtint_t j = seq_len - 1 - i;
|
||||
bufout[j>>2] |= c << ((~j&3)<<1);
|
||||
}
|
||||
free(bufin);
|
||||
fp = xopen(fn_rev, "wb");
|
||||
fwrite(bufout, 1, pac_len, fp);
|
||||
ct = seq_len % 4;
|
||||
fwrite(&ct, 1, 1, fp);
|
||||
fclose(fp);
|
||||
free(bufout);
|
||||
}
|
||||
|
||||
int bwa_pac_rev(int argc, char *argv[])
|
||||
{
|
||||
if (argc < 3) {
|
||||
fprintf(stderr, "Usage: bwa pac_rev <in.pac> <out.pac>\n");
|
||||
return 1;
|
||||
}
|
||||
bwa_pac_rev_core(argv[1], argv[2]);
|
||||
return 0;
|
||||
}
|
||||
|
||||
const int nst_color_space_table[] = { 4, 0, 0, 1, 0, 2, 3, 4, 0, 3, 2, 4, 1, 4, 4, 4};
|
||||
|
||||
/* this function is not memory efficient, but this will make life easier
|
||||
|
|
|
|||
2
main.c
2
main.c
|
|
@ -24,7 +24,6 @@ static int usage()
|
|||
fprintf(stderr, " pac2bwt generate BWT from PAC\n");
|
||||
fprintf(stderr, " pac2bwtgen alternative algorithm for generating BWT\n");
|
||||
fprintf(stderr, " bwtupdate update .bwt to the new format\n");
|
||||
fprintf(stderr, " pac_rev generate reverse PAC\n");
|
||||
fprintf(stderr, " bwt2sa generate SA from BWT and Occ\n");
|
||||
fprintf(stderr, " pac2cspac convert PAC to color-space PAC\n");
|
||||
fprintf(stderr, " stdsw standard SW/NW alignment\n");
|
||||
|
|
@ -44,7 +43,6 @@ int main(int argc, char *argv[])
|
|||
else if (strcmp(argv[1], "pac2bwt") == 0) return bwa_pac2bwt(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "pac2bwtgen") == 0) return bwt_bwtgen_main(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "bwtupdate") == 0) return bwa_bwtupdate(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "pac_rev") == 0) return bwa_pac_rev(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "bwt2sa") == 0) return bwa_bwt2sa(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "index") == 0) return bwa_index(argc-1, argv+1);
|
||||
else if (strcmp(argv[1], "aln") == 0) return bwa_aln(argc-1, argv+1);
|
||||
|
|
|
|||
Loading…
Reference in New Issue