先對reference取反:gcagabwt表建立完畢,從read(gtc)的中間鹼基t開始匹配,再對取反後的: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
其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個資料。
redis 雙端鍊錶
鍊錶作為陣列之外的一種常用序列抽象,是大多數高階語言的基本資料型別,因為c 語言本身不支援鍊錶型別,大部分c 程式都會自己實現一種鍊錶型別,redis 也不例外.雙端鍊錶的應用 雙端鍊錶作為一種通用的資料結構,在redis 內部使用得非常多 它既是redis 列表結構的底層實現之一,還被大量redi...
1 4雙端鍊錶
雙端鍊錶與普通單鏈表的區別在於既可以從鍊錶頭部開始遍歷,又可以從尾部開始遍歷,這就要求每個節點不僅有乙個後向指標,還要乙個前驅指標。節點資料結構定義如下 public class dlinknode public dlinknode public dlinknode t data 雙端鍊錶資料結構包...
演算法筆記 雙端處理
有的遞推演算法既可以從左向右推也可以從右向左推,這種特性賦予了我們乙個技巧,雙端處理法 當乙個東西對遞推陣列的影響僅限於左半部分或右邊部分,我們可以構造乙個反向遞推的陣列,把不受影響的部分合起來計算 ex最大欄位和 經典的最大子段和問題應該都很熟悉了,那麼如果把這個問題魔改一下,選取兩段不相交的子段...