#ifndef FMT_INDEX_H_ #define FMT_INDEX_H_ #include "bwt.h" // fm-index, extend twice in one search step (one memory access) struct FMTIndex { bwtint_t primary; // S^{-1}(0), or the primary index of BWT bwtint_t sec_primary; // second primary line bwtint_t L2[5]; // C(), cumulative count bwtint_t seq_len; // sequence length bwtint_t bwt_size; // size of bwt, about seq_len/4 uint32_t *bwt; // BWT // occurance array, separated to two parts uint32_t cnt_table[5][256]; // 4对应原来的cnt_table,0,1,2,3,分别对应该碱基的扩展 int sec_bcp; // base couple for sec primary line, AA=>0, AC=>1 ... TT=>15 int first_base; // 序列的第一个碱基2bit的int类型,0,1,2,3 int last_base; // dollar转换成的base // suffix array int sa_intv; bwtint_t n_sa; uint8_t *sa; }; #endif