Nanopore base-calling from a perspective of instance segmentation閱讀筆記

Nanopore base-calling from a perspective of instance segmentation
思想:將鹼基檢測任務當做一種多類標籤分割任務。

2 方法

流程有兩個:
	1. UR-net分割信號和鹼基檢測;
	2. 後處理,負責合併鹼基成完整的read。
後處理

這個簡單所以先介紹這個。後處理有兩步。首先,接收網絡輸出的標籤,並將連續重複的標籤摺疊爲一個,然後,將標籤映射到A,C,G,T{A,C,G,T}
其中網絡的輸出鹼基值值範圍有:(A1,A2,C1,C2,G1,G2,T1,T2A_1,A_2,C_1,C_2,G_1,G_2,T_1,T_2)。每個鹼基有兩個預測值的原因是爲了避免在後處理時將例如AAA這一類的預測鹼基對進行合併成A。因爲原文的後處理過程會將AA,CC,GG,TT等連續重複的鹼基進行合併。所以爲了避免錯誤的合併了預測的AA組,作者使用A1A2A_1A_2表示真實的AAAA

2.1 UR-net

UR-net網絡結構
上圖就是作者提出的網絡結構,其中綠色部分爲相比U-net的創新部分:GRU。其分爲兩點:
1. 在每個Conv-BN-ReLu塊後面都跟一個GRU,GRU的輸出一個是池化,還有一個就是和後面的CNN進行拼接。
2. 最後的輸出加了三個雙向GRU,強調關注時序關係。

2.2 訓練

loss函數
Loss函數有兩種,第一個是dice loss,第二個是分類熵loss。

dice loss:
形式爲兩者的交集除以並集,描述兩者相似度。
categorical entropy loss:
一個用於多分類的loss。網絡輸出8類所以是8項的和。

2.3 同聚物重複的處理

上文介紹過了,就是通過A1A2A_1A_2來表示AAAA

2.4 合併滑窗的鹼基爲一個read

做法很簡單,首先找相鄰片段最大重複的,重複度最高的拼一塊。其次,如果同一位置上有多個鹼基值,找佔比最大的作爲最終的值。
作者在合併時去掉了每個base-call的頭尾,因爲兩端的信號不完整,所以不用。

實驗

3.1.1 數據

這裏主要講數據預處理的過程。原始信號減中位數除以絕對中位差。絕對中位差是原始數據減去中位數後的值,求這些值的中位數,就是絕對中位差。規範數據到[-2,+2],大於10的值扔掉不要了。

3.1.2 評價標準
1. NED:規範化編輯距離
2. 讀取精度RA
3. 拼接後的相等率identity和相對長度relative length

**NED:**不重疊窗口中的base-call和標準(gold nucleotides)之間的編輯距離
**RA:**與reference相等的數量M除以(M+插入I+刪除D+不匹配U)
在這裏插入圖片描述
identity和relative length:
在這裏插入圖片描述
後面就沒啥了,最後誰能告訴我表格裏相對長度的數據爲什麼是一百多,兩個長度相除應該不會差太多吧?怎麼就到了一百多了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章