1动机

1.1背景

VCF的对象VariantAnnotation包包含从源VCF文件的特定字段导入的过多信息,并存储在专用插槽(如。固定信息基因族群),以及可选的ensemble VEP预测(McLaren et al. 2010)存储在INFO槽的给定键下。

这些信息可用于识别和筛选感兴趣的变量,以供进一步分析。然而,遗传数据集的大小和过滤规则的多样性——以及它们的组合爆炸——在工作空间内存和熵方面带来了相当大的挑战(即。工作空间中对象的大小和数量)。

FilterRules类中实现的S4Vectors包提供了一个强大的工具来创建灵活且轻量级的过滤规则表达式而且函数可以在给定环境中计算的对象。的TVTB包扩展了这个FilterRules分类成新奇的类VCF滤波规则,适用于存储在不同槽的信息VCF对象(即。CollapsedVCF而且ExpandedVCF类),如下所述:

每一个新类扩展的动机FilterRules,定义VCF过滤规则。
动机
VcfFixedRules 对象应用的筛选规则固定a槽位VCF对象。
VcfInfoRules 对象应用的筛选规则信息a槽位VCF对象。
VcfVepRules 的给定INFO键中存储的集成VEP预测应用的过滤规则VCF对象。
VcfFilterRules 的组合VcfFixedRulesVcfInfoRules,VcfVepRules适用于VCF对象。

表:每个新类扩展的动机FilterRules定义VCF滤波规则

请注意,FilterRules对象本身适用于VCF对象,与上述专用类有两个重要区别:

  • 表达式必须显式地引用不同VCF
  • 因此,一个表达式可以引用不同的字段VCF插槽,例如:
fr <- S4Vectors::FilterRules(list(mixed = function(x){VariantAnnotation::fixed(x)[,"FILTER"] == "PASS" & VariantAnnotation::info(x)[,"MAF"] >= 0.05}))
长度为1的FilterRules(1):混合

1.2特性

因为他们继承了FilterRules类,这些新类受益于为它们的父类定义的访问器和方法,包括:

  • VCF滤波规则可以在活动状态和非活动状态之间单独切换吗
  • VCF滤波规则可以进行子集、编辑、替换和删除

解释更复杂的结构VCF对象,有些是新的VCF滤波规则类中实现的TVTB包需要额外的信息存储在新的专用插槽中,并与适当的访问器和设置器相关联。例如:

  • VcfVepRules需要INFO键,其中集成变量效应预测器的预测存储在VCF对象。的vep可使用Accessor方法访问此插槽。
  • VcfFilterRules-它可以组合存储在FixedRulesVcfFixedRulesVcfInfoRulesVcfVepRules,及其他VcfFilterRules对象——在组合对象中用它们的类型标记每个筛选规则。信息存储在类型槽位,可以通过只读访问器方法类型

2演示数据

的实用和用法VCF滤波规则,获得了一组变异和相关的表型信息千人基因组计划第三阶段发布。可以导入为CollapsedVCF对象,使用以下代码:

library(TVTB) extdata <- system. txt . txt。vcfFile <- file. file("extdata", package = "TVTB")Rsamtools::TabixFile(file = vcfFile) vcf <- VariantAnnotation::readVcf(file = tabixVcf)

VCF过滤规则可以应用于ExpandedVCF对象相等:

vcf <- VariantAnnotation::expand(x = vcf, row.names = TRUE)

2.1折叠dvcf和扩展dvcf

的文档中有描述VariantAnnotation包,关键区别CollapsedVCF而且ExpandedVCF对象——两者都扩展了VCF类是将多等位基因记录分别扩展为双等位基因记录。换句话说(引用VariantAnnotation文档):

CollapsedVCF对象包含ALT数据作为DNAStringSetList允许每个变体有多个等位基因。相比之下,ExpandedVCF将ALT数据存储为DNAStringSet其中ALT列已展开,以创建一个数据的平面形式,每个变体-等位基因组合一行。”

属性的筛选规则具有此差异“ALT”字段信息槽位,如a所示后面的一节

3.可用于定义筛选规则的字段

首先,让我们看看哪些领域(即。列名称)可以在VCF要创建的对象VCF滤波规则

fixedVcf <- colnames(fixed(vcf)
##[1]“ref”“alt”“qual”“filter”
infoVcf <- colnames(info(vcf)) infoVcf
# #[1]“CIEND”“CIPOS”“CS”“结束”# #[5]“精确”“MC”“MEINFO”“修补”# #[9]“MLEN”“MSTART”“SVLEN”“SVTYPE”# #[13]“保洁”“交流”“对焦”“NS”# #[17]“一”“EAS_AF”“EUR_AF”“AFR_AF”# #[21]“AMR_AF”“SAS_AF”“DP”“AA”# #[25]“v”“EX_TARGET”“MULTI_ALLELIC”“CSQ”
csq <- ensemblVEP::parseCSQToGRanges(x = evcf) vepVcf <- colnames(mcols(csq)) vepVcf
[1]“等位基因”“结果”“影响”##[4]“符号”“基因”“特征”“外显子”##[10]“内含子”“HGVSc”“HGVSp”##[13]“cDNA_position”“CDS_position”“蛋白质位置”## b[16]“氨基酸”“密码子”“存在变量”##[19]“距离”“STRAND”“FLAGS”## b[22]“VARIANT_CLASS”“SYMBOL_SOURCE”“HGNC_ID”##[25]“CANONICAL”“TSL”“APPRIS”##[28]“CCDS”“ENSP”“SWISSPROT”##[31]“TREMBL”“UNIPARC”“GENE_PHENO”##[34]“SIFT”“PolyPhen”“DOMAINS”## [37]“GMAF”“HGVS_OFFSET AFR_MAF“# #[40]“AMR_MAF”“EAS_MAF”“EUR_MAF”# #[43]“SAS_MAF”“AA_MAF”“EA_MAF”# #[46]“ExAC_MAF”“ExAC_Adj_MAF”“ExAC_AFR_MAF”# #[49]“ExAC_AMR_MAF”“ExAC_EAS_MAF”“ExAC_FIN_MAF”# #[52]“ExAC_NFE_MAF”“ExAC_OTH_MAF”“ExAC_SAS_MAF”# #[55]“CLIN_SIG”“体”“把”# #[58]“PUBMED”“MOTIF_NAME”“MOTIF_POS”# #[61]“HIGH_INF_POS”“MOTIF_SCORE_CHANGE”“CADD_PHRED”# #[64]“CADD_RAW”

4VCF过滤规则的使用

4.1使用单个字段筛选规则

特定字段的值可用于定义表示基于该值的简单筛选规则的表达式。多个规则可以存储在任意一个规则中FilterRules对象。理想情况下,VCF滤波规则应该命名为便于使用,但也可以提醒每个特定规则的目的。属性的字段定义了两个筛选规则固定槽:

  • 规则名为“通过”属性中的值所对应的变量过滤器字段是“通过”
  • 规则名为“qual20”属性中的值所在的变量Field大于等于20.
fixedRules <- VcfFixedRules(exprs = list(pass = expression(FILTER == " pass "), qual20 = expression(QUAL >= 20))) active(fixedRules)["qual20"] <- FALSE summary(evalseparated (fixedRules, vcf))
## pass qual20 ##模式:逻辑模式:逻辑## TRUE:479 TRUE:479

在上面的例子中,所有的变量都传递active“通过”过滤器,而停用规则“qual20”)自动返回真正的适用于所有变体。

4.2使用多个字段筛选规则

也有可能VCF滤波规则使用(相同的)多个字段VCFSlot)在单个表达式中。在下面的代码块中,VCF滤波规则属性所对应的变量“REF”而且“ALT”值(在INFO插槽中)是四个核苷酸之一(即。单核苷酸多态性的简单定义;单核苷酸多态性):

核苷酸<- c("A", "T", "G", " c ") SNPrule <- VcfFixedRules(exprs = list(SNP = expression(as.character(REF) %in% nucleotides & as.character(ALT) %in% nucleotides))) summary(evalseparate (SNPrule, evcf, enclos = .GlobalEnv)))
## SNP ##模式:逻辑## FALSE:14 ## TRUE:467

关于上述过滤规则的一些注意事项:

  • 考虑到筛选规则要求核苷酸字符向量,全局环境必须作为封闭环境提供才能成功求值表达式
  • “REF”而且“ALT”存储为DNAStringSetCollapsedVCF对象,并且必须转换为字符以成功应用该方法%, %

4.3过滤规则中的计算

定义筛选规则的表达式也可以包含计算。在下面的代码块中,有两个简单的VCF滤波规则的字段进行定义信息槽:

  • 规则名为“样本”识别至少90%样本有数据的变异(即。NSValue大于或等于0.9乘以样本总数)
  • 规则名为“avgSuperPopAF”计算五个超级群体(在几个INFO字段中可用)中计算的等位基因频率的平均值,随后识别平均值大于的变体0.05
infules <- VcfInfoRules(exprs = list(samples = expression(NS > (0.9 * ncol(evcf))), avgSuperPopAF = expression((EAS_AF + EUR_AF + AFR_AF + AMR_AF + SAS_AF) / 5 > 0.05))) summary(evalseparsepares (infoRules, evcf, enclos = .GlobalEnv))
## samples avgSuperPopAF ##模式:逻辑模式:逻辑## TRUE:481 FALSE:452 ## TRUE: 29

4.4过滤规则中的函数

将过滤器定义为可能更方便函数对象。例如,下面的代码块:

  • 首先,定义一个函数:
    • 预计,信息a槽位VCF对象作为输入
    • 确定至少三分之二的超级种群显示等位基因频率大于5%的变异
  • 接下来,定义一个VCF滤波规则使用上述函数
AFcutoff <- 0.05 popCutoff <- 2/3 filterFUN <- function(环境){# info(vcf)返回一个数据帧;下面的rowsum需要data.frame df <- as.data.frame(envir) #识别超级种群中存储等位基因频率的字段popFreqCols <- grep("[[:alpha:]]{3}_AF",colnames(df)) #计算有多少个超级种群具有高于截止值的等位基因频率popCount <- rowsum (df[,popFreqCols] > AFcutoff) #将截止比转换为整数计数popCutOff <- popCutOff * length(popFreqCols) #识别足够多的超级种群通过截止值的变量testRes <- (popCount > popCutOff) #返回一个布尔向量,return(testRes)} funFilter <- VcfInfoRules(exprs = list(commonSuperPops = filterFUN)) summary(evalseparate (funFilter, evcf))
## commonSuperPops ##模式:逻辑## FALSE:464 ## TRUE:17

值得注意的是,filterFUN函数也可以单独应用于信息槽的VCF对象:

总结(filterFUN(信息(evcf)))
17 . ##模式FALSE TRUE ##逻辑464

4.5筛选规则中的模式匹配

grepl函数特别适合于的目的FilterRules当他们返回逻辑向量:

missenseFilter <- VcfVepRules(exprs = list(exact = expression(result == "missense_variant"), grepl = expression(grepl("missense", Consequence))), vep = "CSQ") summary(evalseparate (missenseFilter, evcf)))
## exact grepl ##模式:逻辑模式:逻辑## FALSE:454 FALSE:452 ## TRUE:27 TRUE:29

在上面的代码块中:

  • 命名为“准确”相关联的给定值27变异,
  • 命名为“grepl”还匹配与该值关联的额外两个变量“missense_variant&splice_region_variant”与给定的模式相匹配。通过演绎,这两个规则一起表明这两个变体没有被赋值“missense_variant”预测。

5中使用ALT数据固定槽的VCF对象

的前面一节中详细介绍了演示数据,并更彻底地在文档中VariantAnnotation包,CollapsedVCF而且ExpandedVCF类中存储的数据的类别不同“ALT”各自的领域固定槽。结果,VCF滤波规则使用该领域的数据必须考虑到VCF类,以便适当地处理数据:

5.1ExpandedVCF对象

一个关键的方面ExpandedVCF对象是“ALT”他们的领域固定槽可能只存储一个记录作为一个等位基因DNAStringSet对象。

例如,在前面的一节中演示了使用多个原始字段筛选规则的ALT数据固定插槽ExpandedVCF对象必须重新输入DNAStringSet字符之前%, %函数可以被应用。

尽管如此,VCF滤波规则也可以利用与DNAStringSet类。例如,可以使用这些字段来识别基因插入“REF”而且“ALT”字段固定槽:

fixedInsertionFilter <- VcfFixedRules(exprs = list(isinsert = expression(Biostrings::width(ALT) > Biostrings::width(REF)))) evcf_fixedIns <- subsetByFilter(evcf, fixedInsertionFilter) as.data.frame(fixed(evcf_fixedIns)[,c("REF", "ALT")]))
##参考Alt ## 1 a ac ## 2 a at ## 3 c ca ## 4 t ta

这里,上面的VcfFixedRules同义词是区别吗VcfVepRules使用Ensembl VEP预测“VARIANT_CLASS”

vepInsertionFilter <- VcfVepRules(exprs = list(isinsert = expression(VARIANT_CLASS == "insert "))) evcf_vepIns <- subsetByFilter(evcf, vepInsertionFilter) as.data.frame(fixed(evcf_vepIns)[,c("REF", "ALT")])
##参考Alt ## 1 a ac ## 2 a at ## 3 c ca ## 4 t ta

5.2CollapsedVCF对象

相比之下ExpandedVCFCollapsedVCF在他们的记录中可能包含多个等位基因“ALT”字段(固定槽),用a表示DNAStringSetList对象。

结果,VCF滤波规则使用“ALT”字段信息槽中CollapsedVCF对象可以使用专用的方法DNAStringSetList来处理数据。例如,多等位基因变异可以通过以下方法识别VcfFixedRules

multiallelicFilter <- VcfFixedRules(exprs = list(multiallelicFilter = expression(长度(ALT) > 1))) summary(eval(multiallelicFilter, vcf))
##模式FALSE TRUE ##逻辑477

6多种类型的组合VCF滤波规则

任何数量的VcfFixedRulesVcfInfoRules,VcfVepRules甚至VcfFilterRules它们本身——可以组合成一个更大的类对象VcfFilterRules.值得注意的是,活跃的每个筛选规则的状态被转移到组合对象。尽管VcfFilterRules类充当多个类型的容器VCF滤波规则,结果是VcfFilterRules对象还扩展了FilterRules类,因此可以求值并用于子集VCF对象与任何专门化的更专门化的类相同。

在创建VcfFixedRules对象,每个VCF滤波规则合并时用a标记类型值,表示需要计算过滤规则的VCF槽位。此信息存储在new中类型槽的VcfFixedRules对象。例如,可以将两者结合起来VcfFixedRules(分别包含两条和一条过滤规则),一条VcfInfoRules,一个VcfVepRules在本小插图前面定义:

vignetteRules <- VcfFilterRules(fixedRules, SNPrule, infoRules, vepInsertionFilter
长度为6的VcfFilterRules(6):传递qual20 SNP样本avgSuperPopAF isinsert
活动(vignetteRules)
##传递qual20 SNP样本avgSuperPopAF ## TRUE FALSE TRUE TRUE TRUE ## isinsert ## TRUE
类型(vignetteRules)
##通过qual20 SNP样本avgSuperPopAF ##“fixed”“fixed”“fixed”“info”“info”## isinsert ##“vep”
概要(evalseparate (vignetteRules, evcf, enclos = .GlobalEnv))
## pass qual20 SNP samples avgSuperPopAF ## Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical ## TRUE:481 TRUE:481 FALSE:14 TRUE:481 FALSE:452 ## TRUE: 467 TRUE: 29 ## isinsert ## Mode:logical ## FALSE:477 ## TRUE:4

很明显1下面这句话会更明显,如果总结方法显示的结果evalSeparately就像在R会话中一样。,VCF滤波规则单核苷酸多态性而且isInsertion互斥,这就解释了期末考试0过滤后剩下的变量。方便的是,这些规则中的任何一个都可以在计算剩余的活动筛选规则之前被禁用:

active(vignetteRules)["SNP"] <- FALSE summary(evalseparate (vignetteRules, evcf, enclos = .GlobalEnv))
## pass qual20 SNP samples avgSuperPopAF ##模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式:逻辑模式## TRUE:481 TRUE:481 TRUE:481 FALSE:452 ## TRUE: 29 ## isinsert ##模式:逻辑## FALSE:477 ## TRUE:4

因此,停用的筛选规则(“国民党”)现已返回真正的对于所有变体,都要留一个final2变体2同样,这个陈述将受益于的结果evalSeparately与R会话显示相同。传递剩下的活动筛选规则:

  • INFO/FILTER等于“通过”
  • INFO/NS大于数据集中样本数量的90%
  • 超群体平均等位基因频率大于0.05
  • 整体VEP预测VARIANT_CLASS等于“插入”

最后,下面的代码块将演示如何操作VcfFilterRules也可能是由VcfFilterRules,或者使用它们自己,或者使用任何定义更具体的类VCF滤波规则.值得注意的是,当VcfFilterRules对象被组合,即类型而且活跃的每个过滤规则的值传递给合并对象:

结合VcfFilterRulesVcfVepRules

combinedFilters <- VcfFilterRules(vignetteRules, # VcfFilterRules missenseFilter # VcfVepRules) type(vignetteRules)
##通过qual20 SNP样本avgSuperPopAF ##“fixed”“fixed”“fixed”“info”“info”## isinsert ##“vep”
类型(combinedFilters)
##通过qual20 SNP样本avgSuperPopAF ##“fixed”“fixed”“fixed”“info”“info”## isinsert精确的grepl ##“vep”“vep”“vep”“vep”
活动(vignetteRules)
##传递qual20 SNP样本avgSuperPopAF ## TRUE FALSE FALSE TRUE TRUE ## isinsert ## TRUE
活动(missenseFilter)
##确切的grepl ## TRUE TRUE
活动(combinedFilters)
## pass qual20 SNP samples avgSuperPopAF ## TRUE FALSE FALSE TRUE TRUE ## isinsert exact grepl ## TRUE TRUE TRUE

结合多个VcfFilterRulesVcfFilterRules(更多)

为了演示这个动作,另一个VcfFilterRules必须首先创建。这可以通过简单地重新输入VcfVepRules前面定义:

secondVcfFilter <- VcfFilterRules(missenseFilter) secondVcfFilter
## VcfFilterRules长度为2 ## names(2):确切的grepl

现在可以将两者结合起来VcfFilterRules.让我们甚至结合另一个VcfInfoRules对象:

manyRules <- VcfFilterRules(vignetteRules, # VcfFilterRules secondVcfFilter, # VcfFilterRules funFilter # VcfInfoRules) manyRules
长度为9的VcfFilterRules (9): pass qual20 SNP样本avgSuperPopAF isinsert精确的grepl commonSuperPops
活动(manyRules)
##传递qual20 SNP样本avgSuperPopAF ## TRUE FALSE FALSE TRUE TRUE ## isInsertion exact grepl commonSuperPops ## TRUE TRUE TRUE TRUE
类型(manyRules)
## pass qual20 SNP样本avgSuperPopAF ##“fixed”“fixed”“fixed”“info”“info”## isinsert精确的grepl commonSuperPops ##“vep”“vep”“vep”“info”
summary(evalseparate (manyRules, evcf, enclos = .GlobalEnv))
## pass qual20 SNP samples avgSuperPopAF ## Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical ## TRUE:481 TRUE:481 TRUE:481 TRUE:481 FALSE:452 ## isinsert exact grepl commonSuperPops ## Mode:logical Mode:logical Mode:logical Mode:logical Mode:logical ## FALSE:477 FALSE:454 FALSE:452 FALSE:464 ## TRUE:4 TRUE: 27 TRUE: 29 TRUE: 17

重要的是,用户必须小心组合规则所有兼容类VCF将在其中求值的对象(即。CollapsedVCFExpandedVCF).

7会话信息

这是的输出sessionInfo ()在编译本文件的系统上:

## R版本4.2.2(2022-10-31)##平台: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]stats graphics grDevices utils datasets methods基础## ##其他附加包:## [1]TVTB_1.24.0 knitr_1.41 BiocStyle_2.26.0 ## ##通过命名空间加载(且未附加):# # # # [1] colorspace_2.0-3 rjson_0.2.21 [3] deldir_1.0-6 ellipsis_0.3.2 # # [5] htmlTable_2.4.1 biovizBase_1.46.0 # # [7] XVector_0.38.0 GenomicRanges_1.50.1 # # [9] base64enc_0.1-3 dichromat_2.0 - 0.1 # # [11] rstudioapi_0.14 farver_2.1.1 # # [13] bit64_4.0.5 AnnotationDbi_1.60.0 # # [15] fansi_1.0.3 xml2_1.3.3 # # [17] codetools_0.2-18 splines_4.2.2 # # [19] cachem_1.0.6 Formula_1.2-4 # # [21] jsonlite_1.8.4 Rsamtools_2.14.0 # # [23] cluster_2.1.4 dbplyr_2.2.1 # # [25] png_0.1-8 BiocManager_1.30.19 # # [27]compiler_4.2.2 httr_1.4.4 ## [29] backports_1.4.1 assertthat_0.2.1 ## [31] Matrix_1.5-3 fastmap_1.1.0 ## [33] lazyeval_0.2.2 limma_3.54.0 ## [35] cli_3.4.1 htmltools_0.5.4 ## [37] prettyunits_1.1.1 tools_4.2.2 ## [39] gtable_0.3.1 glue_1.6.2 ## [41] GenomeInfoDbData_1.2.9 reshape2_1.4.4 ## [43] dplyr_1.0.10 rappdirs_0.3.3 ## [45] Rcpp_1.0.9 Biobase_2.58.0 ## [47] jquerylib_0.1.4 vctrs_0.5.1 ## [49] Biostrings_2.66.0 rtracklayer_1.58.0 ## [51] xfun_0.35 stringr_1.5.0 ## [53] ensemblVEP_1.40.0 lifecycle_1.0.3 ## [55] ensembldb_2.22.0 restfulr_0.0.15 ## [57] XML_3.99-0.13 zlibbioc_1.44.0 ## [59] scales_1.2.1 BSgenome_1.66.1 ## [61] VariantAnnotation_1.44.0 ProtGenerics_1.30.0 ## [63] hms_1.1.2 MatrixGenerics_1.10.0 ## [65] parallel_4.2.2 SummarizedExperiment_1.28.0 ## [67] AnnotationFilter_1.22.0 RColorBrewer_1.1-3 ## [69] yaml_2.3.6 curl_4.3.3 ## [71] gridExtra_2.3 memoise_2.0.1 ## [73] ggplot2_3.4.0 pander_0.6.5 ## [75] sass_0.4.4 rpart_4.1.19 ## [77] biomaRt_2.54.0 reshape_0.8.9 ## [79] latticeExtra_0.6-30 stringi_1.7.8 ## [81] RSQLite_2.2.19 highr_0.9 ## [83] S4Vectors_0.36.1 BiocIO_1.8.0 ## [85] checkmate_2.1.0 GenomicFeatures_1.50.3 ## [87] BiocGenerics_0.44.0 filelock_1.0.2 ## [89] BiocParallel_1.32.4 GenomeInfoDb_1.34.4 ## [91] rlang_1.0.6 pkgconfig_2.0.3 ## [93] matrixStats_0.63.0 bitops_1.0-7 ## [95] evaluate_0.18 lattice_0.20-45 ## [97] labeling_0.4.2 htmlwidgets_1.5.4 ## [99] GenomicAlignments_1.34.0 bit_4.0.5 ## [101] tidyselect_1.2.0 GGally_2.1.2 ## [103] plyr_1.8.8 magrittr_2.0.3 ## [105] bookdown_0.30 R6_2.5.1 ## [107] magick_2.7.3 IRanges_2.32.0 ## [109] generics_0.1.3 Hmisc_4.7-2 ## [111] DelayedArray_0.24.0 DBI_1.1.3 ## [113] withr_2.5.0 pillar_1.8.1 ## [115] foreign_0.8-84 survival_3.4-0 ## [117] KEGGREST_1.38.0 RCurl_1.98-1.9 ## [119] nnet_7.3-18 tibble_3.1.8 ## [121] crayon_1.5.2 interp_1.1-3 ## [123] utf8_1.2.2 BiocFileCache_2.6.0 ## [125] rmarkdown_2.18 jpeg_0.1-10 ## [127] progress_1.2.2 grid_4.2.2 ## [129] data.table_1.14.6 blob_1.2.3 ## [131] digest_0.6.30 EnsDb.Hsapiens.v75_2.99.0 ## [133] stats4_4.2.2 munsell_0.5.0 ## [135] Gviz_1.42.0 bslib_0.4.1

参考文献

麦克拉伦,W., B.普里查德,D.里奥斯,Y.陈,P.弗利克和F.坎宁安,2010。“用集成API和SNP效应预测器推导基因组变异的后果。”期刊文章。生物信息学26(16): 2069-70。https://doi.org/10.1093/bioinformatics/btq330