一 引言
1.1編寫目的
進行該測試以及撰寫此報告有以下幾個目的
1.通過對測試結果的分析,得到對軟件質量的評價;
2.分析在Illumina測序平臺下,tophat能夠獲得最大junction數目以及mapping率的參數;
3.分析在ionproton測序平臺下,tophat能夠獲得最大junction數目以及mapping率的參數;
4.嘗試找到參數與測序長度的經驗性關系。
1.2背景
Tophat是一個RNA-seq數據分析工具,其核心程序是bowtie或bowtie2.可以快速的確認exon-exon剪切拼接。其上游軟件是Bowtie,下游軟件是Cufflinks。
理論上,Tophat是針對Illumina Genome Analyzer開發的,針對75bp以上長度的短序列進行了優化。該軟件是現在二代測序回帖軟件中使用最廣泛的軟件。
Illumina屬于二代測序中最經典的平臺之一。其測序長度為幾十bp。
Ionproton屬于二代測序中較新的平臺,可以認為是二點五代測序平臺,其測序長度平均在100個bp以上。目前我們公司使用的就是這個平臺的進行二代測序分析。
在目前公司的數據分析中,出現主要的問題是使用tophat進行ionproton平臺分析時,默認參數的mapping率較低,同時該參數產生的junction數也很低,不足以進行差異可變剪接分析。因此,提出此次工作內容,探索更好的參數配置,提高mapping率以及junction數目。
1.3用戶群
主要讀者:公司研發部,公司管理人員。
其他讀者:項目及銷售相關人員。
1.4 數據對象:
Illumina數據 |
Ionproton數據 |
Illumina-low:liguanhu human |
Ionproton-low: congsongfeng human |
Illumina-high:zhuanliping mouse |
Ionproton-high:dingning human |
1.5 測試階段
軟件測試
1.6測試工具
Samtools version:0.1.18;
IGV version:2.3.18;
Awk;
1.7 參考資料
《Tophat user guide》
二 測試概要
關于Tophat參數測試從2013年9月10日開始到2013年9月17日結束,共持續7天,一共94個測試用例,平均每個參數測試15次。
2.1工作計劃進展
針對Illumina平臺:
測試參數 |
計劃開始時間 |
實際開始時間 |
計劃完成時間 |
實際完成時間 |
工作完成情況 |
Anchor-length |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
順利 |
Max-insertion |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
順利 |
Max-deletion |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
順利 |
Splice-mismatch |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
2013年9月10日 |
順利 |
Read-mismatch |
2013年9月11日 |
2013年9月11日 |
2013年9月12日 |
2013年9月12日 |
順利 |
Read-gap-length |
2013年9月11日 |
2013年9月11日 |
2013年9月12日 |
2013年9月12日 |
順利 |
Read-edit-dist |
2013年9月11日 |
2013年9月11日 |
2013年9月12日 |
2013年9月12日 |
順利 |
Segment-length |
2013年9月12日 |
2013年9月12日 |
2013年9月12日 |
2013年9月12日 |
順利 |
針對ionproton平臺:
測試參數 |
計劃開始時間 |
實際開始時間 |
計劃完成時間 |
實際完成時間 |
工作完成情況 |
Anchor-length |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Max-insertion |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Max-deletion |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Splice-mismatch |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Read-mismatch |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Read-gap-length |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Read-edit-dist |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
Segment-length |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
2013年9月16日 |
順利 |
2.2測試執行
此次測試嚴格按照項目計劃和測試計劃執行,按時完成了測試計劃規定的測試對象的測試。針對測試計劃制定規定的測試策略,依據測試計劃和測試用例,將網絡數據以及我們觀測的關鍵參數進行了完整的測試。
2.3測試用例
2.3.1功能性
測試主要實現,包括較高的mapping率以及較多的junction數目。
三 測試環境
3.1軟硬件環境
硬件環境 |
服務器 |
硬件配置 |
CPU:Intel Xeon 2.66GHz Memory:90GB HD:29TB |
軟件配置 |
OS:Fedora release 14 Tophat 2.0.8 |
網絡環境 |
100M LAN |
四 測試結果
4.1針對Illumina測序平臺數據
為簡化回帖工作量,從測試的數據中提取了20萬條reads數據進行單端測試。
通過測試,統計出anchor-length長度對于junction數目關系如下圖所示:
通過測試數據可以知道對于Illumina測序平臺數據而言,當anchor-length大于10以后,junction數目顯著降低,而在5到10這個范圍內沒有顯著變化。
通過測試數據可以知道對于Illumina測序平臺數據而言,當anchor-length大于10以后,mapping率降低,但是可以通過豎軸可以觀測出這個mapping率的變化并不明顯。
通過測試數據可以知道對于Illumina測序平臺數據而言,junction數目與mapping率基本成正比關系。
通過測試數據可以知道對于Illumina測序平臺數據而言,read-mismatch數字升高與junction數目基本成反比關系,隨著read-mismatch數目變長,junction數目急速降低。
通過測試數據可以知道對于Illumina測序平臺數據而言,read-mismatch數字升高與mapping率基本成正比關系,隨著read-mismatch數目變長,mapping率上升明顯。
通過測試數據可以知道對于Illumina測序平臺數據而言,read-gap數字升高與mapping率基本成正比關系,隨著read-mismatch數目變長,mapping率上升。整體上升大約1.2%。
通過測試數據可以知道對于Illumina測序平臺數據而言,segment長度升高與junction的數目關系,在二十以內時,segment長度變長,junction數目上升明顯。隨著read-mismatch數目變長,mapping率上升。整體上升大約1.2%。
3.2針對ionproton測序平臺數據
為簡化回帖工作量,從測試的數據中提取了20萬條reads數據進行單端測試。
由于有了對于Illumina平臺的工作支持,所以針對ionproton的測試工作速度提高很多。
由于我們統一了read-mismatch參數,read-gap參數,以及read-edit參數。所以這三個參數的測試圖都可以從上圖中看出信息。
通過測試數據可以知道對于ionproton測序平臺數據而言,針對同一anchor-length長度而言,長度8和長度15,16的情況下junction數目可以一致,所以認為anchor-length對junction數目影響不明顯。
通過測試數據可以知道對于ionproton測序平臺數據而言,針對同一max-deletion長度而言,長度3和長度5的情況下junction數目可以一致,所以認為max-deletion對junction數目影響不明顯。
由于我們統一了max-insertion參數,max-deletion參數。所以這兩個個參數的測試圖都可以從上圖中看出信息。
通過測試數據可以知道對于ionproton測序平臺數據而言,在segment-length小于36時,可以發現隨著segment-length長度變長,junction數目升高。而在36以后這個數字下降,但是總體比30以內長度的大。
通過測試數據可以知道對于ionproton測序平臺數據而言,在segment-length小于36時,可以發現隨著segment-length長度變長,mapping總體目升高。而在36以后這個數字有下降的情況,但是總體比30以內長度的大。
五.測試結論
通過查閱已經有的資料,我們知道Illumina測序平臺和ionproton平臺最直觀的差別在于后者的平均測序長度比前者長;在我們測試的例子中,Illumina的測序長度在50-97個bp之間,而ionproton的測序長度在50到235個bp之間。從此可以看出兩者的最合適參數應該是有差別的。通過我們的參數實驗,可以知道,對于Illumina測序平臺有如下實驗結果:
1.貼合長度越短,匹配的reads數越高,相應的mapping率也在一定范圍內會升高。可知,只需要在anchor-length在5-10以內進行討論。隨著a參數的增加(從5到10),junction下降的數據很低,幾乎維持不變。因此可以認為在5-9的范圍內可以任意取值。
2.前三個參數對于序列的discard沒有影響。
3.隨著第一項參數的增加,junction數目下降很明顯,然而mapping率卻增加的很快。推測這個原因可能是因為更多的junction序列由于容錯而變成能夠匹配了。所以為了mapping率而言,我認為用默認參數就可以。
4.第二項參數的變化對于junction數并沒有影響,對于mapping率有一些影響,但是很小。可以再0~第三項參數之間隨意選取。
5.第三項參數的變化對mapping率影響很小。但是對junction的影響很大,發現這個參數越小,junction數越高。第三個參數對于junction的影響很大,這個值越小越好,由于前兩個參數應該小于或等于這個參數,當第三個參數為0時,mapping率下降非常厲害,所以不將前三個參數設置為0,
6.當segment-length為22的時候效果最好。
對于ionproton測序平臺而言,我們可以獲得如下結論:
1.anchor-length,max-deletion,max-insertion,splice-mismatch參數的變化對于junction數目,mapping率影響不大。
2.在tophat的所有的參數中,read-mismatch,read-gap以及read-edit對于mapping率的影響很大,我們發現在這三個參數都設置為6的時候mapping率能夠提升很多,變成默認參數情況下的兩倍的mapping率。
3.我們發現segment-length參數對于junction數目變化有很大影響,其中,當segment-length為36時,相比默認參數6074junction數目而言,此時的junction數目為9368.總體而言,提升效果是顯著的。
六.最后測試的參數
對于20萬reads的實驗樣本而言,參數及結果如下:
測試平臺 |
read-mismatch |
read-gap-length |
read-edit-dist |
a |
m |
maxinsertion |
max-deletion |
segment |
junction_num |
unmapped |
Illumina |
1 |
1 |
1 |
8 |
1 |
3 |
3 |
22 |
4957 |
42902 |
ionproton |
6 |
6 |
6 |
8 |
0 |
5 |
5 |
36 |
9368 |
96725 |