内容

1基本用法

简单地说,genbankrpackage将NCBI的GenBank (gb/gbk)格式的文件解析为R。

主要的工作机器由readGenBank函数,该函数接受GenBank文件(通过文件参数)或GenBank格式的原始文本(通过文本参数)。

suppressPackageStartupMessages(library(genbankr)) smpfile = system.file("sample. file ")gbk", package="genbank ") gb = readGenBank(smpfile)
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
没有从genbank文件读取外显子。假设CDS部分是完整的外显子
没有发现转录本特征(mRNA),使用cds的跨度
## fill_stack_df(feat [!]typs %in% c(“基因”,“外显子”,“CDS”,##“变异”,:得到意外的多值字段(s) [rpt_type]。生成的##列将属于CharacterList类,而不是vector类。如果列出的字段需要多值或有意义,请联系维护者。
gb
人类疱疹病毒5株VR1814,全基因组。##编号:GU179289 ## 1总长度序列:235233 ## 174个基因## 170个转录本## 191个外显子/cds元件## 61个变异## 24个其他特征

readGenBank生成一个GenBankFull对象,其中包含注释和起源序列。genbankr方法,用于AnnotationDbi用于从对象中检索信息的API函数。

我们可以通过同名函数检索基因:

基因(gb)
## GRanges对象,174个范围和5个元数据列:## seqnames范围链|型基因##    | <字符> <字符> ## [1]VR1814[1232,2164] + |基因RL1 ## [2] VR1814[2353,4863] - |基因RNA2.7 ## [3] VR1814[5253,5539] - |基因RL5A ## [4] VR1814[5888,6223] - |基因RL6 ## [5] VR1814[6622,7677] - |基因RNA1.2 ## ... ... ... ... . ... ...# # [170] VR1814(229242、229793)+ |基因US32 # # [171] VR1814(229995、230168)+ |基因US33A # # [172] VR1814(230337、230828)+ |基因US34 # # [173] VR1814(230822、231016)+ |基因US34A # # [174] VR1814(231986、234349)- - - - - - |基因TRS1 # # loctype注意gene_id # # <人物> <人物> <人物> # #[1]正常< NA > RL1 # #[2]正常< NA > RNA2.7 # #[3]正常< NA > RL5A # #[4]正常< NA > RL6 # #[5]正常< NA > RNA1.2  ## ... ... ... ...## [170] normal  US32 ## [171] normal  US33A ## [172] normal  US34 ## [173] normal  US34A ## [174] normal推定β基因;直接早基因TRS1 ## ------- ## seqinfo: 1序列来自GU179289.1基因组

我们也可以对外显子、cds元素和转录子做同样的事情(代码运行,但为简洁起见省略输出):

cd (gb)外显子(gb)转录本(gb)

我们还可以访问不在标准TxDb API中的元素,例如不适合任何其他类别的变量和特性:

变异(gb) otherFeatures (gb)

此外,我们还可以通过访问器访问头级信息:

加入(gb)
## [1] " gu179289 "
更小(gb)
# #加入。GenInfoID ## "GU179289.1" "270355759"

我们可以得到a的seqinfoGenBankAnnot/GenBankFull对象:

seqinfo (gb)
## seqnames seqlengthiscircular genome ## VR1814 235233 FALSE GU179289.1

最后,我们可以从a得到序列本身GenBankFull对象:

getSeq (gb)
一个长度为1的DNAStringSet实例,命名为235233 CCATTCCGGGCCGCGTGCTG…CGCCAGTGCGGGACAGGGCT VR1814

2低级解析

虽然推荐使用和集成Bioconductor机制,但我们还通过主力提供低级解析功能parseGenBank函数。这个函数返回一个大致对应于genbank格式本身的顶级标题的列表结构:

pg = parseGenBank(smpfile) str(pg,最大。等级= 1)
## 10 ## $基因座:chr“基因座GU179289 235233 bp DNA线性VRL 09-MAY-2013”## $ FEATURES: 429 ## ..[list output truncated] ##…- attr(*, "dim")= int 429 ## ..- attr(*, "dimnames")= 1 ## $ ORIGIN:正式类'DNAStringSet'[包"Biostrings"] 5插槽## $加入:chr "GU179289" ## $评论:NULL ## $定义:chr "人类疱疹病毒5株VR1814,完整的基因组。"##关键字:chr NA ## $引用:NULL ## $来源:列表的3 ## $版本:命名chr [1:2] "GU179289.1" "270355759" ## ..- attr(*, "names")= CHR[1:2] "添加。版本GenInfoID”

3.保留基因组序列

如果需要的话,readGenBank而且parseGenBank可以通过指定而省略生物体的完整序列吗ret.seq = FALSE.在这种情况下,readGenBank返回一个GenBankAnnot对象,而不是对象GenBankFull

gbf = readGenBank(smpfile, ret.seq = FALSE)
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
没有从genbank文件读取外显子。假设CDS部分是完整的外显子
没有发现转录本特征(mRNA),使用cds的跨度
## fill_stack_df(feat [!]typs %in% c(“基因”,“外显子”,“CDS”,##“变异”,:得到意外的多值字段(s) [rpt_type]。生成的##列将属于CharacterList类,而不是vector类。如果列出的字段需要多值或有意义,请联系维护者。
gbf
人类疱疹病毒5株VR1814,全基因组。##编号:GU179289 ## 1总长度序列:235233 ## 174个基因## 170个转录本## 191个外显子/cds元件## 61个变异## 24个其他特征

上面讨论的所有访问器方法都适用于GenBankFull对象就像他们做的那样GenBankAnnot对象。

4导入Rtracklayer样式

我们还提供了一种方便的使用方法rtracklayer进口读取GenBank文件的样式机制:

gbkfile = GenBankFile(smpfile) gb2 = import(gbkfile)
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
没有从genbank文件读取外显子。假设CDS部分是完整的外显子
没有发现转录本特征(mRNA),使用cds的跨度
## fill_stack_df(feat [!]typs %in% c(“基因”,“外显子”,“CDS”,##“变异”,:得到意外的多值字段(s) [rpt_type]。生成的##列将属于CharacterList类,而不是vector类。如果列出的字段需要多值或有意义,请联系维护者。

5通过Versioned Accession获取和解析GenBank信息

genbankr提供了GBAccession类和构造函数,用于表示版本化的核核登录号。

gba = GBAccession("U49845.1") gba
GenBank登录号:U49845.1

这些接入对象可以直接传递给readGenBank:

readGenBank (gba,部分= TRUE)
##加载所需的命名空间:rentrez
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
##基因不能用于所有CDS范围,使用内部分组id
没有从genbank文件读取外显子。假设CDS部分是完整的外显子
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
酿酒酵母TCP1-beta基因,部分cds;和Axl2p (AXL2)和Rev7p (REV7)基因,完全cds。##编号:U49845 ## 1总长度序列:5028 ## 2基因## 3转录本## 3外显子/cds元件## 0变异## 0其他特征

6只检索原始序列

genbankr也提供了一种只提取生物体序列的快速途径。我们可以打电话getSeq在一个GenBankFileGBAccession对象

getSeq (gbkfile)
一个长度为1的DNAStringSet实例,命名为235233 CCATTCCGGGCCGCGTGCTG…CGCCAGTGCGGGACAGGGCT VR1814

此外,我们可以指定ret.anno = FALSEparseGenBank

parseGenBank (smpfile ret.anno = FALSE)
一个长度为1的DNAStringSet实例,命名为235233 CCATTCCGGGCCGCGTGCTG…CGCCAGTGCGGGACAGGGCT VR1814

7从genbank注释创建TxDb对象

genbankr提供了makeTxDbFromGenBank函数,该函数接受GenBankRecordGBAccession对象,并返回TxDb注释的。

gbr = readGenBank(smpfile)
##注释没有“locus_tag”标签,使用“gene”作为gene_id列
没有从genbank文件读取外显子。假设CDS部分是完整的外显子
没有发现转录本特征(mRNA),使用cds的跨度
## fill_stack_df(feat [!]typs %in% c(“基因”,“外显子”,“CDS”,##“变异”,:得到意外的多值字段(s) [rpt_type]。生成的##列将属于CharacterList类,而不是vector类。如果列出的字段需要多值或有意义,请联系维护者。
tx = makeTxDbFromGenBank(gbr)
##警告:RSQLite::dbGetPreparedQuery()已弃用,请切换到## DBI::dbGetQuery(params = bind.data)
##警告:查询中未使用命名参数:internal_chrom_id, chrom, ## length, is_circular
##警告:查询中未使用命名参数:internal_id, name, type, ## chrom, strand, start, end
##警告:查询中未使用命名参数:internal_id, name, chrom, ## strand, start, end
##警告:查询中未使用命名参数:internal_tx_id, exon_rank, ## internal_exon_id, internal_cds_id
##警告:查询中未使用命名参数:gene_id, internal_tx_id
tx
TxDb对象:TxDb类型:TxDb支持包:GenomicFeatures ## #接入。GenInfoID: 270355759基因组:GU179289.1来源:NCBI (GenBank)定义:人类疱疹病毒5株VR1814,完整基因组。## #由Bioconductor的:genbankr包生成的数据库内容## # genbankr创建时的版本:1.2.1 ##转录t_nrow: 170 ## exon_nrow: 189 ## cds_nrow: 191 ##由Bioconductor的:GenomicFeatures包创建的数据库## #创建时间:2017-03-17 23:19:26 -0400(2017年3月17日周五)##基因组特性创建时的版本:1.26.3 ## RSQLite创建时的版本:1.1-2 ## DBSCHEMAVERSION: 1.1

8细节和注意事项

通常情况下,GenBank文件不包含详尽的注释。例如,包含CDS注释的文件通常没有单独的转录特性。此外,染色体并不总是被命名的,特别是在只有一条染色体的生物体中。genbank如何处理此类情况的细节如下:

在有注释的CDS文件中,单独的外显子没有注释,“近似外显子”被定义为每个CDS中的单个连续元素。目前,即使在某些基因的外显子没有被CDS注释的情况下,也没有进行近似外显子和显式注释外显子的混合。

在不存在转录本的文件中,使用由外显子组所跨越的范围定义的“近似转录本”。目前,我们不支持从包含实际转录本注释的CDS文件中生成近似转录本,即使这些注释不包括所有带有CDS/外显子注释的基因。

特征(基因、cds、变体等)被假定包含在最近的先前的源特征(染色体/ DNA的物理片段)中。源特征的染色体名称(最终GRanges}/VRanges中的序列名)确定如下:

  1. “染色体”属性,如(例如,“chr1”);
  2. ' strain '属性,结合自动生成的计数(例如," VR1814:1 ");
  3. “有机体”属性,结合自动生成的计数(例如“人类疱疹病毒5:1”)

一些GenBank文件不包括原始序列。在这些情况下,不支持变化特征,因为没有自包含的方法来确定引用序列,而且特征本身通常只包含alt信息(如果有的话)。在包含变化特征但没有原始序列的文件的情况下,这些特征将被忽略并发出警告。

目前,来自GenBank文件头的一些信息,主要是引用和基于作者的信息,没有被捕获和返回。如果您有此类信息的直接用例,请联系维护者。

9性能

我们努力使genbankr解析器尽可能高效。在我们的本地机器上,解析一个19MB的genbank文件需要2-3分钟。也就是说,这个包没有经过测试,可能不适合处理超大的genbank文件。在这种情况下,我们建议以不同的格式获取注释。