P值與基因組學(1):從fastq文件的分析的分析談起

計劃寫一個系列,可能到十月中旬就寫完了。

先從一個具體的例子講起吧,我們把一個樣品送去測序,我們會得到一個fastq文件,這個文件的格式如下,圖片來自FASTQ files

這個文件給出了測序得到的每個鹼基的質量,為Q socre, Q score 值越高,質量越好,為啥呢?

測序儀在每測一個鹼基的時候會進行一次假設檢驗,算出如果該鹼基是由於噪音而測出的概率p,更一般的情況下(在後面的文章我們會提到的),我們稱該值為p值

通常情況下,p是很小的,對付很小的書和很大的數,我們有對數這個神器,於是引入了Q socre:

Q=-10{log}_{10}p (1)

我們可以發現,p=0.1,Q=10; p=0.01,Q=20,p=0.001,Q=30,即:如果該鹼基是由於噪音測出的概率越小,p越小,Q越大,所以Q值越大,該鹼基的質量越好。

比如圖中的鹼基T的Q score 為25, 根據換公式(1),我們得到在該位置由於雜訊測得鹼基T的概率papprox 0.003

現在問題來了,我們如何衡量如圖中所示的這樣一段讀長的序列的質量呢?

為了深入討論,我們先講一個思路,

假設我們對現在所得的一條Reads,序列讀長為n,位置1的鹼基的p值為p_1,位置2的鹼基的p值為p_2,,,位置n的鹼基的p值為p_n,

假設其中最大的一個p值為{p}_{max},對於任意的p_i(i=1,2,...,n),我們有

p_ileq {p}_{max}

那麼對於任意位置i,該位置的準確度為1-{p}_{i},我們有:

1-p_i geq 1-{p}_{max}

(1-p_i)^ngeq(1-{p}_{max})^n

記該序列的p值為{p}_{tatol},假設p_i(i=1,2,...,n)之間是相互獨立的,則我們有:

{p}_{total}=1-prod_{a}^{b} (1-p_i) leq 1-(1-{p}_{max})^n={p}_{totalmax} (2)

根據(2),我們如果取n=72,{p}_{max}=0.001,則我們有{p}_{totalmax}=0.03538

誒,巧了,小於費歇爾老爺子說的0.05。

費歇爾老爺子

但是問題來了,隨著測序技術的不斷發展,這個讀長n是在不斷增長的,所以根據(2)當n越大的時候,{p}_{total}遲早會變得大於0.05,更糟糕的是,對n取極限的話,{p}_{total}的上界會變為1,這真是一個悲傷的故事,那麼我們該怎麼辦。

我們可以用 Bonferroni correction(Bonferroni_correction)來解決我們的問題,將(2)改寫為:

{p}_{total} = 1-prod_{i=1}^{n} (1-frac{p_i}{n} )leq1-(1-frac{{p}_{max}}{n} )^n (3)

如果繼續取{p}_{max}=0.001,則當我們有n=72時,{p}_{totalmax}=0.001,n=1000時,由(2)得,{p}_{totalmax}=0.6323,有(3)得到{p}_{totalmax}=0.001,對n取極限,我們會有{p}_{totalmax}=1-(1-frac{{p}_{max}}{n} )^n=1-{e}^{-p}

當p甚小時

{p}_{totalmax}=1-{e}^{-p}approx 1-(1-p)=p

但是這樣也有個問題,我們如何確定檢驗的閾值呢?如果是Bonferroni correction,比如n=36時,閾值不再是alpha=0.05,而是alpha=frac{0.05}{36} approx 0.00139但是我們算出來的p值並不小於0.00139這又讓人不舒服的事情。

而且,對於同一批次的話,我們的Reads不只有一條,而是有很多條的,我們如何確定這一批次的質量呢,且聽下回分解。


推薦閱讀:

能飲一杯無?
知乎Live-R語言入門與R的基礎繪圖系統
知道編碼蛋白質的某一DNA序列後,怎麼測定該蛋白質的三維結構?國內有哪個大學、機構在做這個?

TAG:分子生物学 | 生物信息学 | 二代测序 |