- BWA-MEM算法整体流程如下:
1 读入 bwt、options、reads;
2 利用mem_chain生成chain;
3 利用mem_chain_flt过滤掉部分chain;
4 利用mem_chain2aln生成比对结果元数据。
BWA采用seed-and-extend策略。在seed阶段,BWA取read的碱基片段在reference上进行精确匹配,并选择满足一定匹配次数和长度要求read片段作为seed,这个阶段算法的核心是基于FM-index的精确匹配;在extend阶段,BWA利用Smith-Waterman算法将seed在read和reference上向两边延伸比对(容忍gap),进而找到整个read在reference上符合条件的全局匹配。
- BWT变换