数据集集合
我们使用来自鸡、人和酵母三种模式生物的公开可用RNA-seq数据进行差异基因表达分析。所有数据集均由Illumina HiSeq 2000的100-bp配对读取数据组成。对于每个数据集,我们修剪了读取[37]然后进行了三项分析:从头开始使用Oases和Trinity组装的转录组,以及一种基于基因组的分析——“真相”——用于比较。来自艾尔斯的鸡数据集等. [24],Short Read Archive(SRA)登录号SRA055442,包含约12亿次读取。对于从头开始分析我们只使用了一条数据通道(大约3.2亿次读取),因为整个数据集计算量太大,无法组合。然而,所有的数据都被用于基于基因组的“真相”分析。该数据集由八个样本组成——雄性和雌性胚层,以及雄性和雌性第4.5天性腺组织,一式两份。Trapnell发布的数据集等. [25],基因表达综合登录GSE37704,来自人类原发性肺成纤维细胞,siRNA敲除HOXA1型。该数据集包含三个敲除副本和三个总计超过2.31亿次读取的控件。最后,我们包含了一个酵母数据集,SRA登录号为SRR453566到SRR4536571,发表于Nookaew等. [26]. 该数据集包含大约3600万次读取。三个复制品在分批条件下生长,三个在恒化器条件下生长。
基于基因组的“真相”分析
为了衡量不同聚类和丰度估计算法的性能,我们使用基于基因组的分析导出了一个“真值”集。
确定以下各项之间的对应关系从头开始组装的连接和参考注释基因,我们使用BLAT将组装的连接与注释对齐[38](最小长度为200个底座,最小一致性为98%)。嵌合体contigs被视为来源不明。我们确定嵌合连接是指那些匹配两个或多个真基因(如上所述)且基因之间重叠少于100个碱基的连接。在其他情况下,如果一个contig与多个基因对齐,则将其分配给具有最长对齐长度的基因。当将差异表达的“真相”基因与从头开始聚类,我们将一个聚类分配给与其大多数邻接物相同的“真”基因。在“真值”集合中找不到的任何连续体或簇都被排除在显示的结果之外。由于读取映射次数较少而被Corset移除的轮廓也被排除在外。
为了计算“真”微分表达式,首先使用TopHat 2.0.6版映射读取[39]人类、鸡和酵母基因组的hg19、galGal3或sacCer3版本。在所有情况下,我们都向TopHat提供了基因注释(人类的RefSeq、鸡的Ensembl(v.70)和酵母的酵母基因组数据库),以支持剪接位点检测。这些相同的基因注释通过“gffread-merge”进行处理,以给出位点级注释。运行Cuffdiff 2.1.1以检测差异基因表达(-单位选项)。我们使用“gene_exp.diff”中的“significant”位点作为真阳性。作为cuffdiff 2的替代方案,我们还使用基于基因组的边缘R分析来定义真相(结果显示在附加文件中1:图S10)。EdgeR的运行方式与从头开始组装(请参阅下面的“统计测试”)。
从头开始装配
Oases 0.2.06(Velvet版本1.2.07)用于组装人类和酵母数据,其中kmer长度为19、23、27和31。对于鸡肉数据集,我们使用了31、41、51、61和71的kmer长度。使用Trinity-r2012-10-05创建鸡Trinity组件,使用Trinity-r2013-02-25创建人和酵母组件。所有情况下都使用了默认参数,最小连接长度为200个碱基。其他文件1:图S1、S2和S3显示了装配质量。
映射
读取已映射到从头开始使用领结将部件作为成对的发动机对齐[40]. 对于只允许一次对齐的单个映射,我们使用领结选项--最好的。对于多映射对齐,我们使用了选项--全部。当映射到相关物种时,我们使用领结设置--所有-m 6-n 3-e 1000-X 1000,以允许大量不匹配。对于人类数据集,这导致了30%(丛林宝宝)到70%(黑猩猩)的读对映射,相比之下,Trinity程序集的读对对应约为75%。
群集
我们使用CD-HIT-EST和默认参数对转录组进行聚类。对于汇编程序集群,我们从汇编fasta文件中的contig名称中提取集群。例如,对于Trinity,contig“comp1_c2_seq3”属于集群“comp1_c2”。对于绿洲,“Locus_1_Transcript_3/10_Confidence_0.000_Length_268”属于集群“Locus_1”。为了获得Corset聚类,我们将读取多次映射到转录组,并以实验组作为参数执行Corset(-克选项)。对于图中所示的微分表达式结果4和5和表2,我们使用下面描述的“单映射然后求和”方法估计计数。
丰度估算分析
对以下四种方法进行比较,以评估哪种方法的DGE结果最佳。在所有情况下,聚类都是相同的,使用Corset生成,实验组通过-克选项和使用-0米选项(以便报告所有contigs)。使用edgeR进行统计测试。
RSEM(RSEM)
使用命令“convert-sam-for-RSEM”将多映射bam文件转换为RSEM所需的格式。转录组使用“rsem-prepare-reference--no-polyA--no-bowtie--transcript-to-gene-map”进行准备,Corset聚类作为参数传递。使用“rsem计算表达--bam-配对端”估计基因丰度,并从“.genes.results”文件中提取“expected_counts”。
代表性连续法
选择最长的contig代表每个簇。读数被单一映射回这些重叠群。使用samtools-idxstats命令计算映射到每个代表contig的读取数。因为这些计数数据是每次读取的,所以我们将其除以二,以获得每个片段的计数。
单映射然后求和
我们使用samtools-idxstats将读取映射到所有contig,并计算每个contig的重叠数[41]. 为了获得基因水平的计数,我们对一个集群内所有contigs的计数进行了汇总。因为这些计数数据是每次读取的,所以我们将其除以二,以获得每个片段的计数。
紧身胸衣
我们将读取映射到转录组,并使用上述选项执行Corset。
统计测试
使用edgeR处理集群级计数数据。对于鸡的数据,我们用四个条件组(两种性别和两个时间点)对数据进行建模,如Ayers在al. [24],但只测试了稍后时间点的雄性和雌性之间的差异。其他数据集各有两个条件组(共六个样本有三个重复),并对这些组之间的差异进行统计测试。在所有情况下,我们都使用edgeR GLM框架进行分段离散估计[42]. 以相同的方式对所有人进行统计测试从头开始程序集。使用Cuffdiff 2(图4和5)和edgeR(附加文件1:图S10)。虽然这些结果给出了一个稍微不同的重要真值基因列表,但将Corset与其他聚类方法进行比较的结果是相似的。
Corset算法
我们的软件接受一组bam格式的多映射读取对齐作为输入(每个样本一个或多个文件)。然后,算法按以下方式进行:
-
1
对每个读取对齐进行解析,并提取读取ID和contig ID。对于每次读取,我们都存储它映射到的一组contigs。
-
2
具有10个或更少读数的轮廓将被过滤掉。这一步骤对算法来说并不重要,但具有减少最终聚类总数以及每个聚类的重叠群平均数量的效果,这可以简化分析中的后续步骤。
-
三。
解析读取的数据并形成超级集群。每个超级集群包含与同一超级集群中的另一个contig共享一个或多个读取的所有contig。
-
4
然后,对于每个超级聚类,我们执行类似于中的算法的聚集层次聚类[43],但具有如下所述的距离和连杆。使用层次聚类而不是其他聚类方法,因为它易于计算。
4.1我们使用指标创建距离矩阵:
(1)
哪里,R(右)
一
是该映射到contig的读取总数一所有样本,以及R(右)
ab公司
是映射到两个重叠群的读取总数一和contigb条,跨越所有样本。因此,距离在零和一之间有界,零表示一对冗余的连续线,一表示没有相似性。”Contig ratio是指contigs的表达一和b条根据条件组的测量结果彼此成比例。我们假设,当两个连续序列起源于同一基因,并且没有选择性剪接时,这是真的。或者,如果连续基因不是来自同一个基因,或者存在选择性剪接,那么它们的表达不一定是成比例的,如果一个连续基因差异表达就会发生这种情况。我们使用“连续比率测试”来测试这些场景,该测试按以下方式进行。让第页
美国国际期刊
是指向contig的地图读取次数一在条件下我,用于j个第个复制。然后我们将该映射的读取次数近似为contig一,在条件下我作为:
(2)
共享读取术语,第页
阿比吉
,用于避免重复计算读取次数。添加一个作为偏移,以确保X(X) > 0
然后将连续计数建模为泊松分布。请注意,我们使用泊松模型计算速度:
(3)
哪里μ
人工智能
是连续计数的平均值一在条件下我和(f)是一个比例常数。定义(f)
我=
μ
人工智能/
μ
双
作为contig之间比例表达的真正度量一和b条在条件下i、。我们想检验零假设,H(H)
0
:f
我
= (f)
我'
= f、,比例常数与条件无关,H(H)
1
:f
我
≠ (f)
我'
.
条件比例常数的估计我从连续计数中获得,即:
(5)
公共比例常数估计为:
(6)
我们可以使用检验统计量的似然比检验来检验无效假设:
(7)
其近似为分布在n个
条件
-零假设下的1个自由度。在这里n个
条件
是条件总数,我
0
是零假设下的可能性我
1
是替代假设下的可能性。
拒绝零假设的任何一对连续体被定义为具有“连续体比率差异”,其距离将增加到最大值1。我们发现在D上设置一个阈值(相当于P(P)-阈值为10-5。阈值和条件数之间的关系参数化为D类
门槛
= 15 + 2.5 × n个
条件
。此关系仅为近似关系,在以下情况下有效n个
条件
< 10.这种近似不应影响聚类,因为我们发现DGE结果在很大范围内是稳健的P(P)-值(附加文件1:图S7)。
4.2层次聚类通过将距离最小的两个contigs合并在一起进行。然后使用下面的链接标准更新与此新簇对齐的读取数,并重新计算距离矩阵(如步骤3所示)。请注意,Corset使用的链接不同于标准链接方法,例如单个链接,因为它依赖于距离矩阵之外的信息:
(8)
(9)
其中contigs一和b条那些是合并到集群中的吗a’。R(右)
美国广播公司
是映射到所有contigs的读取数一,b条、和c(c).
4.3反复重复步骤4.1和4.2,直到将所有contigs分组为单个簇,或者当前最小距离增加到距离阈值以上。然后输出集群和每个集群的读取数。对齐到多个簇的读取被随机分配到它们对齐到的其中一个组。这只占我们测试中100-bp配对读取的1-5%。
我们的结果相对于距离阈值的选择是稳健的。默认值0.3是根据经验选择的,因为它对DGE结果来说稍微好一些(附加文件1:图S9),但与0.1和0.9之间的任何阈值相比,结果没有显著差异(附加文件1:图S8和S9)。与阈值相关的稳健性可以用距离接近0或1的大多数连续线对来解释(例如,附加文件1:图S2B)。
默认值P(P)-似然比测试的阈值,10-5,被选为高水平的多重测试。该值是围绕典型注释中预期的基因数量设计的。我们再次发现,我们的结果在很大范围内对该参数的选择是稳健的,10-3到10-8个(附加文件1:图S7)。
我们的软件是开源的,可以作为C++源代码tar ball从[44]. 它已经在Linux x86和Mac OS X 10.7操作系统上编译和测试。使用Intel Xeon E7-8837的一个内核完成代码所需的时间从5分钟到5小时不等,通常比其他管道更快。在最坏的情况下,内存消耗小于60GB,程序会解析超过200GB的bam文件。内存需求高于其他聚类和丰度估计工具,但远低于从头开始我们测试的数据集的集合。