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
|