内容


ncRNAtools

Lara Selles Vidal, Rafael Ayala, Guy-Bart Stan, Rodrigo Ledesma-Amaro

2020年7月24日


1摘要

非编码RNA (ncRNA)由多种RNA分子组成,从DNA转录但不翻译成蛋白质。
它们包括执行关键细胞功能的多种RNA,包括核糖体RNA、转移RNA、核酶、小核和小核仁RNA以及参与基因表达和染色质结构调节的多种RNA,如顺式调节元件、微RNA、干扰RNA和长非编码RNA。决定ncrna功能和性质的一个关键方面是它们的二级结构。该软件包提供了一套工具,用于识别感兴趣的ncRNA,确定和绘制它们的二级结构,并导入和导出最常见的ncRNA数据文件类型。

2简介

在过去的二十年中,ncrna在细胞过程中的关键作用已经得到了很好的确立,据报道,至少70%的人类基因组被转录成不同大小的rna。鉴于人类基因组中只有约28%的区域对应于蛋白质编码区域(包括内含子和其他未翻译的区域),目前认为基因组的其余部分编码了大量未翻译成蛋白质的功能性RNA分子傅(2014)

ncrna的主要特征之一是它们的二级结构,由分子内碱基通过氢键配对来定义。RNA二级结构的鉴定通常是确定ncRNA功能的基本碱基的基础,也是工程设计新型或修饰的ncRNA(包括核酶)的基础。此外,一些用于预测RNA三维结构的方法需要二级结构信息作为关键输入(Wang & Xu 2011;泰尔et al。2017)

ncRNAtools旨在通过提供一套导入、导出、绘图和分析ncRNA及其特征的工具,促进在现有的基因组学和转录组学工作流程中包含ncRNA鉴定和分析,以及预测ncRNA性质和结构的统计建模应用。

3.安装

要安装ncRNAtools,启动R(>=4.0)并运行:

如果(!下面一行初始化了Bioc devel的使用,因此为了安装稳定的发布版本BiocManager::install(version = "devel") BiocManager::install("ncRNAtools")

4软件功能

第一组ncRNAtools功能允许搜索RNAcentral注释ncRNA数据库(财团2019).RNAcentral数据库可以通过两种不同的方式进行搜索:通过关键字和通过基因组坐标。还可以检索关于特定条目的信息。

ncRNAtools还可以通过简单地提供感兴趣的序列来预测RNA的二级结构。二级结构预测是通过rtoolsRNA生物信息学的web服务器(石漠et al。2016).目前支持的二级结构预测方法包括centroidFold(石漠et al。2008), centroidHomfold(石漠et al。2011)和IPknot(佐藤et al。2011).只有IPknot可以检测伪结。RintW方法可以预测备选的二级结构(Hagioet al。2018).还可以使用实用程序从二级结构字符串确定配对的碱基,反之亦然。

此外,ncRNAtools还提供了计算碱基对概率矩阵并将其可视化为热图的实用程序,还可以制作包含已定义的二级结构的复合图。

最后,ncRNAtools支持以CT和点括号格式读取和写入文件,这两种最常用的格式用于存储RNA的二级结构。

5例子

5.1搜索rnaccentral数据库

rnaCentralTextSearch函数可以通过关键字搜索rnaCentralTextSearch数据库。该函数返回一个字符向量,其中每个元素都是一个字符串,表示匹配搜索的条目的rnaccentral访问。RNAcentral访问总是采用“URSXXXXXXXXXX”形式(其中X是任何十六进制数字)或“URSXXXXXXXXXX_taxid”(其中taxid是与条目对应的物种或品系的NCBI分类标识符)。搜索可以只包含一个关键字或短语,或者在field_name: " field value "语法中给出,其中多个字段由逻辑运算符分隔,如https://rnacentral.org/help/text-search.应该注意的是,逻辑运算符必须大写。

例如,关键字“HOTAIR”可以作为查询传递给搜索函数,以识别与HOTAIR ncRNA对应的条目:

rnaCentralTextSearch(“热空气”)
##[13]“urs000075c808_9606”“urs00008be50e_9606”“urs00001a335c_9606”##[4]“urs000011d1f0_9606”“urs0000513030_9606”“urs000019a694_9606”“urs00025f2ee3_9606”“urs000233db63_9606”##[13]“urs0000757747_9606”“urs00008b6dc3_9606”

通过更精细的搜索,有可能识别出只存在于枯草芽孢杆菌菌株中的FMN核糖开关对应的rna。需要注意的是,包含特定字段值的引号必须转义:

rnaCentralTextSearch("FMN AND species:\"Bacillus subtilis\"")
## [1] " urs00007c2d83_224308 " " urs000037084e_224308 " " urs000037084e_1423 " ## [4] " urs00007c2d83_1423 " " urs0000ab2162_1423 "

结果条目的信息可以用" rnaCentralRetrieveEntry "函数检索:

rnaCentralRetrieveEntry(“URS000037084E_1423”)
[1] "URS000037084E_1423" ## ## $sequence ## [1] " uguauccuucggggcaggaguggaucccgaccggguaguaaagcacauugcuuuagagcccgugacccgugugcauaagcacgcgguguguguength ## [1] 145 ## ## $description ##[1] "枯草芽孢杆菌FMN核糖交换(RFN元素)"# # # # # # $物种[1]ncbiTaxID美元“枯草芽孢杆菌”# # # # # # # # # # 1423 [1]RNATypes # #[1]”““misc_RNA”“其他”

也可以通过“rnaCentralGenomicCoordinatesSearch”函数指定基因组坐标来执行RNAcentral数据库的搜索。对象的序列名必须提供GRanges对象空空的?或者简单地?格式(?表示任何数字,X或Y字符或染色体以字母命名的生物体的另一个字母),或者,“MT”表示线粒体DNA。物种名称还必须以科学名称的字符串形式提供。支持基因组坐标搜索的生物列表可在https://rnacentral.org/help/genomic-mapping.同一个GRanges对象中可以提供多个范围,但它们必须指向同一个组织。

在以下示例中,我们的目标是检索存在于脂化耶氏酵母(产油酵母)中C染色体的200000和300000位置,以及D染色体的500000和550000位置之间的已知ncRNA:

##生成一个带有基因组范围的GRanges对象,用于搜索RNAcentral数据库基因组坐标<- GenomicRanges::GRanges(seqnames = S4Vectors::Rle(c("chrC", "chrD")), ranges = IRanges::IRanges(c(2e+05, 5e+05), c(3e+05, 550000))) ##使用生成的GRanges对象搜索RNAcentral数据库RNAcentralHits <- rnaCentralGenomicCoordinatesSearch(genomicCoordinates,##检查每个提供的基因组范围长度(RNAcentralHits[[1]]) # 22个已知的ncRNA在染色体C的200000和300000位置之间
## [1] 22
在D染色体的500000到550000位置之间没有已知的ncRNA
## [1] 0

5.2预测RNA的二级结构

“predictSecondaryStructure”功能可以通过三种不同的方法预测RNA的二级结构:centroidFold(石漠et al。2008), centroidHomfold(石漠et al。2011)和IPknot(佐藤et al。2011).IPknot的优点是能够检测伪结。

centroidFold和centroidHomfold的二级结构预测以点括号格式输出,其中圆点(“。”)表示未配对的基,成对的开闭圆括号(“(”-“)”)表示配对的基。这样的格式不能明确地表示嵌套结构,如伪结。因此,如果需要,IPknot的输出将以扩展的点括号格式提供,其中使用额外的符号对来表示这种嵌套结构。

在下面的例子中,所有这三种方法都用于预测tRNA片段的结构:

tRNAfragment <- "UGCGAGAGGCACAGGGUUCGAUUCCCUGCAUCUCCA" centroidFoldPrediction <- predictSecondaryStructure(tRNAfragment, "centroidFold") centroidFoldPrediction$secondaryStructure
##[1]“.....((((..(((((....... ..))))..”
centroidHomFoldPrediction <- predictSecondaryStructure(tRNAfragment, "centroidHomFold") centroidFoldPrediction$secondaryStructure
##[1]“.....((((..(((((....... ..))))..”
IPknotPrediction <- predictSecondaryStructure(tRNAfragment, "IPknot") IPknotPrediction$secondaryStructure
##[1] "…((((....(((((.......)))))..)))).."

它不仅可以预测一个单一的规范二级结构,也可以预测一组可能的替代二级结构。这是通过RintW方法实现的(Hagioet al。2018),可通过“predictAlternativeSecondaryStructures”函数获得。

tRNAfragment2 <- "AAAGGGGUUUCCC" RintWPrediction <- predictAlternativeSecondaryStructures(tRNAfragment2) length(RintWPrediction) # RintW共识别出2个可选的二级结构
## [1] 2
RintWPrediction secondaryStructure美元[[1]]
##[1] "…((....)))"
RintWPrediction secondaryStructure美元[[2]]
##[1] "....(((…))))"

5.3碱基对概率矩阵的计算与绘制

centroidFold和centroidHomfold不仅可以预测RNA的二级结构,还可以给出每个核苷酸潜在碱基对的概率列表。这种矩阵可用于评估可能存在的替代次级结构。

可以使用“generatePairsProbabilityMatrix”生成一个碱基对概率矩阵,该矩阵将centroidFold和centroidHomFold返回的格式的概率作为输入。碱基对概率矩阵可以用“plotPairsProbabilityMatrix”函数绘制:

basePairProbabilityMatrix <- generatePairsProbabilityMatrix(centroidFoldPrediction$ basepairprobability)

可以使用“plotCompositePairsMatrix”函数生成复合图,其中右上三角形表示碱基对概率,而左下三角形表示特定二级结构中的碱基对。通常,二级结构中的碱基对对应于高概率的碱基对。该函数以碱基对概率矩阵和给定二级结构中碱基对的数据框架作为输入。这样的数据帧可以通过" findPairedBases "函数从二级结构字符串中生成。

在下面的例子中,由centroidFold为tRNA片段预测的二级结构生成这样的复合图:

pairedBases <- findairredbases (sequence = tRNAfragment, secondaryStructureString = IPknotPrediction$secondaryStructure) plotCompositePairsMatrix(basePairProbabilityMatrix, pairedBases)

5.4读取和写入文件和其他实用程序

ncRNAtools支持读写CT和点括号格式的文件。有关每种格式的说明,请参见http://projects.binf.ku.dk/pgardner/bralibase/RNAformats.html而且https://rna.urmc.rochester.edu/Text/File_Formats.html

使用“readCT”功能读取CT文件。一些CT文件包含RNA序列的每个核苷酸的一行,而另一些文件只包含成对的核苷酸的行。在第二种情况下,调用“readCT”时必须提供完整的序列。

“readCT”返回的列表包括一个名为“pairsTable”的元素,由一个表示成对核苷酸的数据帧组成。可以使用" pairsToSecondaryStructure "函数生成一个相应的点括号格式的二级结构字符串。

使用“writeCT”功能写入CT文件。一个完整的CT文件总是通过“writeCT”输出。

对于点括号格式的文件,使用readdot括号函数读写,使用writedot括号函数读写。如果读的点括号文件包含表示结构的能量值,则它将包含在“readDotBracket”的输出中。

##读取E. coli tmRNA exampleCTFile <- system. txt对应的CT文件示例。文件(“extdata”、“exampleCT。t", package = "ncRNAtools") tmRNASequence <- " gmrnasequystructure <- readCT(exampleCTFile),tmRNA tempDir <- tempDir () testCTFile <- paste(tempDir, " testCTFile . txt ")ct", sep = "") tmRNASecondaryStructureString <- pairsToSecondaryStructure(pairedBases = tmRNASecondaryStructure$pairsTable, sequence = tmRNASequence) writeCT(testCTFile, sequence = tmRNASequence, secondaryStructure = tmRNASecondaryStructureString, sequenceName = "tmRNA")文件(“extdata”、“exampleDotBracket。. dot", package = "ncRNAtools") exampledotname <- readdotname (exampleDotBracketFile) exampledotname $freeEnergy #结构的自由能为-41.2 kcal/mol
## [1] -41.2
写一个点括号文件tempDir2 <- tempdir() testDotBracketFile <- paste(tempDir2, "testDotBracketFile. txt ")testDotBracketFile, sequence = exampleDotBracket$sequence, secondaryStructure = exampleDotBracket$secondaryStructure, sequenceName = "测试序列")

ncRNAtools包含一个实用程序,可以将扩展的点括号格式的二级结构表示为基本的点括号格式(即仅包含“。", "("和")"字符)。尽管在这种转换过程中信息可能会丢失,但这对于一些RNA生物信息学软件是必需的,这些软件只能接受点括号格式的二级结构作为输入。这可以通过"扁点括号"函数实现。

extendedDotBracketString <- "…((((..[[[.))))]]]…" plainDotBracketString <-扁点括号(extendedDotBracketString)

6会话信息

sessionInfo ()
## R版本4.2.1(2022-06-23)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 20.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.16-bioc/R/lib/libRblas。/home/biocbuild/bbs-3.16-bioc/R/lib/libRlapack。所以## ## 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_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats4 stats graphics grDevices utils datasets methods ##[8]基础## ##其他附加包:## [1]ggplot2_3.3.6 genome icranges_1 .50.0 GenomeInfoDb_1.34.0 ## [4] IRanges_2.32.0 S4Vectors_0.36.0 BiocGenerics_0.44.0 ## [7] ncRNAtools_1.8.0 BiocStyle_2.26.0 ## ##通过命名空间加载(且未附加):[4] colorspace_2.0-3 vctrs_0.5.0 generics_0.1.3 ## [7] htmltools_0.5.3 yaml_2.3.6 utf8_1.2.2 ## [10] rlang_1.0.6 jquerylib_0.1.4 pillar_1.8.1 ## [13] withr_2.5.0 glue_1.6.2 DBI_1.1.3 ## [16] GenomeInfoDbData_1.2.9 lifecycle_1.0.3 string_1 .4.1 ## [19] zlibbioc_1.44.0 munsell_0.5.0 gtable_0.3.1 ## [22] evaluate_0.17 knitr_1.40 fastmap_1.1.0 ## [25] curl_4.3.3 fansi_1.0.3 highr_0.9 ## [28] Rcpp_1.0.9 scales_1.2.1 BiocManager_1.30.19 ## [31][34] jsonlite_1.8.3 XVector_0.38.0 farver_2.1.1 ## [37] digest_0.6.30 stringi_1.7.8 bookdown_0.29 ## [40] dplyr_1.0.10 grid_4.2.1 cli_3.4.1 ## [43] tools_4.2.1 bitops_1.0-7 magrittr_2.0.3 ## [46] sass_0.4.2 RCurl_1.98-1.9 tibble_3.1.8 ## [49] pkgconfig_2.0.3 xml2_1.3.3 assertthat_0.2.1 ## [55] rmarkdown_2.17 httr_1.4.4 R6_2.5.1 ## [55] compiler_4.2.1

参考文献

Consortium, T.R.(2019)。RNAcentral:非编码rna序列的信息枢纽。核酸研究47, D221-D229。从检索https://doi.org/10.1093/nar/gky1034

傅,X.-D。(2014)。非编码rna:调控生物学的新前沿。国家科学评论1, 190 - 204。从检索https://doi.org/10.1093/nsr/nwu008

Hagio, T., Sakuraba, S., Iwakiri, J., Mori, R. & Asai, K.(2018)。通过分解碱基配对概率捕获rna的可选二级结构。BMC生物信息学1938岁。从检索https://doi.org/10.1186/s12859-018-2018-4

滨田,M., Kiryu, H., Sato, K., Mituyama, T. & Asai, K.(2008)。用广义质心估计器预测rna二级结构。生物信息学25, 465 - 473。从检索https://doi.org/10.1093/bioinformatics/btn601

滨田,M.,小野,Y.,基柳,H.,佐藤,K.,加藤,Y.,福永,T.,森,R.和浅井,K.(2016)。Rtools:一个对单个rna序列进行各种二级结构分析的web服务器。核酸研究44, W302-W307。从检索https://doi.org/10.1093/nar/gkw337

滨田,M.,山田,K.,佐藤,K.,弗里思,M. c .和浅井,K.(2011)。CentroidHomfold-last:使用自动收集的同源序列准确预测rna二级结构。核酸研究39, W100-W106。从检索https://doi.org/10.1093/nar/gkr290

佐藤,K.,加藤,Y.,滨田,M.,阿津,T.和浅井,K.(2011)。IPknot:使用整数编程快速准确地预测rna二级结构的伪结。生物信息学27, i85-i93。从检索https://doi.org/10.1093/bioinformatics/btr215

Thiel, b.c., Flamm, C. & Hofacker, I.L.(2017)。RNA结构预测:从2D到3D。生命科学的新兴课题1, 275 - 285。从检索https://doi.org/10.1042/ETLS20160027

王哲,徐娟(2011)。一种用于rna序列-结构关系建模和构象采样的条件随机场方法。生物信息学27, i102-i110。从检索https://doi.org/10.1093/bioinformatics/btr232