Bio.GenBank.Scanner 模块
用于解析 GenBank 和 EMBL 文件的内部代码(私有)。
此代码不打算直接使用。它提供了一个基本的扫描器(用于与 Bio.GenBank._FeatureConsumer 等事件消费者一起使用)来解析 GenBank 或 EMBL 文件(以及它们共享的 INSDC 特征表)。
它被 Bio.GenBank 用于解析 GenBank 文件,也被 Bio.SeqIO 用于解析 GenBank 和 EMBL 文件。
特征表文档
- class Bio.GenBank.Scanner.InsdcScanner(debug=0)
基类:
object
将 GenBank/EMBL 文件分解成子部分的基本功能。
国际核酸序列数据库合作 (INSDC) 是 DDBJ、EMBL 和 GenBank 之间的合作。这些组织在他们的纯文本平面文件格式中都使用相同的“特征表”布局。
然而,EMBL 文件的标题和序列部分在布局上与 GenBank/DDBJ 生成的文件大不相同。
- RECORD_START = 'XXX'
- HEADER_WIDTH = 3
- FEATURE_START_MARKERS = ['XXX***FEATURES***XXX']
- FEATURE_END_MARKERS = ['XXX***END FEATURES***XXX']
- FEATURE_QUALIFIER_INDENT = 0
- FEATURE_QUALIFIER_SPACER = ''
- SEQUENCE_HEADERS = ['XXX']
- __init__(debug=0)
初始化类。
- set_handle(handle)
设置 handle 属性。
- find_start()
读取行,直到找到 ID/LOCUS 行,并返回该行。
任何前导信息(例如 NCBI 在
*.seq.gz
档案中使用的标题)将被忽略。
- parse_header()
返回组成标题的字符串列表。
换行符将被删除。
假设你已经读入了 ID/LOCUS 行。
- parse_features(skip=False)
返回特征的元组列表(如果有)。
每个特征都以一个元组(键、位置、限定符)的形式返回,其中键和位置是字符串(例如,“CDS”和“complement(join(490883..490885,1..879))”),而限定符是两个字符串元组的列表(特征限定符键和值)。
假设你已经读到了特征表的开头。
- parse_feature(feature_key, lines)
解析一个以字符串列表形式给定的特征,并将其转换为一个元组。
期望一个特征作为字符串列表,返回一个元组 (key, location, qualifiers)
例如,给定这个 GenBank 特征
CDS complement(join(490883..490885,1..879)) /locus_tag="NEQ001" /note="conserved hypothetical [Methanococcus jannaschii]; COG1583:Uncharacterized ACR; IPR001472:Bipartite nuclear localization signal; IPR002743: Protein of unknown function DUF57" /codon_start=1 /transl_table=11 /product="hypothetical protein" /protein_id="NP_963295.1" /db_xref="GI:41614797" /db_xref="GeneID:2732620" /translation="MRLLLELKALNSIDKKQLSNYLIQGFIYNILKNTEYSWLHNWKK EKYFNFTLIPKKDIIENKRYYLIISSPDKRFIEVLHNKIKDLDIITIGLAQFQLRKTK KFDPKLRFPWVTITPIVLREGKIVILKGDKYYKVFVKRLEELKKYNLIKKKEPILEEP IEISLNQIKDGWKIIDVKDRYYDFRNKSFSAFSNWLRDLKEQSLRKYNNFCGKNFYFE EAIFEGFTFYKTVSIRIRINRGEAVYIGTLWKELNVYRKLDKEEREFYKFLYDCGLGS LNSMGFGFVNTKKNSAR"
那么应该将输入 key=”CDS” 和其余数据作为字符串列表 lines=[“complement(join(490883..490885,1..879))”, …, “LNSMGFGFVNTKKNSAR”],其中前导空格和尾随换行符已删除。
返回包含以下内容的元组:(key 作为字符串、location 字符串、qualifiers 作为列表),例如:
key = “CDS”,string location = “complement(join(490883..490885,1..879))”,string qualifiers = string 元组列表
- [(‘locus_tag’, ‘“NEQ001”’),
(‘note’, ‘“conserved hypothetical [Methanococcus jannaschii];nCOG1583:…”’), (‘codon_start’, ‘1’), (‘transl_table’, ‘11’), (‘product’, ‘“hypothetical protein”’), (‘protein_id’, ‘“NP_963295.1”’), (‘db_xref’, ‘“GI:41614797”’), (‘db_xref’, ‘“GeneID:2732620”’), (‘translation’, ‘“MRLLLELKALNSIDKKQLSNYLIQGFIYNILKNTEYSWLHNWKKnEKYFNFT…”’)]
在上面的示例中,“note” 和 “translation” 为了简洁而进行了编辑,它们将包含多个换行符(在上文中显示为 n)。
如果限定符被引号括起来(在本例中,除了 codon_start 和 transl_table 之外),那么引号不会被删除。
请注意,不会删除任何空格。
返回一个元组,其中包含任何杂项字符串的列表以及序列。
- feed(handle, consumer, do_features=True)
将一组数据输入消费者。
此方法旨在用于 Bio.GenBank 中的“旧”代码。
- 参数
handle - 包含要解析信息的句柄。
consumer - 应该被通知事件的消费者。
do_features - 布尔值,是否应该解析特征?跳过特征可以更快。
- 返回值
true - 传递了一个记录
false - 未找到记录
- parse(handle, do_features=True)
返回一个 SeqRecord(如果 do_features=True,则包含 SeqFeatures)。
请参阅 parse_records() 方法,用于处理多记录文件。
- parse_records(handle, do_features=True)
解析记录,返回一个 SeqRecord 对象迭代器。
每个记录(从 ID/LOCUS 行到 // 行)都将成为一个 SeqRecord
如果 do_features=True,则 SeqRecord 对象将包含 SeqFeatures。
此方法旨在用于 Bio.SeqIO 中。
- parse_cds_features(handle, alphabet=None, tags2id=('protein_id', 'locus_tag', 'product'))
解析 CDS 特征,返回 SeqRecord 对象迭代器。
每个 CDS 特征都将成为一个 SeqRecord。
- 参数
alphabet - 已过时,应该保留为 None。
tags2id - 三个字符串的元组,用于记录 id、名称和描述的特征键。
此方法旨在用于 Bio.SeqIO 中。
- class Bio.GenBank.Scanner.EmblScanner(debug=0)
基类:
InsdcScanner
用于从 EMBL 文件中提取信息块。
- RECORD_START = 'ID '
- HEADER_WIDTH = 5
- FEATURE_START_MARKERS = ['FH Key Location/Qualifiers', 'FH']
- FEATURE_END_MARKERS = ['XX']
- FEATURE_QUALIFIER_INDENT = 21
- FEATURE_QUALIFIER_SPACER = 'FT '
- SEQUENCE_HEADERS = ['SQ', 'CO']
- EMBL_INDENT = 5
- EMBL_SPACER = ' '
返回一个元组,其中包含任何杂项字符串的列表以及序列。
- class Bio.GenBank.Scanner.GenBankScanner(debug=0)
基类:
InsdcScanner
用于从 GenBank 文件中提取信息块。
- RECORD_START = 'LOCUS '
- HEADER_WIDTH = 12
- FEATURE_START_MARKERS = ['FEATURES Location/Qualifiers', 'FEATURES']
- FEATURE_END_MARKERS: list[str] = []
- FEATURE_QUALIFIER_INDENT = 21
- FEATURE_QUALIFIER_SPACER = ' '
- SEQUENCE_HEADERS = ['CONTIG', 'ORIGIN', 'BASE COUNT', 'WGS', 'TSA', 'TLS']
- GENBANK_INDENT = 12
- GENBANK_SPACER = ' '
- STRUCTURED_COMMENT_START = '-START##'
- STRUCTURED_COMMENT_END = '-END##'
- STRUCTURED_COMMENT_DELIM = ' :: '
返回一个元组,其中包含任何杂项字符串的列表以及序列。
- __annotations__ = {'FEATURE_END_MARKERS': list[str]}