26 lines
917 B
C
26 lines
917 B
C
#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 |