LongQC: A Quality Control Tool for Third Generation Sequencing Long Read Data
安裝
conda install h5py conda install -c bioconda pysam conda install -c bioconda edlib conda install -c bioconda python-edlib
cd /path/to/download/ git clone https://github.com/yfukasawa/LongQC.git cd LongQC/minimap2-coverage && make cd .. LongQCPath=`pwd`
pip install sklearn 參數(shù)詳解python $LongQCPath/longQC.py sampleqc -h #usage: LongQC sampleqc [-h] -o OUT -x preset [-t] [-n NSAMPLE] [-s SUF] [-c TRIM] [--adapter_5 ADP5] [--adapter_3 ADP3] [-f] [-p NCPU] [-d] [-m MEM] [-i INDS] [-b] input #input 輸入待質(zhì)控數(shù)據(jù)的格式,如fasta、fastq或pbbam #-o OUT 輸出文件的路徑 #-x preset 輸入待質(zhì)控數(shù)據(jù)的測序類型,,以便自動提供數(shù)據(jù)的接頭和olvp參數(shù),,測序類型有:pb-rs2, pb-sequel, pb-hifi, ont-ligation, ont-rapid, ont-1dsq #-t 輸入轉錄本、RNA或CDA序列文件(如果有) #-n NSAMPLE 樣本序列的數(shù)量,,默認為5000 #-s SUF 輸出文件的前綴名字 #-c TRIM 輸入去掉的接頭的保留路徑,,如果沒有輸入,接頭不會保留,。 #--adapter_5 ADP5 輸入5'接頭 #--adapter_3 ADP3 輸入3'接頭 #-f 關閉一些sensitive的設置,,能運行更快但是準確性下降 #-p NCPU 輸入線程數(shù),默認4個線程,,線程數(shù)要求>=4 #-d, --db 輸入minimap2比對的db庫 #-m MEM, --mem MEM 亞數(shù)據(jù)集的內(nèi)存限制,,指定為千兆字節(jié)(>0和<2),默認是0.5千兆字節(jié) #-i INDS, --index INDS 給出minimap2 (-I)的索引大小,,單位為bp,。在小內(nèi)存的服務器上運行時這個參數(shù)要減少。默認是4g,。 #-b, --short 對于非常短和高錯誤的reads(500bp),,開啟高靈敏度設置。 運行
python $LongQCPath/longQC.py sampleqc -x pb-hifi -o out_dir input_reads.bam
analysis/ #minimap比對結果 figs/ #分析圖片 logs/ #分析日志 longqc_sdust.txt #QV的統(tǒng)計情況 QC_vals_longQC_sampleqc.json web_summary.html #可視化結果 結果解讀
(Nanopore 左,,PacBio 右) 這個圖展示是reads長度分布,三代測序數(shù)據(jù)會顯示單獨的高峰,。如果是轉錄組測序數(shù)據(jù),,會有嚴格的大小選擇的數(shù)據(jù)(如PacBio數(shù)據(jù))會向右移動顯示更高的峰。 1. Mean read length:樣品的reads預測的長度 2. N50:N50值
(圖1 nanopore ,,圖2 PacBio) 上圖將顯示了per reads的QV分布,,y軸為平均QV值,,x軸是reads的長度集。
上圖為Per read 覆蓋度分布圖,。如果數(shù)據(jù)沒有問題,,應該是單峰(圖1)。如果是多峰值,,可以考慮是否基因組或者材料的雜合情況比較高(宏基因組數(shù)據(jù)除外),。
上圖為覆蓋度與reads長度的關系圖,用來檢查覆蓋范圍是否有意外波動,。在基因組測序數(shù)據(jù)中,,覆蓋范圍的波動應該在一定范圍內(nèi)(默認為3 σ)。如果超出這個范圍,,表明數(shù)據(jù)存在污染,,文庫質(zhì)量低,PacBio超載等問題,。
(Nanopore 左,,PacBio 右) 正常情況下,,Normal reads 比non-sense reads的顯示更高的值。
這個部分顯示的中值覆蓋率可能比使用參考基因組進行質(zhì)控的結果要小,。由于將reads比對到未更正的容易出錯的整個測序數(shù)據(jù)集上時,,比對是不太敏感的,因此覆蓋率會受到這種不太敏感的結果的影響,。由于上述影響,,估計的基因組/轉錄組大小往往大于實際大小。一般來說,,更好的數(shù)據(jù)提供更好的尺寸估計,。
上圖使用了兩種不同的方法計算GC含量,其中藍色是對end to end全長的reads進行計算,,而紅色是對分塊的亞數(shù)據(jù)集進行計算,。 藍色顯示更清晰的分布,因為使用更長的序列使結果受到更小的偏差,。由于測序平臺不同也會導致相同的數(shù)據(jù)的reads長度不同,,從而導致全長reads不同,而紅色的分塊亞數(shù)據(jù)集對長度已經(jīng)標準化,,所以對測序或樣本差異更不敏感,,更可靠。
可以用來檢查特定序列的連接,,如接頭,。如果沒有人工序列(如接頭),在兩個圖中峰值應該顯示在0的位置,。如果觀察到類似于接頭的序列,,則用紅色虛線標出平均長度。第一張圖表示有接頭,,第二張圖表示沒有接頭
這里通過DUST算法顯示序列的完整性分數(shù) 背景知識三代測序的質(zhì)控問題一個熒光信號被測序軟件判讀為某一種堿基,,存在一定的概率(Pe)發(fā)生判斷錯誤,。QV就是用來衡量Pe高低的一個定量指標,其定義為: 而三代測序由于其隨機分布的堿基錯誤率,,單堿基的準確性不能直接用來衡量數(shù)據(jù)的質(zhì)量,所以Pacbio Sequel測序平臺的下機數(shù)據(jù)不會提供單堿基質(zhì)量值QV,。此外,,三代測序雖然讀長長,但是錯誤率高(~15%),,而且跟二代測序所用的技術原理不同,。二代測序的質(zhì)控軟件如FastQC(依賴QV評估測序數(shù)據(jù))不適合三代測序的質(zhì)控。當三代測序數(shù)據(jù)不提供QV,,且沒有參考基因組時,,要怎么進行質(zhì)控呢,? LongQC的介紹
LongQC中的一些解釋
non-sense reads是指沒有比對到整個測序數(shù)據(jù)集的reads,,這些reads在整個數(shù)據(jù)中的分布是任意且分散的,,開發(fā)者認為這些reads是測序技術或建庫中導致的錯誤reads,或者是污染的reads,。通過計算這些non-sense reads在整個測序數(shù)據(jù)集所占的比例,,可以評估測序數(shù)據(jù)的質(zhì)量。
由于Sequel測序數(shù)據(jù)沒有提供堿基質(zhì)量信息,,所以在longQC質(zhì)控結果中關于QV的評估都是0,。而Nanopore測序數(shù)據(jù)有Q-scores,Q-Scores是用來說明一個給定的堿基比它周圍的堿基更好還是更差的依據(jù),。開發(fā)者通過DASCRUBBER軟件對數(shù)據(jù)生成了QV,,再進行質(zhì)控后可以看到QV的解析結果。 |
|