内容

1版本信息

R版本: R版本4.0.0 RC (2020-04-19 r78255)
Bioconductor版本: 3.12
包版本: 1.13.0

2背景

VariantAnnotation包具有读取所有或VCF文件子集的功能。这些文本文件包含元信息行、标题行和数据行,每一行都包含基因组中某个位置的信息。该格式还可以包含每个位置样本的基因型信息。有关文件格式的更多信息,请参阅VCF规格

VariantAnnotation包中的“locateVariants”函数确定了一个变体相对于基因模型的位置(例如,外显子、内含子、剪接位点等)。' predictCoding '函数报告非同义编码变体的氨基酸变化。编码变化的结果可以用SIFT和PolyPhen数据库包进行调查。我们将使用这些功能来了解染色体上TRPV基因上的变异

3.设置

这个工作流程需要几个不同的Bioconductor包。下面的部分将详细描述每种方法的使用。

库(VariantAnnotation)库(cgdv17)库(org.Hs.eg.db)库(TxDb.Hsapiens.UCSC.hg19.knownGene)库(BSgenome.Hsapiens.UCSC.hg19)库(PolyPhen.Hsapiens.dbSNP131)

使用BiocManager::install()获取你还没有安装的包:

如果(!“BiocManager”%in% rownames(installed.packages()) install.packages("BiocManager") BiocManager::install("mypackage")

4探索TRPV基因家族的变异

该工作流程的重点是位于17号染色体上的瞬时受体潜在香草(TRPV)基因家族中的变体。样本数据来自Bioconductor cgdv17实验数据包,其中包含46个个体17号染色体的完整基因组多样性面板数据。有关如何管理这些数据的更多背景信息,请参阅软件包插图。

browseVignettes(“cgdv17”)

我们使用包中的VCF文件,该文件是CEU种群中单个个体的17号染色体的子集。

文件<- system。文件("vcf", "NA06985_17.vcf.gz", package = "cgdv17")

4.1检查vcf文件中的头数据

为了了解文件中有哪些数据,我们看一下头文件。scanVcfHeader()将文件头解析为VCFHeader对象,info()和geno()访问器提取字段特定的数据。

hdr <- scanVcfHeader(file) info(hdr)
## 3行3列的数据帧##编号类型描述## <字符> <字符> <字符> ## NS 1整数带数据的样本数量## DP 1整数总深度## DB 0标记dbSNP成员,构建131
基因族群(hdr)
##数据帧12行3列##数字类型描述## <字符> <字符> <字符> ## GT 1字符串基因型## GQ 1整数基因型质量## DP 1整数读深度## HDP 2整数单倍型读深度## hq2整数单倍型质量## ... ... ... ...## mRNA。字符串重叠mRNA ## rmsk。字符串重叠重复## segup。字符串重叠分割复制## rCov 1浮动相对覆盖率## cPd 1字符串称为Ploidy(级别)

VCF中的变体已经与NCBI基因组构建GRCh37对齐:

元(hdr)
长度为6的数据aframelist (6): fileDate文件格式相位引用源contig

回到顶部

4.2将基因符号转换为基因id

使用org.Hs.eg.db包将基因符号转换为基因id。

##获取基因符号genesym <- c("TRPV1", "TRPV2", "TRPV3") genesym <- select(org. hs . e.g. .db, keys=genesym, keytype="SYMBOL", columns="ENTREZID")
## 'select()'返回键和列之间的1:1映射
geneid
##符号1 trpv1 7442 ## 2 trpv2 51393 ## 3 trpv3 162514

回到顶部

4.3创建基因范围

我们使用UCSC的hg19已知基因轨迹来识别TRPV基因范围。这些范围最终将用于从VCF文件中的区域提取变量。

加载注释包。

txdb <- txdb . hsapiens . ucsc .hg19。knownGene txdb
# # TxDb对象:# # # Db型:TxDb支持包:# # # # # # GenomicFeatures数据来源:UCSC基因组:# # # # # # hg19生物:智人# # #分类ID: 9606 # # # UCSC的表:knownGene # # #资源URL: http://genome.ucsc.edu/ # # #的基因类型ID: Entrez基因ID # # #完整数据集:是的# # # miRBase构建ID: GRCh37 # # # transcript_nrow: 82960 # # # exon_nrow: 289969 # # # cds_nrow: 237533 # # # Db由:GenomicFeatures包从Bioconductor # # #创建时间:2015-10-07 18:11:28 +0000(星期三,2015年10月07日)## #基因组特征创建时的版本:1.21.30 ## RSQLite创建时的版本:1.0.0 ## DBSCHEMAVERSION: 1.1

我们的VCF文件与NCBI的基因组进行了比对,已知的基因轨迹来自UCSC。这些机构对染色体有不同的命名惯例。为了在匹配或重叠操作中使用这两段数据,染色体名称(也称为sesqlevels)需要匹配。我们将修改txdb以匹配VCF文件。

txdb <- renameSeqlevels(txdb, gsub("chr", "", seqlevels(txdb))) txdb <- keepSeqlevels(txdb, "17")

按基因创建一个转录本列表:

txbygene = transcriptsBy(txdb,“基因”)

创建TRPV基因的基因范围

gnrng <- unlist(range(txbygene[geneid$ENTREZID]), use.names=FALSE) names(gnrng) <- geneid$SYMBOL

回到顶部

4.4提取变量子集

ScanVcfParam对象用于检索数据子集。该对象可以指定基因组坐标(范围)或单个VCF元素。范围(与字段)的提取需要一个表索引。参见?indexTabix了解详细信息。

- ScanVcfParam(which = gnrng, info = "DP", geno = c("GT", "cPd")
##类:ScanVcfParam ## vcfWhich: 1 elements ## vcfFixed: character()[所有]## vcfInfo: DP ## vcfGeno: GT cPd ## vcfSamples:
##从VCF文件中提取TRPV范围VCF <- readVcf(file, "hg19", param) ##使用'fixed', 'info'和'geno'访问器检查VCF对象
##类:折叠dvcf ## dim: 405 1 ## rowRanges(vcf): ## GRanges with 5个元数据列:paramRangeID, REF, ALT, QUAL, FILTER ## info(vcf): ## DataFrame with 1列:DP ## info(header(vcf)): ## Number Type Description ## DP 1 Integer Total Depth ## geno(vcf): ##长度列表2:GT, cPd # geno(header(vcf)): ## Number Type Description ## cPd 1 String called Ploidy(level)
头(固定(vcf))
## 6行4列的数据帧## REF ALT QUAL FILTER ##   <数字> <字符> ## 1 A G 120 PASS ## 2 A 0 PASS ## 3 AAAAA 0 PASS ## 4 AA 0 PASS ## 5 C T 59 PASS ## 6 T C 157 PASS
基因族群(vcf)
长度为2的名称列表(2):GT cPd

回到顶部

4.5基因模型中的变异位置

locateVariants函数可以识别基因结构中的变体位置,例如,外显子,utr,剪接位点等。我们使用来自txdb . hspapiens . ucsc .hg19的基因模型。knownGene包加载较早。

使用“region”参数定义感兴趣的区域。参见?locateVariants获取详细信息。cd <- locateVariants(vcf, txdb, codingvariables ()) 5 <- locateVariants(vcf, txdb, fiveutrvariables ()) splice <- locateVariants(vcf, txdb, SpliceSiteVariants())内含子<- locateVariants(vcf, txdb, intronvariables ())
all <- locatvariants (vcf, txdb, allvariables ())
##有效的警告。seqinfo (x,建议。GRanges对象包含140个超出边界的范围,位于序列## 62411、62399、62400、62401、62403、62404、62405和62407上。注意,位于长度未知(NA)的序列或##循环序列上的##范围不会被认为是超出范围的(使用seqlength()和## isCircular()来获取底层##序列的长度和循环标志)。您可以使用trim()来修剪这些范围。参见## ? ' trim,GenomicRanges-method '获取更多信息。
##“select()”返回多个:1个键和列之间的映射##“select()”返回多个:1个键和列之间的映射##“select()”返回多个:1个键和列之间的映射##“select()”返回多个:1个键和列之间的映射##“select()”返回多个:1个键和列之间的映射##“select()”返回多个:1个键和列之间的映射

cds中的每一行表示一个变体-转录匹配,因此每个变体可以有多行。如果我们对基因中心问题感兴趣,数据可以根据基因进行总结,而不考虑转录本。

是否有任何变异与一个以上的基因匹配?table(sapply(split(mcols(all)$GENEID, mcols(all)$QUERYID),函数(x)长度(唯一(x)) > 1))
## ##假真## 367 38
##根据基因总结变异数:idx <- sapply(split(mcols(all)$QUERYID, mcols(all)$GENEID), unique) sapply(idx, length)
## 125144 162514 23729 51393 7442 84690 ## 1 196 2 63 146 35
##根据基因总结变量位置:sapply(names(idx), function(nm) {d <- all[mcols(all)$GENEID %in% nm, c("QUERYID", " location ")] table(mcols(d)$ location [duplicate (d) == FALSE])})
## 125144 162514 23729 51393 7442 84690剪接0 2 0 0 10插入子0 155 0 58 118 19 ## fiveUTR 0 2 0 13 5 ## threeUTR 0 24 2 12 0 ##编码0 5 0 3 8 0 ##基因间0 0 0 0 0 0 0 0 0 0 0 15 11

回到顶部

4.6非同义变体中氨基酸编码的变化

非同义变体的氨基酸编码可以用函数predictCoding计算。BSgenome.Hsapiens.UCSC。Hg19包作为参考等位基因的来源。变异等位基因由用户提供。

seqlevelsStyle(vcf) <- "UCSC" seqlevelsStyle(txdb) <- "UCSC" aa <- predictCoding(vcf, txdb, Hsapiens)
##有效的警告。seqinfo (x,建议。GRanges对象包含140个超出边界的范围,位于序列## 62411、62399、62400、62401、62403、62404、62405和62407上。注意,位于长度未知(NA)的序列或##循环序列上的##范围不会被认为是超出范围的(使用seqlength()和## isCircular()来获取底层##序列的长度和循环标志)。您可以使用trim()来修剪这些范围。参见## ? ' trim,GenomicRanges-method '获取更多信息。
##在.predictCodingGRangesList(query, cache[["cdsbytx"]]], seqSource,: ##缺少'varAllele'的记录被忽略
##警告在. predictcodinggrangeslist(查询,缓存[["cdsbytx"]]], seqSource,: ## 'varAllele'值与'N', '。', '+'或'-'没有被翻译

predictCoding只返回编码变量的结果。与locateVariants一样,输出为每个变体匹配一行,因此每个变体可以有多行。

是否有任何变异与一个以上的基因匹配?table(sapply(split(mcols(aa)$GENEID, mcols(aa)$QUERYID),函数(x)长度(唯一(x)) > 1))
## ##错误## 17
##根据基因总结变异数:idx <- sapply(split(mcols(aa)$QUERYID, mcols(aa)$GENEID, drop=TRUE), unique) sapply(idx, length)
## 162514 51393 7442 ## 6 3 8
##根据基因总结变体结果:sapply(names(idx), function(nm) {d <- aa[mcols(aa)$GENEID %in% nm, c("QUERYID"," consequence ")] table(mcols(d)$ consequence [duplicate (d) == FALSE])})
## 162514 51393 7442 ##非同义2 0 2 ##未翻译1 0 5 ##同义3 3 1

“未翻译”的变量由调用predictCoding时抛出的警告解释。缺少变量等位基因或变量等位基因中有“N”的变体不会被翻译。如果变体等位基因取代导致了移码,那么结果将是“移码”。参见predictCoding以获取详细信息。

回到顶部

5探索包装内容

包具有广泛的帮助页面,并包括突出显示常见用例的小插图。在r中可以使用帮助页和小插图。在加载包后,使用如下语法

帮助(包=“VariantAnnotation”)? predictCoding

属性的帮助的概述VariantAnnotation软件包,以及predictCoding函数。查看包装小插图

browseVignettes(包=“VariantAnnotation”)

查看提供更全面的包功能使用介绍的小插图

help.start ()

回到顶部

6sessionInfo ()

sessionInfo ()
## R版本4.0.0 RC (2020-04-19 r78255) ##平台:x86_64-pc-linux-gnu(64位)##运行在:Ubuntu 18.04.4 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.12-bioc/R/lib/libRblas。所以## LAPACK: /home/biocbuild/bbs-3.12-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_US。UTF-8 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并行统计图形grDevices utils数据集##[8]方法基础## ##其他附加包:# # # # [1] variants_1.13.0 [2] PolyPhen.Hsapiens.dbSNP131_1.0.2 # # [3] RSQLite_2.2.0 # # [4] BSgenome.Hsapiens.UCSC.hg19_1.4.3 # # [5] BSgenome_1.57.0 # # [6] rtracklayer_1.49.0 # # [7] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 # # [8] GenomicFeatures_1.41.0 # # [9] org.Hs.eg.db_3.10.0 # # [10] AnnotationDbi_1.51.0 # # [11] cgdv17_0.25.0 # # [12] VariantAnnotation_1.35.0 # # [13] Rsamtools_2.5.0 # # [14] Biostrings_2.57.0 # # [15] XVector_0.29.0 # # [16] SummarizedExperiment_1.19.0 # # [17] DelayedArray_0.15.0[18] matrixstats_0.0.6.0 ## [21] GenomeInfoDb_1.25.0 ## [22] IRanges_2.23.0 ## [23] S4Vectors_0.27.0 ## [24] BiocGenerics_0.35.0 ## [25] BiocStyle_2.17.0 ## ##通过命名空间加载(并且没有附加):## [1] httr_1.4.1 bit64_0.9-7 assertthat_0.2.1 ## [4] askpass_1.1 BiocManager_1.30.10 BiocFileCache_1.13.0 ## [7] blob_1.2.1 GenomeInfoDbData_1.2.3 yaml_2.2.1 ## [10] progress_1.2.2 pillar_1.4.3 lattice_0.20-41 ## [13] glue_1.4.0 digest_0.6.25 htmltools_0.4.0 ## [19] Matrix_1.2-18 xml3.99 -0.3 pkgconfig_2.0.3 ## [19] biomaRt_2.45.0 bookdown_0.18 zlibbioc_1.35.0 ## [25] openssl_1.4.1 ellipsis_0.3.0 BiocParallel_1.23.0 tibble_1 .0.1 ## [28] crayon_1.3.4memoise_1.1.0 evaluate_0.14 ## [31] tools_4.0.0 prettyunits_1.1.1 hms_0.5.3 ## [37] rlang_0.4.5 grid_4.0.0 RCurl_1.98-1.2 ## [40] rappdirs_0.3.1 bitops_1.0-6 rmarkdown_2.1 ## [43] DBI_1.1.0 curl_4.3 R6_2.4.1 ## [46] GenomicAlignments_1.25.0 knitr_1.28 dplyr_0.8.5 ## [52] vctrs_0.2.4 dbplyr_1.4.3 tidyselect_1.0.0 ## [55] xfun_0.13

回到顶部