维护人员:中正Wang <jzwang@northwestern.edu>
参考方法李:K。,Hope C.M., Wang X.A., Wang J.-P. (2020) “RiboDiPA: A novel tool for differential pattern analysis in Ribo-seq data.”核酸的研究,2020年,48 (21)、gkaa1049https://doi.org/10.1093
参考方法李:K。,Hope C.M., Wang X.A., Wang J.-P. (2020) “RiboDiPA: A novel tool for differential pattern analysis in Ribo-seq data.”核酸的研究,2020年,48 (21)、gkaa1049https://doi.org/10.1093
核糖体分析(也称为Ribo-seq)是新一代测序技术研究核糖体的转化活动在各种各样的环境。Ribo-seq数据不仅提供丰富的核糖体结合的形式记录项核糖体保护片段(rpf),也在记录位置信息可以表明差异转化监管。
RiboDiPA,短日博一些迪ferentialPattern一个分析是生物信息学管道开发模式Ribo-seq足迹的分析数据。RiboDiPA释放作为R包支持统计推断的转化条件之间的差别。简单地说,这涉及到Ribo-seq数据映射到p区沿着总记录数的基因,紧随其后的是这些数量和执行bin-wise装箱和gene-wise统计测试微分模式。
RiboDiPA R是一个方案,利用并行计算功能和一些核心功能用c++写的,作为Bioconductor工具套件的一部分发布。
RiboDiPA R包执行四个主要功能执行Ribo-seq微分模式分析数据,与可选的可视化结果。概述的过程在图1中可以看出:
GTF文件解析和外显子合并:对于一个给定的基因外显子GTF的带注释的文件合并成一个总记录。这提供了全球整个条件一个基因的变化情况,总的成绩单将捕获变化核糖体入住率即使同种型记录使用情况可能会改变。
BAM文件处理和p区映射处理:Ribo-seq对齐文件(本)计算每个RPF的p区位置,有适应规则,用户可以指定调用P-sites从数据。映射的p区频率在每个核苷酸位置以及每个人的总记录编译每个样本的基因。
装箱数据:克服Ribo-seq固有的稀疏数据,p区职位合并到垃圾箱使用三种方法:1)自适应宽度的方法,不同的基因,根据Freedman-Diaconis规则2)固定宽度方法(像一个密码子),用户可以指定,或由外显子3)装箱,使用边界GTF文件中指定。
微分模式分析:模式分析的基因进行分箱数据对于一个给定的基因,比较本通过本条件来识别区域的显著差异。这个测试的结果作为输出\ (p \)值和\(问\)为每个基因值。此外,补充统计,\ \ (T)价值,也是识别基因产生一个较大的变化在环境中重要的基因,并计算基于奇异值分解的过程。\ \ (T)价值是为了占微分箱子的大小和数量,从而提供一种方式来优先考虑重要的基因子集进行进一步调查。
(可选):的可视化Ribo-seq足迹:RiboDiPA还提供了可视化的功能映射p区频率数据对于一个给定的基因,以及被直接用于测试数据,用垃圾桶标志着明显不同。
下面的小插图是为了提供一个预排RiboDiPA R包运行,指出主要工作流和用户可选功能。它假定您已经成功安装RiboDiPA Bioconductor寄来的包裹。
装饰图案的目的提供的数据是改编自Kasari et al,并代表了高质量的数据收集在酵母。这些数据比较野生型细胞细胞耗尽,不丹由作者表明监管机构参与翻译终止。通常就是这样的数据包括《天方夜谭》中,所提供的文件是完整的数据集的子集,并旨在说明RiboDiPA的功能。我们注意到一个典型的全面分析,对大多数用户将计算密集的真实数据。计算时间取决于数量的样本,这些样本的测序深度,和生物的复杂性,在基因和外显子的数量。例如,野生型的总计算时间与不丹比较样本(4)20-core节点是大约10分钟。RiboDiPA利用R的并行计算功能和自动检测核心可以并行运行作业的数量和提高性能。虽然个人电脑不仅仅是满足这个描述的演示目的,与真实的数据为获得最佳性能,我们建议用户在服务器上运行RiboDiPA或计算集群。
对用户的方便,我们提供了一个包装器函数,允许执行Ribo-DiPA管道,最低限度需要GTF文件和BAM文件,由实验和复制。
# #从GitHub下载示例文件图书馆(BiocFileCache)file_names < -c(“WT1.bam”,“WT2.bam”,“MUT1.bam”,“MUT2.bam”,“eg.gtf”)url < -“https://github.com/jipingw/RiboDiPA-data/raw/master/”黄东海< -BiocFileCache()bam_path < -bfcrpath(均paste0(url, file_names))
这将产生一个四BAM文件列表:WT1。bam, WT2。bam, MUT1。bam, MUT2。bam,代表两个生物复制的野生型细胞和不丹突变细胞,分别。这些文件子集的BAM间隔chrIV:使用samtools 553166 - 581762,这是一个大约30 kb地区包含16个基因。另外,用户可以声明的名字BAM文件直接在一个向量。
我们建议用户使用相同的GTF文件用于生产实验比对。例如,GTF文件来自运用不会使用BAM文件与来自UCSC GTF文件。如GTF文件。”gtf”,提供的包是改编自运用,酿酒酵母R64-1-1发布,和第四号染色体上只包含特性。用户也可以直接申报gtf文件。
# #让实验类标签classlabel < -data.frame(条件=c(“变异”,“变异”,“野生型”,“野生型”),比较=c(2,2,1,1))rownames(classlabel) < -c(“mutant1”,“mutant2”,“wildtype1”,“wildtype2”)
由RiboDiPA类标签决定了比较,和最低限度需要列命名比较
标签参考条件“1”和“2”治疗条件,包括选择的条件相比,不应标以“0”。在这种情况下“野生型”表示参考条件,和“突变”代表了治疗。
的RiboDiPA ()
函数是一个包装器函数,调用所有其他必要功能的方案。这个包装器的默认方法都自动生成映射P-sites p区补偿和自适应装箱的,尽管所有可用参数包的其他功能可以被修改的包装。这个论点核
指定数量的CPU核中使用计算。用户应该取代它的最大可用内核数量的最大计算效率(unspeficied或离开它,在这种情况下,内核的数量设置为的价值detectCores(逻辑= FALSE)
)。
从RiboDiPA # #查看表的输出头(result.pst美元基因(订单(result.pst美元基因美元qvalue)))# > tvalue pvalue qvalue0.07135543 - 1.039919 # > YDR050C e-17 e-18 8.2153610.06267031 - 5.501715 # > YDR064W e-05 e-07 2.1731770.04701957 - 3.319330 # > YDR062W e-01 e-02 8.7409030.00000000 - 9.999990 # > YDL007C-A e-01 1.000000 e + 000.01329390 - 8.645253 # > YDL013W e-01 1.000000 e + 000.00000000 - 9.999989 # > YDL017W e-01 1.000000 e + 00
的RiboDiPA ()
函数输出一个与他们的基因列表\ \ (T)值,\ (p \)值,调整\ (p \)值表示,中存储值基因
,以及其他中间计算中使用的数据对象。在大多数情况下,我们希望用户将被调整\ (p \)价值为了看到最重要的全基因组的基因,我们上面显示。基因YDR049-YDR065位于区间选择的装饰图案,我们可以清楚地看到非常重要的基因达到TPI1和RPS13(分别YDR050C和YDR064W)\(问\)值8.22 e-05 e-17和2.17。
这就完成了最低限度的要求寻找基因与重要的微分模式,和后面的部分将更详细地走过相应的功能。
p区是mRNA的确切位置,已经由核糖体翻译,增加新生链的多肽(共价连接到tRNA)所在地。在实践中,RPF已对齐的基因组有不同长度,因此一个过程需要给定RPF映射到p区位置更清楚地了解核糖体转化活动。的psiteMapping ()
函数将输入数据,并使用指定的规则映射rpf P-sites,或自动生成这些规则使用过程中描述Lauria et al (2018)。此外,如果有多个亚型记录样本,利用相同的外显子的基因组,是很困难的(或不可能)在给定RPF分配给一个特定的记录在一个Ribo-seq实验。RiboDiPA绕过这个问题,所有的外显子结合成为“全记录”并执行测试在基因水平。因此,除了p区偏移生成和映射,psiteMapping ()
为每个外显子函数还生成总记录坐标。
# #执行个体p区映射过程data.psite<-psiteMapping(bam_file_list =bam_path [1:4),bam_path [5),psite.mapping=“汽车”,核=2)# >计算p区补偿
p区映射输出值的列表:报道
,覆盖在每个基因;计数
每个基因,P-sites计数的数量;外显子
,总记录坐标为每个基因的外显子;和psite.mapping
补偿,p区映射。为报道
对应于复制对象,行和列对应于核苷酸位置对总记录。同样的,对计数
对象,行代表基因和列代表样本。现在,让我们检查补偿功能:自动生成的
(列出的阅读卢旺达爱国阵线的长度是qwidth
),其次是5 '末端的核苷酸抵消(psite
)。例如,读取长度28 12有一个偏移量,这意味着p区将映射12核苷酸5 '末端的阅读。
如前所述,最优p区偏移量从5 '端读取校准使用两步算法的起始密码子全基因组,密切关注Lauria et al(2018)的过程。首先,对于一个给定的读取长度、偏移量计算通过的第一个核苷酸之间的距离起始密码子和5’最核苷酸的读,然后将抵消定义为5的位置最读取映射到它。重复这个过程对于所有读取长度,然后临时的抵消全球抵消定义读取长度与最大计数。最后,对于每个读取长度,调整抵消被定义为一个局部最大值对应的配置文件中找到起始密码子最近临时全球抵消。
不足的读取映射到起始密码子,我们建议用户使用中心
选择要阅读的中心p区,或提供自己的抵消规则,只需用一个矩阵两列,标记qwidth
和psite
,传递到psite.mapping
参数的psiteMapping ()
函数。我们注意到指定的固定规则p区补偿可能特别有用当比较不同实验中收集相同的有机体,以确保一致性的比较。
# #使用用户指定psite映射抵消规则偏移量< -cbind(qwidth =c(28,29日,30.,31日,32),psite =c(18,18,18,19,19))data.psite2<-psiteMapping(bam_path [1:4],bam_path [5),psite.mapping=偏移量,核=2)
最后,psiteMapping ()
函数使用并行计算包doParallel加快P-sites映射的过程。利用这个特性,指定使用可用的处理器数量的工作核
参数。如果核
没有指定,该函数将自动检测核心的数量在你的电脑上运行并行工作。
一旦读取被映射到P-sites在各种实验中,下一步是本映射P-sites一起允许统计测试。最小的本可以想象是single-codon(三核苷酸)将提供最高分辨率的装箱,但是需要一些实际问题。例如,很长的基因将会有更多的基码,因此多重假设检验校正后,只有最明显的扰动将显示统计学意义的基因。另外,最大的本是使用整个基因作为一个本,虽然整个基因位置信息将丢失。因此,一个健壮的方法来选择正确的每个基因允许发现本大小是必要的,这是RiboDiPA适应面元法的本质。
自适应方法使用过程基于Freedman-Diaconisis规则来选择一个最优的箱数相等宽度对于每个基因,在不同的基因会有不同的本宽度,但是垃圾箱的位置和数量的基因是相同的复制和条件允许测试。
# # p区数据合并到垃圾箱与一个固定的或自适应宽度数据。被< -dataBinning(data =data.psite美元报道,bin.width=0,zero.omit=假,bin.from.5UTR =真正的,核=2)
这个函数dataBinning ()
返回一个列表被p区足迹矩阵。在每一个矩阵,行对应于复制,列对应于垃圾箱。如果参数bin.width
没有指定或设置为零,这表明该函数将运行在自适应装箱方式(而不是宽度固定的模式,见下文)。一般来说,我们建议使用自适应装箱,由于大多数Ribo-seq实验是稀疏的几个数字读取,每个密码子上。
如果zero.omit
参数设置为真正的
0,垃圾箱在所有复制从微分模式分析中删除。当总记录的长度不是整数箱宽度的倍数,装箱将从5 '末端开始bin.from.5UTR
参数是真正的
,否则或3 '末端。一般来说,本宽度等于每本在总的成绩单,除了最后两箱,调整,以防止最后一本很小的情况下,本宽度不分裂的总记录长度均匀。
# #合并p区数据在每一个密码子数据。codon <-dataBinning(data =data.psite美元报道,bin.width=1,zero.omit=假,bin.from.5UTR =真正的,核=2)
在覆盖范围允许的情况下,用户还可以指定一个固定宽度的本,一直到1,代表single-codon决议。这可以用于研究在区域细节,很可能转化监管的变化,即在启动和停止密码子。例如,我们调查了50码上游和下游的停止和启动密码子分别确定一个终止密码子附近堆放核糖体的模式在不丹的情况下删除(见李等人,2020)。
# #合并p区数据在每一个外显子和执行微分模式分析结果。外显子< -diffPatternTestExon(psitemap =data.psite,classlabel =classlabel,方法=c(“gtxr”,“qvalue”))
在这种情况下,用户更愿意使用外显子的垃圾箱统计测试,我们提供了一个函数调用diffPatternTestExon ()
。这个函数数据装箱和微分模式测试滚成一个qw函数和输出相同的结构diffPatternTest ()
函数。等生物酵母选择性剪接是最小的,这个选项可能不是很有用,但对于更高的生物和许多外显子和可变剪接得多,它可能提供有用的见解。
一旦合适的箱子已经生成,RiboDiPA包执行微分模式测试p区计数本由本为每一个基因。短暂,统计建模叫垃圾箱的负二项分布在统计上有显著差异的条件下,然后最小的假定值对于一个给定的基因调整控制多个假设检验在所有基因。
# #执行微分模式分析结果。pst < -diffPatternTest(data =data.binned,classlabel =classlabel,方法=c(“gtxr”,“qvalue”))
的diffPatternTest ()
函数的输出数据作为输入不了了之,也需要一个类标签对象,描述的比较。类标签对象是最低限度两列的数据帧,条件
和比较
,在那里条件
标签的条件测试,比较
标签实验布局,“1”表示控制条件,“2”表示治疗条件,和“0”表示复制,不应相比,如果存在。这个函数是一个列表调用结果的输出,其中包含一个数据帧对象基因
以及其他对象包含中间计算。基因
包含\ \ (T)值,\ (p \)值,调整\ (p \)由qvalue测量值(在本例中)的所有基因。的调整\ (p \)价值是主要的测试的结果,因此包的主要输出。在这种情况下,我们在基因的子集\(问\)值小于或等于0.05,DP积极在这个阈值。的\ (p \)基因的值是最小的料位调整\ (p \)值的基因。此外,\ \ (T)价值是一个量化的补充数据的大小差异条件下,与大量表明更大的差异。的\ \ (T)价值的定义是1-cosine第一右奇异向量的夹角的足迹矩阵两个条件下的比较。范围从0 - 1,大值代表更大的条件之间的差异,实际上,可以用来识别基因更大的大小模式差异统计学意义。这可能有助于调查人员优先调查众多,某些基因可能通过微分模式的显著性检验。可选地,用户可以指定使用哪个方法修正多重假设检验。的\(问\)值方法qvalue
包的默认方法多样性能够改正,和混合Hochberg-Hommel方法gtxr
从精英主义
pacakge多样性的默认方法校正料位。其他选项定义的包精英主义
由选择调用参数的方法。
最后,我们预计,用户会想把跟踪级别的数据映射P-sites和垃圾箱的基因测试阳性微分模式。因此,我们包括两个绘图函数,一个用于映射P-sites和一个用于产生的分箱数据映射P-sites。的策划实施方案ggplot2
。
的plotTrack ()
函数可视化读取映射到p区位置在每个基因的基础上。输入参数数据
是输出对象的psiteMapping ()
或RiboDiPA ()
函数。项rpf映射到P-sites显示在y轴,而核苷酸的总记录
在x轴上。无论链的基因位于基因组,
plotTrack ()
总是显示总记录5 '末端左边和3 '端在右边。映射的P-sites传入的数据参数,而将要绘制的基因传递到基因。参数列表。单个基因可以以这种方式绘制,以及多个基因一基因的阴谋。如果外显子参数设置真正的
,每个指定的基因的外显子rpf也输出。
的图()
函数可视化RPF项映射到P-sites类似,但由于数据封存到垃圾箱用于微分模式测试。结果参数传入的数据,使用的输出对象diffPatternTest ()
或diffPatternTestExon ()
或RiboDiPA ()
函数。复制标记为“1”classlabel
(见diffPatternTest ()
函数),轨道是蓝色和复制颜色的红色标记为“2”。微分垃圾箱的颜色为黑色,料位调整\ (p \)值注释下面的轨道上复制。如果genes.list
没有指定,所有基因重要的微分模式将被输出。最后,阈值参数允许用户指定一个阈值选择哪些基因的signifance情节基因列表时大。阈值为0.05只会阴谋基因调整\ (p \)值小于或等于0.05。
因此总结我们的装饰图案。额外的信息,请查阅参考手册为每个单独的函数,以及相关的论文为这个包方法细节(李等人,2020)。
sessionInfo()# > R版本以下4.4.1 (2021-08-10)# >平台:x86_64-pc-linux-gnu(64位)# >下运行:Ubuntu 20.04.3 LTS# ># >矩阵产品:违约# >布拉斯特区:/home/biocbuild/bbs - 3.14 - bioc / R / lib / libRblas.so# > LAPACK: /home/biocbuild/bbs - 3.14 - bioc / R / lib / libRlapack.so# ># >语言环境:# > [1]LC_CTYPE = en_US。utf - 8 LC_NUMERIC = C# >[3]而= en_GB LC_COLLATE = C# > [5]LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US.UTF-8# > [7]LC_PAPER = en_US。utf - 8 LC_NAME = C# > [9]LC_ADDRESS C = C LC_TELEPHONE =# > [11]LC_MEASUREMENT = en_US。utf - 8 LC_IDENTIFICATION = C# ># >附加基本包:# > [1]stats4统计图形grDevices跑龙套的数据集的方法# >[8]的基础# ># >其他附加包:# > [1]BiocFileCache_2.2.0 dbplyr_2.1.1# > [3]RiboDiPA_1.2.0 GenomicAlignments_1.30.0# > [5]SummarizedExperiment_1.24.0 MatrixGenerics_1.6.0# > [7]matrixStats_0.61.0 GenomicFeatures_1.46.0# > [9]AnnotationDbi_1.56.0 Biobase_2.54.0# > [11]Rsamtools_2.10.0 Biostrings_2.62.0# > [13]XVector_0.34.0 GenomicRanges_1.46.0# > [15]GenomeInfoDb_1.30.0 IRanges_2.28.0# > [17]S4Vectors_0.32.0 BiocGenerics_0.40.0# ># >加载通过名称空间(而不是附加):# > [1]elitism_1.0.4 colorspace_2.0-2 rjson_0.2.20# > [4]ellipsis_0.3.2 htmlTable_2.3.0 qvalue_2.26.0# > [7]base64enc_0.1-3 rstudioapi_0.13 farver_2.1.0# > [10]bit64_4.0.5 fansi_0.5.0 xml2_1.3.2# > [13]codetools_0.2-18 splines_4.1.1 doParallel_1.0.16# > [16]cachem_1.0.6 geneplotter_1.72.0 knitr_1.36# > [19]Formula_1.2-4 jsonlite_1.7.2 annotate_1.72.0# > [22]cluster_2.1.2 png_0.1-7 compiler_4.1.1# > [25]httr_1.4.2 backports_1.2.1 assertthat_0.2.1# > [28]Matrix_1.3-4 fastmap_1.1.0 htmltools_0.5.2# > [31]prettyunits_1.1.1 tools_4.1.1 gtable_0.3.0# > [34]glue_1.4.2 GenomeInfoDbData_1.2.7 reshape2_1.4.4# > [37]dplyr_1.0.7 rappdirs_0.3.3 Rcpp_1.0.7# > [40]jquerylib_0.1.4 vctrs_0.3.8 nlme_3.1 - 153# > [43]rtracklayer_1.54.0 iterators_1.0.13 xfun_0.27# > [46]stringr_1.4.0 lifecycle_1.0.1 restfulr_0.0.13# > [49]xml_3.99 - 0.8 zlibbioc_1.40.0 scales_1.1.1# > [52]hms_1.1.1 parallel_4.1.1 RColorBrewer_1.1-2# > [55]yaml_2.2.1 curl_4.3.2 gridExtra_2.3# > [58]memoise_2.0.0 ggplot2_3.3.5 sass_0.4.0# > [61]rpart_4.1-15 biomaRt_2.50.0 latticeExtra_0.6-29# > [64]stringi_1.7.5 RSQLite_2.2.8 highr_0.9# > [67]genefilter_1.76.0 BiocIO_1.4.0 foreach_1.5.1# > [70]checkmate_2.0.0 filelock_1.0.2 BiocParallel_1.28.0# > [73]rlang_0.4.12 pkgconfig_2.0.3 bitops_1.0-7# > [76]evaluate_0.14 lattice_0.20-45 purrr_0.3.4# > [79]labeling_0.4.2 htmlwidgets_1.5.4 bit_4.0.4# > [82]tidyselect_1.1.1 plyr_1.8.6 magrittr_2.0.1# > [85]DESeq2_1.34.0 R6_2.5.1 generics_0.1.1# > [88]Hmisc_4.6-0 DelayedArray_0.20.0 DBI_1.1.1# > [91]withr_2.4.2 foreign_0.8 - 81 pillar_1.6.4# > [94]mgcv_1.8-38 nnet_7.3-16 survival_3.2-13# > [97]KEGGREST_1.34.0 rcurl_1.98 - 1.5 tibble_3.1.5# > [100]crayon_1.4.1 utf8_1.2.2 rmarkdown_2.11# > [103]jpeg_0.1-9 progress_1.2.2 locfit_1.5 - 9.4# > [106]grid_4.1.1 data.table_1.14.2 blob_1.2.2# > [109]reldist_1.6-6 digest_0.6.28 xtable_1.8-4# > [112]munsell_0.5.0 bslib_0.3.1