内容

1版本信息

R版本: R版本4.2.1 (2022-06-23)
Bioconductor版本: 3.16
包版本: 1.23.0
创建: 2017年9月5日
修改后的: 2021年1月7日

2背景

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

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

3.设置

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

库(VariantAnnotation)库(org.Hs.eg.db)库(TxDb.Hsapiens.UCSC.hg19.knownGene)库(BSgenome.Hsapiens.UCSC.hg19)库(polyfen . hsapiens . dbsnp131)

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

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

4探索TRPV基因家族的变异

该工作流程的重点是位于17号染色体上的瞬时受体潜在香草(TRPV)基因家族中的变体。我们使用包含在“变体”包中的VCF文件,并代表来自CEU群体的单个个体的46个个体的17号染色体的“完整基因组多样性”面板数据。

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

4.1检查vcf文件中的头数据

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

hdr <- scanVcfHeader(file) info(hdr)
## DataFrame with 3 row and 3 columns ## Number Type Description ##    ## NS 1 Integer Number of Samples Wi..## DP 1整数总深度## DB 0标志dbSNP成员,bu..
基因族群(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 <- keepSeqlevels(txdb, "chr17")

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

txbygene <- transcriptsBy(txdb, "gene")

创建TRPV基因的基因范围

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

回到顶部

4.4提取变量子集

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

seqinfo (gnrng)
## seqnames seqlengthiscircular genome ## chr17 81195210 NA hg19
seqlevels(gnrng) <- sub("chr", "", seqlevels(gnrng)) genome(gnrng) <- "B37" seqinfo(gnrng)
## seqnames seqlengthiscircular genome ## 17 81195210 NA B37
## seqlevelsStyle(gnrng) <- "NCBI" param <- 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, param = 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
seqinfo (vcf)
## Seqinfo对象,包含B37基因组的25个序列;no seqlength: ## seqnames seqlength isCircular genome ## 1   B37 ## 2   B37 ## 3   B37 ## 4   B37 ## 5   B37 ## ... ... ... ...# # 21 < NA > < NA > B37 # # 22 < NA > < NA > B37 # # X < NA > < NA > B37 # # Y < NA > < NA > B37 # # M < NA > < NA > B37
基因组(vcf) <——“hg19”seqlevels (vcf) < -子(“([[数位:]]+)”,“科\ \ 1”,seqlevels (vcf) seqinfo (vcf)
## hg19基因组25个序列的Seqinfo对象;no seq# # seqnames seqiscircular genome ## chr1   hg19 ## chr2   hg19 ## chr3   hg19 ## chr4   hg19 ## chr5   hg19 ## ... ... ... ...## chr21   hg19 ## chr22   hg19 X   hg19 Y   hg19 M   hg19
## seqlevelsStyle(vcf) <- "UCSC" vcf <- keepSeqlevels(vcf, "chr17")

回到顶部

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

是否有任何变异与一个以上的基因匹配?geneByQuery <- sapply(split(所有$GENEID,所有$QUERYID),唯一)table(length (geneByQuery) > 1)
## ##假真## 176 193
queryByGene <- sapply(split(all$QUERYID, all$GENEID), unique) table(length (queryByGene) > 1)
## ##假的真## 1 12
酸式焦磷酸钠(queryByGene、长度)
## 100141515 10801 125144 147138 162514 23210 23729 51393 ## 46 139 1 111 57 10 25 ## 56985 57690 6427 7442 84690 ## 22 162 10 29 16
##根据基因总结变量位置:sapply(names(queryByGene), function(nm) {d <- all[所有$GENEID %in% nm, c("QUERYID", " location ")] table(d$ location [duplicate (d) == FALSE])})
# # 100141515 10801 125144 147138 162514 23210 23729 51393 56985 57690 # # spliceSite 0 0 0 0 2 0 0 0 0 0 # #基因内区46 139 0 111 0 10 0 0 22 162 # # fiveUTR 0 0 0 0 2 0 0 1 0 0 # # threeUTR 0 0 0 0 0 2 1 0 0 # # 25编码0 0 0 0 5 0 0 3 0 0 # #基因间的0 0 0 0 0 0 0 0 0 0 # #子0 0 1 0 0 0 0 0 0 # # 23日6427 7442 84690 # # spliceSite 0 1 0 # #基因内区10 0 0 # # fiveUTR 0 3 5 # # threeUTR 0 2 0 0 8 0 # # # #编码基因间的0 0 0 # #子0 15 11

回到顶部

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

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

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一样,输出为每个变体匹配一行,因此每个变体可以有多行。

是否有任何变异与一个以上的基因匹配?aageneByQuery <- split(aa$GENEID, aa$QUERYID) table(长度(sapply(aageneByQuery, unique)) > 1)
## ##错误## 17
##根据基因总结变种的数量:aaaqueryByGene <- split(aa$QUERYID, aa$GENEID, drop=TRUE) sapply(aaaqueryByGene, length)
## 162514 51393 7442 ## 37 3 56
##根据基因总结变体结果:sapply(names(aaaqueryByGene), function(nm) {d <- aa[aa$GENEID %in% nm, c("QUERYID"," consequence ")] table(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.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] variants_1.23.0 [2] PolyPhen.Hsapiens.dbSNP131_1.0.2 # # [3] RSQLite_2.2.18 # # [4] BSgenome.Hsapiens.UCSC.hg19_1.4.3 # # [5] BSgenome_1.65.4 # # [6] rtracklayer_1.57.0 # # [7] TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 # # [8] GenomicFeatures_1.49.8 # # [9] org.Hs.eg.db_3.16.0 # # [10] AnnotationDbi_1.59.1 # # [11] VariantAnnotation_1.43.3 # # [12] Rsamtools_2.13.4 # # [13] Biostrings_2.65.6 # # [14] XVector_0.37.1 # # [15] SummarizedExperiment_1.27.3 # # [16] Biobase_2.57.3 # # [17]## [22] matrixStats_0.62.0 ## [23] BiocGenerics_0.43.4 ## [24] BiocStyle_2.25.0 ## ##通过命名空间加载(并且没有附加):## [1] bitops_1.0-7 bit64_4.0.5 filelock_1.0.2 ## [4] progress_1.2.2 httr_1.4.4 tools_4.2.1 ## [10] DBI_1.1.3 tidyselect_1.2.0 prettyunits_1.1.1 ## [13] bit_4.0.4 curl_4.3.3 compiler_4.2.1 ## [13] cli_3.4.1 xml2_1.3.3 DelayedArray_0.23.2 ## [19] bookdown_0.29 sass_0.4.2 rappdirs_0.3.3 ## [25] pkgconfig_2.0.3 htmltools_0.5.3 dbplyr_2.2.1 ## [28] fastmap_1.1.0 rlang_1.0.6 jquerylib_0.1.4 ## [31] BiocIO_1.7.1## [46] BiocFileCache_2.5.2 grid_4.2.1 blob2.3 ## [49] parallel_4.2.1 crayon_1.5.2 lattice_0.20-45 ## [55] pillar_1.8.1 rjggrest_1 .2.21 codetools_0.2-18 ## [58] biomaRt_2.53.5 XML_3.99-0.12 glue_1.6.2 ## [61]evaluate_0.17 BiocManager_1.30.19 png_0.1-7 ## [64] vctrs_0.5.0 assertthat_0.2.1 cachem_1.0.6 ## [67] xfun_0.34 restfulr_0.0.15 tibble_3.1.8 ## [70] GenomicAlignments_1.33.1 memoise_2.0.1 ellipsis_0.3.2

回到顶部