GenBank格式 (skbio.io.format.genbank )¶
GenBank格式(GenBank平面文件格式)将序列及其注释存储在一起。注释部分的开始用一条以单词“轨迹”开头的线标记。序列的开始部分用一个以单词“ORIGIN”开头的行来标记,而该部分的结尾则用一个只有“//”的行来标记。
GenBank文件通常以.gb结尾,有时以.gbk结尾。蛋白质的GenBank格式已改名为GenPept。GenBank(用于核苷酸)和Genpept基本上是相同的格式。这里可以看到GenBank文件的一个例子 [1].
格式支持¶
有嗅探员:是的
读者 |
writer |
对象类 |
|---|---|---|
是的 |
是的 |
|
是的 |
是的 |
|
是的 |
是的 |
|
是的 |
是的 |
|
是的 |
是的 |
发电机 |
格式规范¶
状态:从0.4.1开始试验。
前面的节 FEATURES¶
之前的所有章节 FEATURES 将被读入 metadata . 节的头及其内容作为一对键和值存储在 metadata . 对于 REFERENCE 节,其值以列表形式存储,因为在一个GenBank记录中通常有多个引用节。
FEATURES 部分¶
国际核苷酸序列数据库合作组织 [2]) 是DDBJ、EMBL和GenBank的共同努力。这些组织在它们的纯文本平面文件格式中都使用相同的“特征表”布局,这些格式都有详细的文档记录 [3]. 功能键及其限定符也在本网页中介绍 [4].
这个 FEATURES 节将存储在 interval_metadata 属于 Sequence 或者它的子类。每个子部分存储为 Interval 中的对象 interval_metadata .每个 Interval 对象具有 metadata 在小节中保留此功能的信息。
为了规范多种格式(目前只有INSDC Feature Table和GFF3)之间的词汇表来存储区间特征的元数据,我们在将一些格式的术语解析到内存中时,将它们重命名为相同的通用名称,如下表所述:
INSDC特征表 |
GFF3列或属性 |
密钥已存储 |
存储的值类型 |
描述 |
|---|---|---|---|---|
推论 |
来源(第2列) |
来源 |
STR |
用于生成此特征的算法或实验 |
功能键 |
类型(第3列) |
类型 |
STR |
功能的类型 |
不适用 |
得分(第6栏) |
分数 |
浮动 |
特征的分数 |
不适用 |
钢绞线(第7列) |
搁浅 |
STR |
特性的链。+对于正链,-对于负链,以及。对于不搁浅的功能部件。另外?可用于未知特征,但可用于相关特征。 |
codon_start |
阶段(第8列) |
阶段 |
利息 |
相对于该特征的第一个基,编码特征的第一个完整密码子可以找到的偏移量。在GFF3中为0、1或2,在GenBank中为1、2或3。存储的值为0、1或2,以下为GFF3格式。 |
db_xref |
数据库外部参照 |
db_xref |
str列表 |
数据库交叉引用 |
不适用 |
ID |
ID |
STR |
功能ID |
笔记 |
注意 |
笔记 |
STR |
任何评论或附加信息 |
翻译 |
不适用 |
翻译 |
STR |
CDS特征的蛋白质序列 |
Location 一串¶
在特征表中定义了5种类型的位置描述符。这解释了如何将它们解析为 Interval 对象(请注意,它将基于1的坐标转换为基于0的坐标):
一个单一的基数。e、 g.67。它被解析为
(66, 67).两个相邻基地之间的地点。e、 公元67^68年。它被解析为
(66, 67).一个范围内的单一基地。e、 g.67.89。它被解析为
(66, 89).定义序列跨度的一对基数。e、 g.67..89。它被解析为
(66, 89).一个远程序列标识符,后跟上面定义的位置描述符。e、 g.J00123.1:67..89。这将被丢弃,因为它不在当前序列中。当它与J00123.1:67..89200..209之类的局部描述符组合时,局部部分将保持为
(199, 209).
备注
位置字符串完全存储在 Interval.metadata 带钥匙 __location . 以开头的键 __ 是“私有”的,应小心修改。
ORIGIN 部分¶
中的序列 ORIGIN 对于从NCBI下载的GenBank文件,节始终是小写的。对于RNA分子, t (胸腺嘧啶),而不是 u (尿嘧啶)用于序列中。所有GenBank编写器在编写GenBank文件时都遵循这些约定。
格式参数¶
读卡器特定参数¶
这个 constructor 参数可以与 Sequence generator指定解析的每个GenBank记录的内存类型。 constructor 应该是 Sequence 或者是 Sequence . 它也可以通过轨迹线上的单位标签来检测。例如,如果是 bp ,它将被读入 DNA 如果是 aa ,它将被读入 Protein . 否则,它将被读入 Sequence . 此默认行为由设置覆盖 constructor .
lowercase 是所有GenBank阅读器都可用的另一个参数。默认设置为 True 在 ORIGIN 按小写字母顺序排列。此参数传递给 Sequence 或者它的子类构造函数。
seq_num 是与一起使用的参数 Sequence , DNA , RNA 和 Protein GenBank阅读器。它指定从包含多个记录的GenBank文件中读取哪个GenBank记录。
示例
读写GenBank文件¶
假设我们修改了以下GenBank文件示例 [5]:
>>> gb_str = '''
... LOCUS 3K1V_A 34 bp RNA linear SYN 10-OCT-2012
... DEFINITION Chain A, Structure Of A Mutant Class-I Preq1.
... ACCESSION 3K1V_A
... VERSION 3K1V_A GI:260656459
... KEYWORDS .
... SOURCE synthetic construct
... ORGANISM synthetic construct
... other sequences; artificial sequences.
... REFERENCE 1 (bases 1 to 34)
... AUTHORS Klein,D.J., Edwards,T.E. and Ferre-D'Amare,A.R.
... TITLE Cocrystal structure of a class I preQ1 riboswitch
... JOURNAL Nat. Struct. Mol. Biol. 16 (3), 343-344 (2009)
... PUBMED 19234468
... COMMENT SEQRES.
... FEATURES Location/Qualifiers
... source 1..34
... /organism="synthetic construct"
... /mol_type="other RNA"
... /db_xref="taxon:32630"
... misc_binding 1..30
... /note="Preq1 riboswitch"
... /bound_moiety="preQ1"
... ORIGIN
... 1 agaggttcta gcacatccct ctataaaaaa ctaa
... //
... '''
现在我们可以把它理解为 DNA 对象:
>>> import io
>>> from skbio import DNA, RNA, Sequence
>>> gb = io.StringIO(gb_str)
>>> dna_seq = DNA.read(gb)
>>> dna_seq
DNA
-----------------------------------------------------------------
Metadata:
'ACCESSION': '3K1V_A'
'COMMENT': 'SEQRES.'
'DEFINITION': 'Chain A, Structure Of A Mutant Class-I Preq1.'
'KEYWORDS': '.'
'LOCUS': <class 'dict'>
'REFERENCE': <class 'list'>
'SOURCE': <class 'dict'>
'VERSION': '3K1V_A GI:260656459'
Interval metadata:
2 interval features
Stats:
length: 34
has gaps: False
has degenerates: False
has definites: True
GC-content: 35.29%
-----------------------------------------------------------------
0 AGAGGTTCTA GCACATCCCT CTATAAAAAA CTAA
因为这是一个核糖开关分子,我们可以把它解读为 RNA . 就像GenBank文件通常所说的那样 t 而不是 u 在序列中,我们可以把它理解为 RNA 通过转换 t 到 u :
>>> gb = io.StringIO(gb_str)
>>> rna_seq = RNA.read(gb)
>>> rna_seq
RNA
-----------------------------------------------------------------
Metadata:
'ACCESSION': '3K1V_A'
'COMMENT': 'SEQRES.'
'DEFINITION': 'Chain A, Structure Of A Mutant Class-I Preq1.'
'KEYWORDS': '.'
'LOCUS': <class 'dict'>
'REFERENCE': <class 'list'>
'SOURCE': <class 'dict'>
'VERSION': '3K1V_A GI:260656459'
Interval metadata:
2 interval features
Stats:
length: 34
has gaps: False
has degenerates: False
has definites: True
GC-content: 35.29%
-----------------------------------------------------------------
0 AGAGGUUCUA GCACAUCCCU CUAUAAAAAA CUAA
>>> rna_seq == dna_seq.transcribe()
True
>>> with io.StringIO() as fh:
... print(dna_seq.write(fh, format='genbank').getvalue())
LOCUS 3K1V_A 34 bp RNA linear SYN 10-OCT-2012
DEFINITION Chain A, Structure Of A Mutant Class-I Preq1.
ACCESSION 3K1V_A
VERSION 3K1V_A GI:260656459
KEYWORDS .
SOURCE synthetic construct
ORGANISM synthetic construct
other sequences; artificial sequences.
REFERENCE 1 (bases 1 to 34)
AUTHORS Klein,D.J., Edwards,T.E. and Ferre-D'Amare,A.R.
TITLE Cocrystal structure of a class I preQ1 riboswitch
JOURNAL Nat. Struct. Mol. Biol. 16 (3), 343-344 (2009)
PUBMED 19234468
COMMENT SEQRES.
FEATURES Location/Qualifiers
source 1..34
/db_xref="taxon:32630"
/mol_type="other RNA"
/organism="synthetic construct"
misc_binding 1..30
/bound_moiety="preQ1"
/note="Preq1 riboswitch"
ORIGIN
1 agaggttcta gcacatccct ctataaaaaa ctaa
//
引用