各位做生信的小伙伴都知道,對于下機的FASTQ數(shù)據(jù)需要進行質(zhì)控和預處理咪惠,以保證下游分析輸入的數(shù)據(jù)都是干凈可靠的朦蕴。通常我們都是使用FASTQC等軟件進行質(zhì)控凹蜂,使用cutadapt軟件去除接頭,使用Trimmomatic等軟件進行剪裁性宏,然后使用一些自已開發(fā)的腳本進行過濾群井。
好了,現(xiàn)在給大家介紹一個發(fā)表在《bioinfomatics》上的測序質(zhì)控軟件--fastp
文章鏈接請移步:https://academic.oup.com/bioinformatics/article/34/17/i884/5093234
通過掃描fastq文件一次毫胜,就完成從質(zhì)控到處理的工作书斜,而且速度也是很讓人舒服诬辈。
因為是C++開發(fā),而且完美支持多線程<黾(尖叫1涸恪),所以軟件的運算速度還是很快的样屠。
話不多說有需要了解的直接移步:https://github.com/OpenGene/fastp
我們直接來看看軟件的優(yōu)點
對數(shù)據(jù)自動進行全方位質(zhì)控穿撮,生成人性化的報告。
過濾功能(低質(zhì)量瞧哟,太短混巧,太多N……)。
對每一個序列的頭部或尾部勤揩,計算滑動窗內(nèi)的質(zhì)量均值咧党,并將均值較低的子序列進行切除(類似Trimmomatic的做法,但是快非常多)陨亡。
全局剪裁 (在頭/尾部傍衡,不影響去重),對于Illumina下機數(shù)據(jù)往往最后一到兩個cycle需要這樣處理负蠕。
去除接頭污染蛙埂。厲害的是,你不用輸入接頭序列遮糖,因為算法會自動識別接頭序列并進行剪裁绣的。
對于雙端測序(PE)的數(shù)據(jù),軟件會自動查找每一對read的重疊區(qū)域欲账,并對該重疊區(qū)域中不匹配的堿基對進行校正屡江。
去除尾部的polyG。對于Illumina NextSeq/NovaSeq的測序數(shù)據(jù)赛不,因為是兩色法發(fā)光惩嘉,polyG是常有的事,所以該特性對該兩類測序平臺默認打開踢故。
對于PE數(shù)據(jù)中的overlap區(qū)間中不一致的堿基對文黎,依據(jù)質(zhì)量值進行校正
可以對帶分子標簽(UMI)的數(shù)據(jù)進行預處理,不管UMI在插入片段還是在index上殿较,都可以輕松處理耸峭。
可以將輸出進行分拆,而且支持兩種模式斜脂,分別是指定分拆的個數(shù)抓艳,或者分拆后每個文件的行數(shù)。
fastp軟件會生成HTML格式的報告,而且該報告中沒有任何一張靜態(tài)圖片玷或,所有的圖表都是使用JavaScript動態(tài)繪制儡首,非常具有交互性。想要看一下樣板報告的偏友,可以去以下鏈接:http://opengene.org/fastp/fastp.html
而且軟件的開發(fā)者還充分考慮到了各種自動化分析的需求蔬胯,不但生成了人可讀的HTML報告,還生成了程序可讀性非常強的JSON結(jié)果位他,該JSON報告中的數(shù)據(jù)包含了HTML報告100%的信息氛濒,而且該JSON文件的格式還是特殊定制的,不但程序讀得爽鹅髓,你用任何一款文本編輯器打開舞竿,一眼過去也會看得明明白白。想要看一下JSON結(jié)果長什么樣的窿冯,可以去以下鏈接:http://opengene.org/fastp/fastp.json
1.軟件的安裝
如果你的系統(tǒng)安裝了anaconda的話
conda install -c bioconda fastp
下載安裝
wget http://opengene.org/fastp/fastp
chmod a+x ./fastp
源碼安裝
git clone https://github.com/OpenGene/fastp.git
# build
cd fastp
make
# Install
sudo make install
2.軟件的使用
單端測序數(shù)據(jù)(single-end骗奖,SE) 的話
fastp -i in.fq -o out.fq
雙端測序數(shù)據(jù)(paired-end,PE)的話
fastp -i in.R1.fq -o out.R1.fq -I in.R2.fq -O out.R2.fq
#注意大小寫
fastp對于輸入和輸出都支持gzip壓縮醒串,只要文件名的末尾帶有.gz执桌,就會被認為是gzip壓縮文件,會啟用gzip對輸入輸出進行壓縮和解壓處理芜赌。
fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz
4.結(jié)果的分析
1.summary
astp可以對低質(zhì)量序列仰挣,較多N的序列,該功能默認是啟用的缠沈,但可以使用-Q參數(shù)關(guān)閉膘壶。使用-q參數(shù)來指定合格的phred質(zhì)量值,比如-q 15表示質(zhì)量值大于等于Q15的即為合格洲愤,然后使用-u參數(shù)來指定最多可以有多少百分比的質(zhì)量不合格堿基香椎。比如-q 15 -u 40表示一個read最多只能有40%的堿基的質(zhì)量值低于Q15,否則會被扔掉禽篱。使用-n可以限定一個read中最多能有多少個N。
fastp還默認啟用了read長度過濾馍惹,但可以使用-L參數(shù)關(guān)閉躺率。使用-l參數(shù)指定最低要求一個read有多長,比如-l 30表示低于30個堿基的read會被扔掉万矾。這個功能可以用于實現(xiàn)常用的discard模式悼吱,以保證所有輸出的序列都一樣長。
在fastp的HTML報告中良狈,最頭上的Summary表格很清楚地顯示了過濾的統(tǒng)計信息
2.接頭
fastp默認啟用了接頭處理后添,但是可以使用-A命令來關(guān)掉。fastp可以自動化地查找接頭序列并進行剪裁薪丁,也就是說你可以不輸入任何的接頭序列遇西,fastp全自動搞定了馅精!
對于SE數(shù)據(jù),你還是可以-a參數(shù)來輸入你的接頭粱檀,而對于PE數(shù)據(jù)則完全沒有必要洲敢,fastp基于PE數(shù)據(jù)的overlap分析可以更準確地查找接頭,去得更干凈茄蚯,而且對于一些接頭本身就有堿基不匹配情況處理得更好压彭。fastp對于接頭去除會有一個匯總的報告 。
3.滑窗質(zhì)量剪裁
很多時候渗常,一個read的低質(zhì)量序列都是集中在read的末端壮不,也有少部分是在read的開頭。fastp支持像Trimmomatic那樣對滑動窗口中的堿基計算平均質(zhì)量值皱碘,然后將不符合的滑窗直接剪裁掉询一。使用-5參數(shù)開啟在5’端,也就是read的開頭的剪裁尸执,使用-3參數(shù)開啟在3’端家凯,也就是read的末尾的剪裁。使用-W參數(shù)指定滑動窗大小如失,默認是4绊诲,使用-M參數(shù)指定要求的平均質(zhì)量值,默認是20褪贵,也就是Q20掂之。
4.過濾短序列
默認開啟多序列過濾,默認值為15脆丁,使用-L(--disable_length_filtering)禁止此默認選項世舰。或使用-l(--length_required)自定義最短序列槽卫。
5.雙端測序堿基校正
fastp支持對PE數(shù)據(jù)的每一對read進行分析跟压,查找它們的overlap區(qū)間,然后對于overlap區(qū)間中不一致的堿基歼培,如果發(fā)現(xiàn)其中一個質(zhì)量非常高震蒋,而另一個非常低,則可以將非常低質(zhì)量的堿基改為相應的非常高質(zhì)量值的堿基值躲庄。此選項默認關(guān)閉查剖,可使用-c(--correction)開啟。
6.polyG剪裁
對于兩色發(fā)光法的Illumina設備(NextSeq /NovaSeq)噪窘,因為在沒有光信號情況下base calling的結(jié)果會返回G笋庄,所以在序列的尾端可能會出現(xiàn)較多的polyG,需要被去除。
fastp會自動化地識別NextSeq / NovaSeq的數(shù)據(jù)直砂,然后進行polyG識別和剪裁菌仁。如果你想強制開啟該功能,可以指定-g參數(shù)哆键,如果想強制關(guān)閉該功能掘托,則可以指定-G參數(shù)。
7.分子標簽UMI處理
UMI在處理ctDNA類似的超低頻突變檢測應用中是十分有用的籍嘹,為了更好地對帶UMI的FASTQ文件進行預處理闪盔,fastp也很好地支持了UMI預處理功能。該功能默認沒有啟用辱士,需要使用-U參數(shù)開啟泪掀,另外需要使用--umi_loc來指定UMI所在的位置,它可以是(index1颂碘、 index2异赫、 read1、 read2头岔、 per_index塔拳、 per_read )中的一種,分別表示UMI是在index位置上峡竣,還是在插入片段中靠抑。如果指定了是在插入序列中,還需要使用 --umi_len 參數(shù)來指定UMI所占的堿基長度适掰。
8.質(zhì)量過濾
fastp可以對低質(zhì)量序列颂碧,較多N的序列,該功能默認是啟用的类浪,但可以使用-Q參數(shù)關(guān)閉载城。使用-q參數(shù)來指定合格的phred質(zhì)量值,比如-q 15表示質(zhì)量值大于等于Q15的即為合格费就,然后使用-u參數(shù)來指定最多可以有多少百分比的質(zhì)量不合格堿基诉瓦。比如-q 15 -u 40表示一個read最多只能有40%的堿基的質(zhì)量值低于Q15,否則會被扔掉力细。使用-n可以限定一個read中最多能有多少個N垦搬。
具體參數(shù)的解讀可以移步 喵小媛的博客 里面就有很詳細的講解
其實大部分功能也用的不是很多 軟件最快樂的地方當然是簡單了
最后我們看一下在實際中的應用情況:
for i in {1..18};
do
fastp -i R${i}_1.fq.gz -o R${i}_1.out.fq -I R${i}_2.fq.gz -O R${i}_2.out.fq -w 8
done
然后就會生成快樂的html文件
參考: