diff --git a/bwtindex.c b/bwtindex.c index 5973332..cf07e8a 100644 --- a/bwtindex.c +++ b/bwtindex.c @@ -230,7 +230,7 @@ int bwa_bwt2bytesa(int argc, char *argv[]) // the "bwt2bytesa" command int bwa_bwt2fmt(int argc, char *argv[]) // create fmt index { bwt_t *bwt; - char buf[1024]; + //char buf[1024]; if (optind + 1 > argc) { fprintf(stderr, "Usage: fastbwa bwt2fmt \n"); return 1; @@ -369,14 +369,22 @@ int bwa_idx_build(const char *fa, const char *prefix, int algo_type, int block_s bwt_dump_sa(str3, bwt); bwt_destroy(bwt); if (bwa_verbose >= 3) fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC); - { + { + t = clock(); // build FMT-Index FMTIndex *fmt; strcpy(str, prefix); strcat(str, ".fmt"); fmt = create_fmt_from_bwt(bwt); dump_fmt(str, fmt); // create Kmer-Hash - + fmt_create_kmer_index(fmt); + strcpy(str, prefix); strcat(str, ".kmer"); + fmt_dump_kmer_idx(str, &fmt->kmer_hash); + if (bwa_verbose >= 3) fprintf(stderr, "%.2f sec\n", (float)(clock() - t) / CLOCKS_PER_SEC); + // create byte sa + bwt_cal_byte_sa(bwt, 4); + strcpy(str, prefix); strcat(str, ".bytesa"); + bwt_dump_byte_sa(str, bwt); } } free(str3); free(str2); free(str); diff --git a/main.c b/main.c index 86b8ab1..718e7c0 100644 --- a/main.c +++ b/main.c @@ -80,6 +80,8 @@ static int usage() fprintf(stderr, " bwtupdate update .bwt to the new format\n"); fprintf(stderr, " bwt2sa generate SA from BWT and Occ\n"); fprintf(stderr, " bwt2bytesa generate SA(using byte array) from BWT and Occ\n"); + fprintf(stderr, " bwt2fmt generate FMT-Index from BWT\n"); + fprintf(stderr, " buildkmer generate kmer index from FMT\n"); fprintf(stderr, "\n"); fprintf(stderr, "Note: To use BWA, you need to first index the genome with `bwa index'.\n"