简单地说,genbankr
package将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 ranges链|类型基因loctype ## | <字符> <字符> <字符> ## [1]VR1814 1232-2164 + |基因RL1正常## [2]VR1814 2353-4863 - |基因RNA2.7正常## [3]VR1814 5252-5539 - |基因RL5A正常## [4]VR1814 5888-6223 - |基因RL6正常## [5]VR1814 6622-7677 - |基因RNA1.2正常## ... ... ... ... . ... ... ...## [170] VR1814 229242-229793 + |基因US33A normal ## [172] VR1814 230337-230828 + |基因US34 normal ## [173] VR1814 230822-231016 + |基因US34A normal ## [174] VR1814 2386 -234349 - |基因TRS1 normal ##注gene_id ## <字符> <字符> ## [1] RL1 # [2] RNA2.7 # [3] RL5A ## [4] RL6 ## [5] RNA1.2 ## # ... ... ...## [170] US32 ## [171] US33A ## [172] US34 ## [173] US34A ##[174]假定的β基因;. .TRS1 ## ------- ## seqinfo:来自GU179289.1基因组的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对象:GCCGCCAGTGCGGGACAGGGCT VR1814
虽然推荐使用和集成Bioconductor机制,但我们还通过主力提供低级解析功能parseGenBank
函数。这个函数返回一个大致对应于genbank格式本身的顶级标题的列表结构:
pg = parseGenBank(smpfile) str(pg,最大。等级= 1)
## 10 ## $基因座:chr“基因座GU179289 235233 bp DNA线性VRL 09-MAY-2013”## $ FEATURES: 429 ## ..- 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”
如果需要的话,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
对象。
我们还提供了一种方便的使用方法rtracklayer进口
读取GenBank文件的样式机制:
gbkfile = GenBankFile(smpfile)
##警告:这个类从rtracklayer扩展了已弃用的RTLFile类。##使用BiocIO中的BiocFile代替RTLFile。
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类。如果列出的##字段需要多值或有意义,请联系##维护者。
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其他特征
genbankr
也提供了一种只提取生物体序列的快速途径。我们可以打电话getSeq
在一个GenBankFile
或GBAccession
对象
getSeq (gbkfile)
##长度为1的DNAStringSet对象:GCCGCCAGTGCGGGACAGGGCT VR1814
此外,我们可以指定ret.anno = FALSE
在parseGenBank
parseGenBank (smpfile ret.anno = FALSE)
##长度为1的DNAStringSet对象:GCCGCCAGTGCGGGACAGGGCT VR1814
genbankr
提供了makeTxDbFromGenBank
函数,该函数接受GenBankRecord
或GBAccession
对象,并返回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) tx
TxDb对象:TxDb类型:TxDb支持包:GenomicFeatures ## #接入。GenInfoID: 270355759基因组:GU179289.1来源:NCBI (GenBank)定义:人类疱疹病毒5株VR1814,完整基因组。## #由Bioconductor的:genbankr包生成的数据库内容## # genbankr创建时的版本:1.24.0 ## #转录本的数量:170 ## #由Bioconductor的:GenomicFeatures包创建的数据库## #创建时间:2022-04-26 16:42:29 -0400(2022年4月26日,周二)## #创建时的基因组功能版本:1.48.0 ## RSQLite创建时的版本:2.2.12 ## # DBSCHEMAVERSION: 1.2
通常情况下,GenBank文件不包含详尽的注释。例如,包含CDS注释的文件通常没有单独的转录特性。此外,染色体并不总是被命名的,特别是在只有一条染色体的生物体中。genbank如何处理此类情况的细节如下:
在有注释的CDS文件中,单独的外显子没有注释,“近似外显子”被定义为每个CDS中的单个连续元素。目前,即使在某些基因的外显子没有被CDS注释的情况下,也没有进行近似外显子和显式注释外显子的混合。
在不存在转录本的文件中,使用由外显子组所跨越的范围定义的“近似转录本”。目前,我们不支持从包含实际转录本注释的CDS文件中生成近似转录本,即使这些注释不包括所有带有CDS/外显子注释的基因。
特征(基因、cds、变体等)被假定包含在最近的先前的源特征(染色体/ DNA的物理片段)中。源特征的染色体名称(最终GRanges}/VRanges中的序列名)确定如下:
一些GenBank文件不包括原始序列。在这些情况下,不支持变化特征,因为没有自包含的方法来确定引用序列,而且特征本身通常只包含alt信息(如果有的话)。在包含变化特征但没有原始序列的文件的情况下,这些特征将被忽略并发出警告。
目前,来自GenBank文件头的一些信息,主要是引用和基于作者的信息,没有被捕获和返回。如果您有此类信息的直接用例,请联系维护者。
我们努力使genbankr解析器尽可能高效。在我们的本地机器上,解析一个19MB的genbank文件需要2-3分钟。也就是说,这个包没有经过测试,可能不适合处理超大的genbank文件。在这种情况下,我们建议以不同的格式获取注释。