測序儀
2017年一篇發表在Nature的綜述"DNA sequencing at 40: past, present and future"介紹了DNA測序這40年的發展歷程。1976年,Sanger和Coulson同時發表了2種方法用于對上百個DNA堿基進行解碼,這就是第一代測序技術。到了2005年,羅氏的454平臺揭開了高通量測序的序幕,后面則是SOLiD,454和Illumina三方對抗。然而10年過去了,市面上的二代測序只有illumina一家獨大。在三代測序技術或者4代測序技術上,目前則是PacBio和MinION占領了市場的大部分份額。
測序儀的工作原理
高通量測序之所以能夠能夠達到如此高的通量的原因就是他把原來幾十M,幾百M,甚至幾個G的基因組通過物理或化學的方式打算成幾百bp的短序列,然后同時測序。
因為測序過程是邊合成邊測序(SBS),所以在建庫的時候,短序列兩段會加一些固定的堿基用于橋式PCR擴增,這些固定的堿基就是adapter(接頭)。一般而言,還可以在接頭加一些tag(index),用于標識這個read來自于哪個物種。目前的單細胞測序為了省錢,譬如10X genomic技術,都是在一個pool里面加多種接頭。
以二代測序的無冕之王illumina測序儀建庫為例,假設有如下的DNA片段
AAAATTTTGGGGCCCC
TTTTAAAACCCCGGGG
在建庫準備時,單一設計的DNA接頭長度通常超過30個堿基,會加在每條序列的兩端
XXXXAAAATTTTGGGGCCCCYYYY
XXXXGGGGCCCCAAAATTTTYYYY
對于給定的片段,每條鏈都會被測序。測序儀通常會識別起始位點的XXXX,但不會被記錄,測序方向:
---->
AAAAT
AAAATTTTGGGGCCCC
TTTTAAAACCCCGGGG
CGGGG
<----
由于片段長度不一,所以會出現read-through的情況,也就是讀到了接頭的序列。
由于測序的protocol和instrumentation不同,測序方向也可能不同,這會導致程序出現錯誤。因此請確保你的雙端數據的方向是----> <----
。
在測序過程中,機器會對每次讀取的結果賦予一個值,用于表明它有多大把握結果是對的。從理論上都是前面質量好,后面質量差。并且在某些GC比例高的區域,測序質量會大幅度降低。
目前,Illumina的錯誤率是1/1000,PacBio是1/10,而MinION是1/5。隨著技術的更新,目前它們的錯誤率應該是得到很大的降低了,但是順序不會變,于是三代和四代的測序結果一般都需要二代進行糾錯。
測序儀詳解
2011年有一篇文章Travis Glenn’s Field Guide to Next Generation DNA Sequencer對不同測序儀進行了測評。現在6年過去了,這篇文章的內容也得到了相應的更新,見2016: Updates to the NGS Field Guide
Ilumina
待補充
PacBio
待補充
Minion
待補充
樣本準備
待補充
測序數據覆蓋度
什么叫做測序數據的覆蓋度(coverage),這是一個很好的問題。在書中,覆蓋率簡單定義為:
c = 測序的堿基數 / 基因組總大小
一開始我覺得這個公式其實是計算測序的平均深度。但是后面繼續談到覆蓋度不是意味著所有基因組都被覆蓋了,而是覆蓋率越高,基因組未被檢測到的基因越少。根據經驗公式,堿基丟失率:P = exp(-C)。假設測序深度10x,基因組長度為20k,那么丟失exp(-10)*20000,差不多是一個堿基,如果是人類基因組會是136199個堿基。
當然理論覆蓋度并不代表現實情況,由于基因組的復雜性,DNA可能也不是真的隨機打斷,甚至實驗protocol還有一定的偏向性。
- 盡可能增加測序深度
- 盡管有一些基因組部分很難被測序,但是我們其實清楚這些區域難以測序的原因
- 基因組的高度重復區域需要更長的讀長才能被發現
- 基因組不同區域可能會產生相同的read,你需要更長的讀長。
科學家喜歡用“可進入(accessible)", "可比對(mappable)", "有效(effective)"的基因組來指明基因組哪些區域很容易被研究。
數據質量和質量控制
一般而言,拿到數據后最重要的一步就是看看數據的質量如何。之前已經提及過FASTQ的基本格式,這里就不具體展開,并且我們其實一般都是使用Babraham Institute開發的FastQC對質量進行可視化展示。
目前來看,FastQC基本上已經是數據質量展示的通用工具了。它使用Java進行開發,是跨平臺工具,效率高,簡單易用,出圖也好看。但是記住一點,FastQC不做質量控制,它只是展示數據的質量而已。
使用FastQC展示數據質量
FastQC的工作原理是通過對總體數據的抽樣來評估總體效果,這就是它快(fast)的愿意,畢竟其他一些質量展示軟件是老老實實把所有數據都用于作圖。
首先你需要準備數據和軟件:
conda -c bioconda install fastqc
wget http://data.biostarhandbook.com/data/sequencing-platform-data.tar.gz
tar xzvf sequencing-platform-data.tar.gz
然后你需要稍微了解以下fastqc的參數:
fastqc seqfile1 seqfile2 .. seqfileN
常用參數:
-o: 輸出路徑
--extract: 輸出文件是否需要自動解壓 默認是--noextract
-t: 線程, 和電腦配置有關,每個線程需要250MB的內存
-c: 測序中可能會有污染, 比如說混入其他物種
-a: 接頭
-q: 安靜模式
最后使用FastQC進行數據質量可視化展示
fastqc *.fq
結果會得到每個FASTQ文件對應的zip壓縮文件和HTML文件。數據匯總主要會用ZIP壓縮文件,而對數據質量的直觀感受則是看HTML文件,直接用網頁打開。綠色表示通過,紅色表示未通過,黃色表示不太好
具體含義可以看這里: http://jingyan.baidu.com/article/49711c6149e27dfa441b7c34.html
一些注意事項:
- 沒必要太過在意“stoplinght",但是如果全部紅燈,那么數據就要小心了。
- 序列重復分為兩類:天然重復(片段相同),人為重復(PCR擴增,檢測)
檢測重復有兩種方法:序列相同,比對相同。讀段重復最大的問題是在檢測變異上,如果一個變異點重復兩次,會產生與實際不符的效果。SNP calling和基因組變異檢測需要移除重復,其他就不需要。
如果同一批測序有多個數據,比如說15個(5個樣本,3個重復),在對每個數據做一個fastqc后,還可以用multiqc進行數據聚合展示
利用conda安裝軟件尤其簡單,
conda install multiqc
multiqc --help
使用也很方便,
# 先獲取QC結果
ls *gz | while read id; do fastqc -t 4 $id; done
# multiqc
multiqc *fastqc.zip --pdf
會有一個html文件用來了解總體情況
測序質量的質量控制
質控時機:比對前的原始數據和比對后的數據過濾
流程:
- 數據可視化評估
- 質量不錯就停止QC
- 否則對數據進行修改,返回步驟1
QC工具的可信度
- 首先QC工具本身質量就不是很好,QC工具之間可能也不一致,不同工具使用相同的參數可能也會有不同的結果。
- QC的確可能會引入錯誤,所以如果盡量避免修改數據
QC工具集
比較好的是Trimmomatic
, BBDuk
,flexbar
and cutadapt
- BBDuk part of the BBMap package
- BioPieces a suite of programs for sequence preprocessing
- CutAdapt application note in Embnet Journal, 2011
- fastq-mcf published in The Open Bioinformatics Journal, 2013
- Fastx Toolkit: collection of command line tools for Short-Reads FASTA/FASTQ files preprocessing - one of the first tools
- FlexBar, Flexible barcode and adapter removal published in Biology, 2012
- NGS Toolkit published in Plos One, 2012
- PrinSeq application note in Bioinformatics, 2011
- Scythe a bayesian adaptor trimmer
- SeqPrep - a tool for stripping adaptors and/or merging paired reads with overlap into single reads.
- Skewer: a fast and accurate adapter trimmer for next-generation sequencing paired-end reads.
- TagCleaner published in BMC Bioinformatics, 2010
- TagDust published in Bioinformatics, 2009
- Trim Galore - a wrapper tool around Cutadapt and FastQC to consistently apply quality and adapter trimming to FastQ files, with some extra functionality for MspI-digested RRBS-type (Reduced Representation Bisufite-Seq) libraries
- Trimmomatic application note in Nucleic Acid Research, 2012, web server issue
There also exist libraries via R (Bioconductor) for QC: PIQA, ShortRead