一 引言
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 |