外显子-内含子分裂分析由Gaidatzis et al. (2015).它包括分别量化RNA-seq数据中的外显子和内含子比对,以测量成熟RNA和pre-mRNA reads在不同实验条件下的变化。我们已经证明,这可以量化基因表达的转录和转录后调控。
的eisaR
Package中包含方便的函数,方便外显子-内含子分裂分析的步骤,包括:
1.准备注释(外显子和基因体坐标范围,节3.)
2.定量外显子和内含子中的RNA-seq比对(节)4.1而且4.2)
3.计算和比较不同条件下的外显子和内含子变化(节)5)
4.可视化结果(节)6)
对于步骤1。和2。上面,这个小插图使用了Bioconductor注释和QuasR包中。也可以使用其他管道或方法获得外显子和内含子计数表,并直接从步骤3开始。
安装eisaR
包,开始R,输入:
# BiocManager需要安装Bioconductor包如果(!requireNamespace("BiocManager", quiet = TRUE)) Install .packages("BiocManager") # Install ("eisaR")
正如前面提到的,eisaR
使用Bioconductor的基因注释。它们以的形式提供TxDb
或EnsDb
对象,例如通过包,如TxDb.Mmusculus.UCSC.mm10.knownGene或EnsDb.Hsapiens.v86.你可以使用下面的代码看到可用的注释:
pkgs <- c(BiocManager::available("TxDb") BiocManager::available("EnsDb"))
如果您想使用另一种基因注释来源,您可能仍然可以使用eisaR
首先将注释转换为TxDb
或者一个EnsDb
(用于创建TxDb
看到makeTxDb
在GenomicFeatures包,用于创建EnsDb
看到makeEnsembldbPackage
在ensembldb包)。
在这个例子中,eisaR
包含一个小TxDb
来说明如何提取区域。我们将从一个文件中加载它。或者,对象将使用图书馆(…)
,例如使用库(TxDb.Mmusculus.UCSC.mm10.knownGene)
.
#获取TxDb对象txdbFile <- system. exe文件(“extdata”、“hg19sub。sqlite", package = "eisaR") txdb <-注释dbi::loadDb(txdbFile)
外显子和基因体区域然后从TxDb
:
#提取过滤后的外显子和基因体区域regS <- getRegionsFromTxDb(txdb = txdb, strandedData = TRUE) #>提取外显子坐标#>基因/外显子总数:12/32 #>去除重叠/单外显子/模糊基因(8)#>为4个基因(33.3%)和20个外显子(62.5%)regU <- getRegionsFromTxDb(txdb = txdb, strandedData = FALSE) #>提取外显子坐标#>基因/外显子总数:12/32 #>去除重叠/单外显子/模糊基因(9)#>为3个基因(25%)创建过滤区域,17个外显子(53.1%)长度(regS) #>外显子基因体#> 20 4个长度(regU) #>外显子基因体#> 17 3 regS$外显子#> GRanges对象,20个范围和0元数据列:#> seqnames ranges strand #> #> ENSG00000078808 chr1 18828-21741 - #> ENSG00000078808 chr1 23614-23747 - #> ENSG00000078808 chr1 24202-24358 - #> ENSG00000078808 chr1 27799-27854 - #> ... ... ... ...#> ENSG00000186891 chr1 5740-6070 - #> ENSG00000186891 chr1 6755-7081 - #> ENSG00000254999 chr3 2266-2513 + #> ENSG00000254999 chr3 12300-12402 + #> ENSG00000254999 chr3 12943-13884 + #> ------- #> seqinfo:来自未指定基因组的3个序列
如您所见,过滤过程为非链数据删除了稍微多一点的基因(strandedData = FALSE
),因为重叠的基因即使位于相反的链上也不能被区分。
您也可以将获取的区域导出到文件中。如果您计划对齐和/或量化r之外的读取,这可能是有用的rtracklayer输出区域海军学校规则
成.gtf
文件:
库(rtracklayer)导出(regS$exons, "hg19sub_exons_strand .gtf")导出(regS$genebodies, "hg19sub_genebodies_strand .gtf")
对于本例,我们将使用QuasR用于索引和校准短读取的包,以及该包中包含的小型RNA-seq数据集。如前所述,也可以使用替代校准器/计数器来对齐或量化读取,并跳过这些步骤。有关语法的更多详细信息,请参阅QuasR包中。
中复制样例数据QuasR包到当前工作目录,所有文件都包含在一个名为extdata
:
加载所需的包:Rbowtie file.copy(system. library(QuasR) #>file(package = "QuasR", "extdata"), ".", recursive = TRUE) #> [1] TRUE
接下来,我们将读取的数据对准一个迷你基因组(fasta文件)extdata / hg19sub.fa
)使用qAlign
.的sampleFile
指定我们想要使用的示例,以及各自的fastq文件的路径。
sampleFile <- "extdata/samples_rna_single.txt" ##显示sampleFile的结构read.delim(sampleFile) #> FileName SampleName #> 1 rna_1_1.fq. txtbz2 Sample1 #> 2 rna_1_2.fq。bz2 Sample1 #> 3 rna_2_1.fq。bz2 Sample2 #> 4 rna_2_2.fq。bz2 Sample2 ##执行对齐proj <- qAlign(sampleFile = sampleFile, genome = "extdata/hg19sub. bz2#>为/tmp/Rtmpx665p1/Rbuild30070f5d5ff82d/eisaR/vignettes/extdata/hg19sub创建fai文件。>对齐文件缺失-需要:#>为基因组创建对齐索引#>创建4个基因组对齐(s) #>为/tmp/Rtmpx665p1/Rbuild30070f5d5ff82d/eisaR/vignettes/extdata/hg19sub创建risat2索引。f# >创建索引完成#>测试计算节点…OK #>加载类星体到计算节点…准备在1个节点上运行…完成#>可用核心:#> nebbiolo1: 1 #>对4个样本进行基因组比对。查看日志文件中的进展:#> /tmp/Rtmpx665p1/Rbuild30070f5d5ff82d/eisaR/vignettes/QuasR_log_300f0dea89c54.txt #>基因组对齐已创建成功alignmentStats(proj) #> seqlength mapped unmapped #> Sample1:基因组95000 5961 43 #> Sample2:基因组95000 5914 86
外显子和基因体的排列现在可以用qCount
和regU
我们之前生成的(假设数据是非链的)。内含子计数可以从基因体和外显子之间的差异中获得:
cntEx <- qCount(proj, regU$exons, orientation = "any") #>计数对齐…完成#>折叠计数样本…完成#>按查询名称折叠计数…cntGb <- qCount(proj, regU$genebodies, orientation = "any") #>计数对齐…完成#>折叠计数样本…cntIn <- cntGb - cntEx cntEx #> width Sample1 Sample2 #> ENSG00000186827 1821 37 8 #> ENSG00000186891 1470 26 2 cntIn #> width Sample1 Sample2 #> ENSG00000078808 10307 5 15 #> ENSG00000186827 1012 30 #> ENSG00000186891 1734 30
如前所述,还可以使用替代方法获得对齐和计数。要求得到的两个外显子和内含子计数表具有相同的结构(基因以行表示,样本以列表示,两个表的行和列顺序相同)。
上面的例子只包含很少的基因。对于其余的小插图,我们将使用来自真实RNA-seq实验的计数表eisaR
包中。计数对应于图3a中使用的原始数据Gaidatzis et al. (2015)也可以从网上获得补充材料:
cntEx <- readRDS(system。文件(“extdata”、“Fig3abc_GSE33252_rawcounts_exonic。, package = "eisaR")) cntIn <- readRDS(system. rds);文件(“extdata”、“Fig3abc_GSE33252_rawcounts_intronic。rds", package = "eisaR"))
所有外显子-内含子分裂分析的进一步步骤现在都可以使用一个函数来执行runEISA
.如果您喜欢一步一步地执行分析,现在可以跳到小节7.
#删除“width”列Rex <- cntEx[, colnames(cntEx) != "width"] Rin <- cntIn[, colnames(cntIn) != "width"] #创建条件因子(对比度将为TN - ES) cond <- factor(c("ES", "ES", "TN", "TN")) # runEISA res <- runEISA(Rex, Rin, cond) #>筛选可量化基因…保持11759从20288(58%)#>拟合统计模型…完成#>计算log-fold变化…完成
这里有六个参数runEISA
(modelSamples
,geneSelection
,影响
,statFramework
,pscnt
而且sizeFactor
),控制基因过滤,对比计算和使用的统计方法,总结在下面的项目列表。
这些参数的默认值对应于当前推荐的运行EISA的方式。您还可以完全按照描述的方式运行EISAGaidatzis et al. (2015),通过设置method = "Gaidatzis2015"
.这将覆盖其他六个参数的值,并根据发布的算法设置它们(如下所示)。
modelSamples
:在统计模型中解释个别样本?可能取值为:假
(方法= " Gaidatzis2015 "
):使用表单的模型~条件*区域
真正的
(默认):使用模型调整样本之间的基线差异,并具有特定于条件的区域效应(类似于第3.5节中描述的模型)刨边机用户指南)geneSelection
:如何选择检测基因。可能取值为:“filterByExpr”
(默认):首先,使用磨边机:calcNormFactors
,将内含子计数和外显子计数作为单个样本。然后,磨边机:filterByExpr
函数与默认参数一起使用,以选择可量化的基因。“没有”
:这将使用计数表中提供的所有基因,假设已经完成了对可量化基因的适当选择。“Gaidatzis2015”
(方法= " Gaidatzis2015 "
):首先,内含子和外显子计数线性缩放到平均库大小(分别估计为所有内含子或外显子计数的总和)。然后选择可量化的基因作为有计数的基因x
,满足Log2 (x + 8) >
在外显子和内含子中。statFramework
:内部框架刨边机
用于统计分析。可能取值为:“QLF”
(默认):准似然f检验使用磨边机:glmQLFit
而且磨边机:glmQLFTest
.该框架考虑了离散度估计的不确定性,对错误率控制更严格,是非常值得推荐的。“全面”
(方法= " Gaidatzis2015 "
):使用似然比检验磨边机:glmFit
而且磨边机:glmLRT
.影响
:如何计算效果(log2折叠变化)。可能取值为:“predFC”
(默认):使用拟合的模型计算折叠变化磨边机:predFC
以及提供给的值pscnt
.请注意,如果统计模型中包含样本因子(modelSamples = TRUE
),则无法从该模型获得效果。在这种情况下,效果是从一个没有样本效应的更简单的模型中获得的。“Gaidatzis2015”
(方法= " Gaidatzis2015 "
):折痕变化用公式计算Log2 (x + pscnt)/ y + pscnt)
.如果pscnt
没有设置为8,runEISA
将警告这与Gaidatzis等人2015年使用的方法不同。pscnt
:在日志转换前添加到规范化计数的伪计数。为geneSelection = " Gaidatzis2015 "
,pscnt
既用于基因选择,也用于log2折叠变化的计算。否则,pscnt
仅用于计算log2的折变磨边机::predFC(之前。计数= pscnt)
.
sizeFactor
大小因子(TMM归一化因子和库大小)是如何计算和使用的eisaR
:“外显子”
(默认):大小因子用于外显子计数,并用于相应的内含子计数。“基因内区”
:为内含子计数计算尺寸因子,并重复用于相应的外显子计数。“个人”
(方法= " Gaidatzis2015 "
):大小因子独立计算外显子和内含子计数。虽然这些参数的不同值通常会产生类似的结果,但缺省值通常没有那么严格方法= " Gaidatzis2015 "
在选择可量化的基因时,但在调用重大变化时(特别是在低重复次数时)更严格。
这里有一个关于结果如何不同的说明方法= " Gaidatzis2015 "
和默认值:
res1 <- runEISA(Rex, Rin, cond, method = "Gaidatzis2015") #>根据Gaidatzis et al., 2015设置参数#>筛选可量化基因…保持8481从20288(41.8%)#>拟合统计模型…完成#>计算log-fold变化…完成res2 <- runEISA(Rex, Rin, cond) #> filtering quantifyable genes...keeping 11759 from 20288 (58%) #> fitting statistical model...done #> calculating log-fold changes...done # number of quantifiable genes nrow(res1$DGEList) #> [1] 8481 nrow(res2$DGEList) #> [1] 11759 # number of genes with significant post-transcriptional regulation sum(res1$tab.ExIn$FDR < 0.05) #> [1] 458 sum(res2$tab.ExIn$FDR < 0.05) #> [1] 114 # method="Gaidatzis2015" results contain most of default results summary(rownames(res2$contrasts)[res2$tab.ExIn$FDR < 0.05] %in% rownames(res1$contrasts)[res1$tab.ExIn$FDR < 0.05]) #> Mode FALSE TRUE #> logical 35 79 # comparison of deltas ids <- intersect(rownames(res1$DGEList), rownames(res2$DGEList)) cor(res1$contrasts[ids,"Dex"], res2$contrasts[ids,"Dex"]) #> [1] 0.9897309 cor(res1$contrasts[ids,"Din"], res2$contrasts[ids,"Din"]) #> [1] 0.9893341 cor(res1$contrasts[ids,"Dex.Din"], res2$contrasts[ids,"Dex.Din"]) #> [1] 0.9673152 plot(res1$contrasts[ids,"Dex.Din"], res2$contrasts[ids,"Dex.Din"], pch = "*", xlab = expression(paste(Delta, "exon", -Delta, "intron for method='Gaidatzis2015'")), ylab = expression(paste(Delta, "exon", -Delta, "intron for default parameters")))
对于所有样本彼此独立的实验设计,计算相互作用的显著性(这里是外显子或内含子数据之间的折叠变化是否不同)是很好的定义。在EISA中,情况并非如此(每个样本产生两个数据点,一个是外显子,一个是内含子)。这导致了数据点之间的依赖关系:如果一个样本在实验中受到问题的影响,它可能同时在外显子和内含子计数中产生离群值。
在统计学中,这样的实验设计通常被称为分裂图设计,在这种实验中分析相互作用的推荐方法是使用混合效应模型,将图(在我们的例子中,样本)作为随机效应。然而,这里的缺点是混合效应模型的可用包不是为计数数据设计的,因此我们使用另一种方法显式地对样本依赖项建模,通过在设计矩阵中引入特定于样本的列(formodelSamples = TRUE
).该样本因子嵌套在条件因子中(任何样本都不能属于一个以上的条件)。因此,我们处于第3.5节(“科目之间和科目内部的比较”)中描述的情况刨边机用户指南,我们使用这里描述的方法来定义一个具有特定样本基线效应以及特定条件区域效应的设计矩阵。
这对效果(的log2折叠变化)没有影响modelSamples = TRUE
而且modelSamples = FALSE
几乎一模一样)。然而,在样本效应存在的情况下,modelSamples = TRUE
增加检测具有显著相互作用的基因的敏感性。以下是在模型中考虑样本和不考虑样本的EISA结果的比较:
res3 <- runEISA(Rex, Rin, cond, modelSamples = FALSE) #>筛选可量化基因…保持11034从20288(54.4%)#>拟合统计模型…完成#>计算log-fold变化…完成res4 <- runEISA(Rex, Rin, cond, modelSamples = TRUE) #> filtering quantifyable genes...keeping 11759 from 20288 (58%) #> fitting statistical model...done #> calculating log-fold changes...done ids <- intersect(rownames(res3$contrasts), rownames(res4$contrasts)) # number of genes with significant post-transcriptional regulation sum(res3$tab.ExIn$FDR < 0.05) #> [1] 6 sum(res4$tab.ExIn$FDR < 0.05) #> [1] 114 # modelSamples=TRUE results are a super-set of # modelSamples=FALSE results summary(rownames(res3$contrasts)[res3$tab.ExIn$FDR < 0.05] %in% rownames(res4$contrasts)[res4$tab.ExIn$FDR < 0.05]) #> Mode TRUE #> logical 6 # comparison of contrasts diag(cor(res3$contrasts[ids, ], res4$contrasts[ids, ])) #> Dex Din Dex.Din #> 0.9931251 0.9872626 0.9912877 plot(res3$contrasts[ids, 3], res4$contrasts[ids, 3], pch = "*", xlab = "Interaction effects for modelSamples=FALSE", ylab = "Interaction effects for modelSamples=TRUE")
#交互意义图的比较(-log10(res3$tab.)ExIn[ids, "FDR"]), -log10(res4$tab. txt)。ExIn[ids, "FDR"]), pch = "*", xlab = "-log10(FDR) for modelSamples=FALSE", ylab = "-log10(FDR) for modelSamples=TRUE") abline(a = 0, b = 1, col = "gray") legend("bottomright", "y = x", bty = "n", lty = 1, col = "gray")
我们现在可以通过绘制内含子变化和外显子变化(具有显著相互作用的基因,可能受到转录后调控,用颜色编码)来可视化结果:
plotEISA(res) #>鉴定出114个基因
作为替代方案runEISA
(部分5),plotEISA
(部分6)所描述的数据,你也可以按Gaidatzis et al. (2015).这样可以更好地理解每个单独的步骤,并能够访问中间结果。
用这种方法得到的结果与用runEISA(…,method = "Gaidatzis2015")
,如果你满意的话runEISA
你可以跳过其余的小插图。
归一化分别对外显子和内含子计数进行,假设样品之间不同的外显子/内含子比率是技术起源。
# remove column "width" Rex <- cntEx[,colnames(cntEx) != "width"] Rin <- cntIn[,colnames(cntIn) != "width"] Rall <- Rex + Rin fracIn <- colsum (Rin)/ colsum (Rall) summary(fracIn) #>最小第一曲。中位数平均第三曲。#> 0.2696 0.2977 0.3105 0.3459 0.3587 0.4929 # scale count to mean library size, #分别针对外显子和内含子Nex <- t(t(Rex) / colsum (Rex) * mean(colsum (Rex))) Nin <- t(t(Rin) / colsum (Rin) * mean(colsum (Rin))) # log transform(添加8个伪计数)NLex <- log2(Nex + 8) NLin <- log2(Nin + 8)
在外显子或内含子中数量非常低的基因最好被去除,因为它们太吵了,无法产生有用的结果。我们在这里使用了一个固定的归一化、对数转换内含子和外显子计数的截止点:
quantGenes <- rownames(Rex)[rowMeans(NLex) > 5.0 & rowMeans(NLin) > 5.0] length(quantGenes) #> [1] 8481
计数表从小鼠胚胎干(MmES)细胞和衍生终末神经元(MmTN)的总RNA-seq实验中获得,每种条件两次重复。
我们现在将计算内含子中神经元和胚胎干细胞之间的变化(\(我\ \δ)),在外显子(\δE (\ \)),以及两者的差值(\(\Delta E - \Delta I\)):
敏捷< - NLex [c(“MmTN_RNA_total_a”、“MmTN_RNA_total_b”)]——NLex [c(“MmES_RNA_total_a”、“MmES_RNA_total_b”)]Din < - NLin [c(“MmTN_RNA_total_a”、“MmTN_RNA_total_b”)]——NLin [c(“MmES_RNA_total_a”、“MmES_RNA_total_b”)]敏捷。Din <- Dex - Din cor(Dex[quantGenes,1], Dex[quantGenes,2]) #> [1] 0.9379397 cor(Din[quantGenes,1], Din[quantGenes,2]) #> [1] 0.8449252 cor(Dex。Din[quantGenes,1], Dex.Din[quantGenes,2]) #> [1] 0.5518187
外显子和内含子的变化在重复中都是相关的,差异也是相关的,这表明转录后调控的信号是可重复的。
最后,我们使用重复测量在刨边机计算变化的重要性的框架:
使用外显子和内含子计数库创建DGEList对象(edgeR) #>加载所需的包:limma #> #>附加包:'limma' #>以下对象从'package:BiocGenerics'中屏蔽:#> #> plotMA cnt <- data.frame(Ex = Rex, In = Rin) y <- DGEList(counts = cnt, genes = data.frame(ENTREZID = rownames(cnt))) #选择可量化基因并归一化y <- y[quantGenes,] y <- calcNormFactors(y) #设计矩阵与交互项区域<- factor(c(" Ex "," Ex "," Ex "," Ex "," Ex "," Ex "," In "," In "," In "," In "), levels = c(" In "," Ex ")) cond <- rep(factor(c("ES","ES","TN","TN")), 2)设计<-模型。matrix(~ region * cond) rownames(design) <- colnames(cnt) design #> (Intercept) regionex condTN regionex:condTN #> Ex.MmES_RNA_total_a 1 1 0 0 #> Ex.MmES_RNA_total_b 1 1 0 0 #> Ex.MmTN_RNA_total_a 1 1 1 1 1 #> Ex.MmTN_RNA_total_b 1 1 1 1 #> In。MmES_RNA_total_a 1 0 0 0 #> In。MmES_RNA_total_b 1 0 0 0 #> In。MmTN_RNA_total_a 1 0 1 0 #> In。MmTN_RNA_total_b 1 0 1 0 #> attr(,“分配”)#> [1]0 1 2 3 #> attr(,“对比”)#> attr(,“对比”)$region #>[1]“对照。治疗”#> #> attr(,“对比”)$cond #>[1]“对照。治疗”#估计模型参数y <- estimateDisp(y,设计)适合<- glmFit(y,设计)#计算完整模型和简化模型之间的可能性比lrt <- glmLRT(适合)#创建结果表tt <- topTags(lrt, n = nrow(y),排序。by = "none") head(tt$table[order(tt$table$FDR,递减= FALSE),]) #> ENTREZID logFC logCPM LR PValue FDR #> 14680 14680 6.375699 6.554051 95.79494 1.274210e-22 1.080658e-18 #> 75209 75209 5.341413 6.400361 85.66167 2.135122e-20 9.053983e-17 #> 268354 268354 9.854778 8.402066 53.71350 2.319637e-13 6.557614e-10 #> 17957 17957 4.342644 6.864176 51.63948 6.668718e-13 1.413935e-09 #> 93765 93765 3.849670 6.603142 51.08555 5.872792 3.660400e-12 5.173976e-09 #> 68666 68666 4.536512 5.872792 3.660400e-12 5.173976e-09
最后,我们通过绘制内含子变化和外显子变化(具有显著相互作用的基因,可能受到转录后调控,用颜色编码)来可视化结果:
sig < - tt表罗斯福美元< 0.05 (sig)和# > [1]490 sig.dir < -标志(tt表logFC美元(sig))关口< - ifelse (sig, ifelse (tt表logFC美元> 0,“# E41A1CFF”、“# 497 ab3ff”),# 22222244)#火山阴谋情节(tt表logFC美元,log10 (tt表罗斯福美元)=关口,上校pch = 20, xlab =表达式(粘贴(“RNA变化(log2”,三角洲,“外显子/,三角洲,基因内区)”)),ylab =“意义(log10罗斯福)”)abline (h = log10 (0.05), lty = 2) abline (v = 0, lty = 2)文本(x = par (usr)[1] + 3 *(“cxy”)[1],y =(“usr”)[4],adj = c (0, 1),标签= sprintf("n=%d", sum(sig。dir = = 1),坳= " # 497 ab3ff ")文本(x = par(“usr”)[2]- 3 *(“cxy”)[1],y =(“usr”)[4],adj = c(1, 1),标签= sprintf (n = % d, sum(团体。dir == 1)), col = "#E41A1CFF")
# Delta I vs. Delta E plot(rowMeans(Din)[quantGenes], rowMeans(Dex)[quantGenes], pch = 20, col = cols, xlab = expression(粘贴(Delta,"内含子(log2 TN/ES)")), ylab = expression(粘贴(Delta,"外显子(log2 TN/ES)"))) legend(x = "bottomright", bty = "n", pch = 20, col = c("#E41A1CFF","#497AB3FF"), legend = sprintf("%s (%d)", c("Up","Down"), c(sum(sig。Dir == 1), sum(sig。Dir == -1))))
这个小插图中的输出是在以下条件下产生的:
sessionInfo() #> R version 4.2.0 RC (2022-04-19 r82224) #>平台:x86_64-pc-linux-gnu (64-bit) #>运行在:Ubuntu 20.04.4 LTS #> #>矩阵产品:默认#> BLAS: /home/biocbuild/bbs-3.15-bioc/R/lib/libRblas。所以#> LAPACK: /home/biocbuild/bbs-3.15-bioc/R/lib/libRlapack。so #> #> locale: #> [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# > [3] LC_TIME=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 LC_TELEPHONE= c# > [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION= c# > #>附加基础包:#> [1]parallel stats4 stats graphics grDevices utils datasets #>[8]方法基础#> #>其他附加包:#> [7] AnnotationDbi_1.58.0 Biobase_2.56.0 genome ranges_1 .48.0 #> [10] GenomeInfoDb_1.32.0 IRanges_2.30.0 S4Vectors_0.34.0 #> [13] BiocGenerics_0.42.0 eisaR_1.8.0 BiocStyle_2.24.0 #> #>通过命名空间加载(且未附加):#> [9] tools_4.2.0 bslib_0.3.1 #> [11] utf8_1.2.2 R6_2.5.1 #> [13] DBI_1.1.2 tidyselect_1.1.2 #> [15] prettyunits_1.1.1 bit_4.0.4 #> [17] curl_4.3.2 compiler_4.2.0 #> [19] SGSeq_1.30.0 cli_3.3.0 #> [21] xml2_1.3.3 bookdown_0.26 sass_0.4.1 #> [25] rappdirs_0.3.3 string_1 .4.0 #> [27] digest_0.6.29 Rsamtools_2.12.0 #>[29] rmarkdown_2.14 XVector_0.36.0 # > [31] Rhisat2_1.12.0 jpeg_0.1-9 # > [33] pkgconfig_2.0.3 htmltools_0.5.2 # > [35] MatrixGenerics_1.8.0 highr_0.9 # > [37] dbplyr_2.1.1 fastmap_1.1.0 # > [39] BSgenome_1.64.0 rlang_1.0.2 # > [41] RSQLite_2.2.12 jquerylib_0.1.4 # > [43] BiocIO_1.6.0 generics_0.1.2 # > [45] hwriter_1.3.2.1 jsonlite_1.8.0 # > [47] BiocParallel_1.30.0 dplyr_1.0.8 # > [49] VariantAnnotation_1.42.0 rcurl_1.98 - 1.6 # > [51] magrittr_2.0.3 GenomeInfoDbData_1.2.8 # > [53] Matrix_1.4-1 Rcpp_1.0.8.3#> [55] fansi_1.0.3 lifecycle_1.0.1 #> [57] stringi_1.7.6 yaml_2.3.5 #> [59] SummarizedExperiment_1.26.0 zlibbioc_1.42.0 #> [61] BiocFileCache_2.4.0 grid_4.2.0 #> [63] blob_1.2.3 crayon_1.5.1 #> [65] lattice_0.20-45 splines_4.2.0 #> [67] Biostrings_2.64.0 hms_1.1.1 #> [69] KEGGREST_1.36.0 magick_2.7.3 #> [71] locfit_1.5-9.5 knitr_1.38 #> [73] pillar_1.7.0 igraph_1.3.1 #> [75] RUnit_0.4.32 rjson_0.2.21 #> [77] biomaRt_2.52.0 XML_3.99-0.9 #> [79] glue_1.6.2 ShortRead_1.54.0 #> [81] evaluate_0.15 latticeExtra_0.6-29 #> [83] BiocManager_1.30.17 png_0.1-7 #> [85] vctrs_0.4.1 purrr_0.3.4 #> [87] assertthat_0.2.1 cachem_1.0.6 #> [89] xfun_0.30 restfulr_0.0.13 #> [91] tibble_3.1.6 GenomicAlignments_1.32.0 #> [93] memoise_2.0.1 ellipsis_0.3.2
盖达齐斯,D., L.伯格,M.弗洛雷斯库,M.B.斯塔德勒,2015。“Rna-Seq数据中内含子和外显子Reads的分析表征了转录和转录后调控。”自然生物技术33(7): 722-29。https://doi.org/10.1038/nbt.3269.