问题:reference:CGTCT; read:GTC;
由read的T开始去匹配,那么在bi-interval模型中他是怎么实现的呢?今天举例来具体复现一下。
先对reference取反:GCAGA
再对取反后的:reference颠倒位置:AGACG
reference 右移:
- CGTCTAGACG
- GCGTCTAGAC
- CGCGTCTAGA
- ACGCGTCTAG
- GACGCGTCTA
- AGACGCGTCT
- TAGACGCGTC
- CTAGACGCGT
- TCTAGACGCG
- GTCTAGACGC
排序:
- ACGCGTCTAG ~4
- AGACGCGTCT~6
- CGCGTCTAGA~3
- CGTCTAGACG~1
- CTAGACGCGT~8
- GACGCGTCTA~5
- GCGTCTAGAC~2
- GTCTAGACGC~10
- TAGACGCGTC~7
- TCTAGACGCG~9
BWT表建立完毕,从read(GTC)的中间碱基T开始匹配,
其Bi-interval为:[9,1,2]。
Forward匹配:
进T右边的C,即:TC(GA)
其Bi-interval为:[10, 6,1],根据算法更新的6。10为顺承更新。
进T左边的G,即:GTC(GAC)
其Bi-interval为:[8,6,1]
- 匹配规则说明
c()表存的是以ACGT为首的碱基在bwt表中的位置,具体来看就是:C(A)=1;C(C)=3;C(G)=6;C(T)=9;
O()表存的是从0位置到I(p),有多少个a碱基。p表示上次匹配得到的碱基串,I(p)返回(1~10)范围内的一个位置。o表共有4*n个数据。