/* Description: 通过fmt-idx数据结构对seed过程进行加速(fm-index twice search in one time) Copyright : All right reserved by ICT Author : Zhang Zhonghai Date : 2023/12/24 */ #ifndef BWA_FMT_IDX_H #define BWA_FMT_IDX_H #include #include #include "bwt.h" typedef uint64_t bwtint_t; /* ignore the first 12 bases, and give the entrence directly */ typedef struct { uint8_t range[9]; // 前36位表示起始行,后36位表示结束行(fm-index索引行) } kmer_range_t; typedef struct { bwtint_t primary; // S^{-1}(0), or the primary index of BWT 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 // kmer entry kmer_range_t *kmer_range; // occurance array, separated to two parts uint32_t cnt_table[256]; // suffix array int sa_intv; bwtint_t n_sa; bwtint_t *sa; } bwtd_t; // 创建fmt-index索引数据 void BuildBwtdFromBwt(bwt_t *bwt, bwtd_t **bwtd_p); #endif