GenBank格式 (skbio.io.format.genbank

GenBank格式(GenBank平面文件格式)将序列及其注释存储在一起。注释部分的开始用一条以单词“轨迹”开头的线标记。序列的开始部分用一个以单词“ORIGIN”开头的行来标记,而该部分的结尾则用一个只有“//”的行来标记。

GenBank文件通常以.gb结尾,有时以.gbk结尾。蛋白质的GenBank格式已改名为GenPept。GenBank(用于核苷酸)和Genpept基本上是相同的格式。这里可以看到GenBank文件的一个例子 [1].

格式支持

有嗅探员:是的

读者

writer

对象类

是的

是的

skbio.sequence.Sequence

是的

是的

skbio.sequence.DNA

是的

是的

skbio.sequence.RNA

是的

是的

skbio.sequence.Protein

是的

是的

发电机 skbio.sequence.Sequence 物体

格式规范

状态:从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的坐标):

  1. 一个单一的基数。e、 g.67。它被解析为 (66, 67) .

  2. 两个相邻基地之间的地点。e、 公元67^68年。它被解析为 (66, 67) .

  3. 一个范围内的单一基地。e、 g.67.89。它被解析为 (66, 89) .

  4. 定义序列跨度的一对基数。e、 g.67..89。它被解析为 (66, 89) .

  5. 一个远程序列标识符,后跟上面定义的位置描述符。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阅读器都可用的另一个参数。默认设置为 TrueORIGIN 按小写字母顺序排列。此参数传递给 Sequence 或者它的子类构造函数。

seq_num 是与一起使用的参数 SequenceDNARNAProtein 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 通过转换 tu

>>> 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
//

引用