ngs中reads mapping-pku的生信課程
4.NGS中的reads mapping
顧名思義,就是將測序的得到的DNA定位在基因組上。
因為二代測序的得到的序列是較短的,reads mapping很好地解決了這個問題。
本質上reads mapping是一個雙序列比對問題,但和之前講的NW和SW的不一樣,後者適用於兩者長度相差不大的。
現在問題有幾個特征:
1.reads和ref的長度有著跨數量級的差異,reads長度通常不超過100bp,而ref基因組通常在上百Mb。
2.數據量,NGS測序產生的數據量達到幾百Gb,相當於幾十個人的人類基因組。
3.數據質量。在雙序列比對中通常假定序列本身不會出錯,但是NGS所產生的reads質量參差不齊。
reads可以說是鑲嵌到基因組序列中的,對於基因組來說是局部比對,對於reads來說是全局比對,是一個混合型的alignment。
首先對基因組建立索引,也就是index,
將每一個基因根據key映射到一個index,從而存儲在不同的數據塊中,盡量減少比對時間。
哈希可以來完成,以下例子:
先給ACGT分別確定一個值,那麽將求和作為哈希函數,將基因組中分段,然後進行映射存儲。這樣有一個reads之後就可以以O(1)時間內尋找位置。
通常有一定的容錯性。
數據壓縮中的前綴樹和後綴樹被應用於reads mapping。 這裏也提到了bowtie和BTW(Burruws Wheeler transform),提高了內存利用效率和比對速度。
在對短序列對比時,將所有的SQ都算出來,read中每個堿基都有一個測序質量,假定錯配都是由測序錯誤引起的,從而計算出SQ。
在實際對read mapping的比對中,通常不使用序列比對分數,而使用mapping Quality(也就是最後一行的E),來篩選Read在Ref中的位置。
//這個415是如何得到的呢?是所有SQ的和。
當將reads正確映射到基因組之後,就可以來判斷遺傳變異。
根據遺傳變異的尺寸,可以分為單個堿基水平的單核苷酸變異和多個:
//這個圖說的簡直十分清晰。
SNV是最常見的遺傳變異分析方法:包括替換堿基,或者插入刪除堿基。
SV:包括大規模刪除插入、倒轉、易位、拷貝數變異。
SNP calling是確定哪個基因位點存在變異,不涉及到對應位點的基因型。
Genotype calling是進一步確定變異位點的基因型是純合的還是雜合的。
測序深度(sequencing depth):測序得到的堿基總量與基因組大小的比值。 它與基因組覆蓋度是一個正相關的關系。測序錯誤率和假陽性結果會隨測序深度的提高而下降。
//這張圖它在說什麽,我完全聽不懂啊。什麽就是純和了,怎麽就雜合了?
這裏給出了一個簡單的概率模型。
一個生物體的基因型,有三種情況,那麽假設在基因測序中測到的有k個A,有n-k個a。
如果是AA,那麽概率就是n-k個a錯誤概率的乘積,雜合子由1-二者之和。
那麽如果知道生物體中三種基因型出現了概率作為先驗概率,那麽可以推算出,後驗概率。
//其實這裏不太明白D是什麽?
ngs中reads mapping-pku的生信課程