Bio.Blast.NCBIXML 模块

用于处理 BLAST XML 输出的代码。

BLAST XML DTD 文件可在 NCBI 网站上获得: https://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.dtd

用于保存 BLAST 输出的记录类

类:Blast 保存来自 blast 搜索的所有信息。PSIBlast 保存来自 psi-blast 搜索的所有信息。

Header 保存来自标题的信息。Description 保存关于一个命中描述的信息。Alignment 保存关于一个比对命中的信息。HSP 保存关于一个 HSP 的信息。MultipleAlignment 保存关于多个比对的信息。DatabaseReport 保存来自数据库报告的信息。Parameters 保存来自参数的信息。

Bio.Blast.NCBIXML.fmt_(value, format_spec='%s', default_str='<unknown>')

确保给定值正确地格式化为字符串。

class Bio.Blast.NCBIXML.Header

基础类: object

保存来自 BLAST 标题的信息。

成员:application 生成此数据的 BLAST 版本的名称。version 使用的 BLAST 版本。date 生成此数据的日期。reference BLAST 的参考。

query 查询序列的名称。query_letters 查询序列中的字母数。 (int)

database 数据库的名称。database_sequences 数据库中的序列数。 (int) database_letters 数据库中的字母数。 (int)

__init__()

初始化类。

class Bio.Blast.NCBIXML.Description

基础类: object

存储描述部分中一个命中的信息。

成员:title 命中的标题。score 比特数。 (int) bits 比特分值。 (float) e E 值。 (float) num_alignments 相同主题的比对数。 (int)

__init__()

初始化类。

__str__()

将描述作为字符串返回。

class Bio.Blast.NCBIXML.DescriptionExt

基础类: Description

BLASTXML 版本 2 的扩展描述记录。

成员:items DescriptionExtItem 列表

__init__()

初始化类。

append_item(item)

添加一个扩展描述记录。

class Bio.Blast.NCBIXML.DescriptionExtItem

基础类: object

存储 BLASTXML 版本 2 中命中描述中一个记录的信息。

成员:id 数据库标识符 title 命中的标题。

__init__()

初始化类。

__str__()

将描述标识符和标题作为字符串返回。

class Bio.Blast.NCBIXML.Alignment

基础类: object

存储比对部分中一个命中的信息。

成员:title 名称。hit_id 命中标识符。 (str) hit_def 命中定义。 (str) length 长度。 (int) hsps HSP 对象列表。

__init__()

初始化类。

__str__()

将 BLAST 比对作为格式化的字符串返回。

class Bio.Blast.NCBIXML.HSP

基础类: object

存储比对命中中一个 hsp 的信息。

成员
  • score 命中的 BLAST 分值。 (float)

  • bits 该分值的比特数。 (float)

  • expect 期望值。 (float)

  • num_alignments 相同主题的比对数。 (int)

  • identities 标识数 (int) 如果使用 XML 解析器。标识数/总比对数元组 (int, int) 如果使用 (已弃用) 纯文本解析器。

  • positives 正数 (int) 如果使用 XML 解析器。正数/总比对数元组 (int, int) 如果使用 (已弃用) 纯文本解析器。

  • gaps 间隙数 (int) 如果使用 XML 解析器。间隙数/总比对数元组 (int, int) 如果使用 (已弃用) 纯文本解析器。

  • align_length 比对长度。 (int)

  • strand (query, target) 链元组。

  • frame 1 或 2 个帧移位元组,具体取决于版本。

  • query 查询序列。

  • query_start 查询序列的起始残基。 (基于 1)

  • query_end 查询序列的终止残基。 (基于 1)

  • match 匹配序列。

  • sbjct sbjct 序列。

  • sbjct_start sbjct 序列的起始残基。 (基于 1)

  • sbjct_end sbjct 序列的终止残基。 (基于 1)

并非所有 BLAST 版本都返回每个属性的值

          score     expect     identities   positives    strand  frame
BLASTP     X          X            X            X
BLASTN     X          X            X            X          X
BLASTX     X          X            X            X                  X
TBLASTN    X          X            X            X                  X
TBLASTX    X          X            X            X                 X/X

注意:对于 BLASTX,查询序列显示为蛋白质序列,但编号基于核苷酸。因此,编号是氨基酸残基数的 3 倍。在 TBLASTN 中的 sbjct 序列以及 TBLASTX 中的两个序列中都可以看到类似的效果。

此外,对于负帧,序列编号从 query_start 开始并向下计数。

__init__()

初始化类。

__str__()

将 BLAST HSP 作为格式化的字符串返回。

class Bio.Blast.NCBIXML.MultipleAlignment

基础类: object

保存关于多个比对的信息。

成员:alignment (名称、起始残基、序列、终止残基) 元组列表。

起始残基是基于 1 的。如果该序列在多重比对中未对齐,则它可能是空白的。

__init__()

初始化类。

to_generic()

为给定的比对检索通用比对对象。

它不返回元组,而是返回来自 Bio.Align 的 MultipleSeqAlignment 对象,您可以通过该对象来操作和查询该对象。

感谢 James Casbon 提供代码。

class Bio.Blast.NCBIXML.Round

基础类: object

保存来自 PSI-BLAST 轮次的的信息。

成员:number 轮次号。 (int) reused_seqs 模型中的序列,再次找到。Description 对象列表。new_seqs 未找到的序列,或低于阈值。Description 列表。alignments Alignment 对象列表。multiple_alignment MultipleAlignment 对象。

__init__()

初始化类。

class Bio.Blast.NCBIXML.DatabaseReport

基础类: object

保存关于数据库报告的信息。

成员:database_name 数据库名称列表。 (可以有多个数据库) num_letters_in_database 数据库中的字母数。 (int) num_sequences_in_database 数据库中的序列数列表。 posted_date 数据库发布的日期列表。 ka_params (lambda, k, h) 值元组。 (浮点数) gapped # XXX 这没有设置正确! ka_params_gap (lambda, k, h) 值元组。 (浮点数)

__init__()

初始化类。

class Bio.Blast.NCBIXML.Parameters

基础类: object

保存有关参数的信息。

成员:matrix 矩阵名称。 gap_penalties (open, extend) 罚分元组。 (浮点数) sc_match 核苷酸-核苷酸比较的匹配得分 sc_mismatch 核苷酸-核苷酸比较的错配罚分 num_hits 数据库中的命中数。 (int) num_sequences 序列数量。 (int) num_good_extends 扩展数量。 (int) num_seqs_better_e 比 e 值更好的序列数量。 (int) hsps_no_gap 更好的 HSP 数量,不含间隙。 (int) hsps_prelim_gapped 初步测试中具有间隙的 HSP 数量。 (int) hsps_prelim_gapped_attemped 在初步测试中尝试的 HSP 数量。 (int) hsps_gapped 间隙 HSP 的总数。 (int) query_length 查询的长度。 (int) query_id 查询序列的标识符。 (str) database_length 数据库中的字母数。 (int) effective_hsp_length 有效的 HSP 长度。 (int) effective_query_length 查询的有效长度。 (int) effective_database_length 数据库的有效长度。 (int) effective_search_space 有效搜索空间。 (int) effective_search_space_used 使用的有效搜索空间。 (int) frameshift 移码窗口。 元组 (int, float) threshold 阈值。 (int) window_size 窗口大小。 (int) dropoff_1st_pass 元组 (score, bits)。 (int, float) gap_x_dropoff 元组 (score, bits)。 (int, float) gap_x_dropoff_final 元组 (score, bits)。 (int, float) gap_trigger 元组 (score, bits)。 (int, float) blast_cutoff 元组 (score, bits)。 (int, float)

__init__()

初始化类。

class Bio.Blast.NCBIXML.Blast

基类:Header, DatabaseReport, Parameters

保存 blast 搜索结果。

成员:descriptions Description 对象列表。 alignments Alignment 对象列表。 multiple_alignment MultipleAlignment 对象。 + 从基类继承的成员

__init__()

初始化类。

class Bio.Blast.NCBIXML.PSIBlast

基类:Header, DatabaseReport, Parameters

保存 blastpgp 搜索结果。

成员:rounds Round 对象列表。 converged 搜索是否收敛。 + 从基类继承的成员

__init__()

初始化类。

class Bio.Blast.NCBIXML.BlastParser(debug=0)

基类:_XMLparser

将 XML BLAST 数据解析为 Blast 对象。

解析 BLAST 的 XML 输出(不鼓励直接使用)。 这(现在)返回一个 Blast 记录列表。 历史上它返回单个 Blast 记录。 预计您将通过 parse 或 read 函数使用它。

所有 XML“操作”方法都是私有方法,可以是

  • _start_TAG 在找到开始标签时调用

  • _end_TAG 在找到结束标签时调用

__init__(debug=0)

初始化解析器。

参数
  • debug - 整数,要打印的调试信息量

reset()

重置所有数据,允许重用 BlastParser() 对象。

set_hit_id()

记录数据库序列的标识符(私有)。

set_hit_def()

记录数据库序列的定义行(私有)。

set_hit_accession()

记录数据库序列的登录号值(私有)。

set_hit_len()

记录命中的长度。

Bio.Blast.NCBIXML.read(handle, debug=0)

返回单个 Blast 记录(假设只有一个查询)。

在内部使用 BlastParser。

此函数用于您的 XML 文件中只有一个 BLAST 结果时。

如果您期望多个 BLAST 记录(即如果您有多个查询序列),请使用 Bio.Blast.NCBIXML.parse() 函数。

Bio.Blast.NCBIXML.parse(handle, debug=0)

返回每个查询的 Blast 记录迭代器。

增量解析器,这是一个返回 Blast 记录的迭代器。 它在内部使用 BlastParser。

handle - 要解析的 XML 文件的文件句柄 debug - 整数,要打印的调试信息量

这是一个生成器函数,它返回多个 Blast 记录对象 - 每个对象对应于传递给 blast 的每个查询序列。 文件被增量读取,在读入时返回完整记录。

应该处理新的 BLAST 2.2.14+,它为多个查询记录提供单个 XML 文件。

还应该处理来自旧版 BLAST 的 XML 输出,这些输出将多个 XML 文件连接在一起(提供一个严格来说不是有效 XML 的单个文件)。