static void tmap_index_core(tmap_index_opt_t *opt) { uint64_t ref_len = 0; // pack the reference sequence ref_len = tmap_refseq_fasta2pac(opt->fn_fasta, TMAP_FILE_NO_COMPRESSION, 0); if(TMAP_INDEX_TOO_BIG_GENOME <= ref_len) { // too big (2^32 - 1)! tmap_error("Reference sequence too large", Exit, OutOfRange); } // check returned genome size if(opt->is_large < 0) { if(TMAP_INDEX_LARGE_GENOME <= ref_len) { opt->is_large = 1; tmap_progress_print("defaulting to \"bwtsw\" BWT construction algorithm"); } else { opt->is_large = 0; tmap_progress_print("defaulting to \"is\" BWT construction algorithm"); } } // create the bwt tmap_bwt_pac2bwt(opt->fn_fasta, opt->is_large, opt->occ_interval, opt->hash_width, opt->check_hash); // create the suffix array tmap_sa_bwt2sa(opt->fn_fasta, opt->sa_interval); // pack the reference sequence ref_len = tmap_refseq_fasta2pac(opt->fn_fasta, TMAP_FILE_NO_COMPRESSION, 1); }
int tmap_refseq_fasta2pac_main(int argc, char *argv[]) { int c, help=0; while((c = getopt(argc, argv, "vh")) >= 0) { switch(c) { case 'v': tmap_progress_set_verbosity(1); break; case 'h': help = 1; break; default: return 1; } } if(1 != argc - optind || 1 == help) { tmap_file_fprintf(tmap_file_stderr, "Usage: %s %s [-vh] <in.fasta>\n", PACKAGE, argv[0]); return 1; } tmap_refseq_fasta2pac(argv[optind], TMAP_FILE_NO_COMPRESSION); return 0; }