Bio.SearchIO.BlastIO包

子模块

模块内容

Bio.SearchIO支持BLAST+输出格式。

此模块添加了对解析BLAST+输出的支持。BLAST+是基于NCBI C++工具包的NCBI遗留BLAST(基本局部比对搜索工具)的重写。BLAST+套件以命令行程序的形式提供,也可以在NCBI的网页上找到。

Bio.SearchIO.BlastIO在以下BLAST+口味和版本上进行了测试:

  • 口味:爆裂,tblastn,tblastx

  • 版本:2.2.22+、2.2.26+

您还应该能够解析来自本地BLAST+搜索或NCBI的Web界面的输出。尽管该模块没有针对所有的BLAST+进行测试,但它应该仍然能够解析这些其他版本的输出。如果您偶然发现无法解析的文件,请提交错误报告。

BLAST遗留套件(BLAST+的前身)中的某些输出格式可能仍可由此模块解析。但是,不能保证结果。您可以尝试改用Bio.Blast模块来解析它们。

有关BLAST的更多信息,请访问以下链接:

支持的格式

Bio.SearchIO.BlastIO支持以下BLAST+输出格式:

  • XML-‘blast-xml’-解析、索引、编写

  • 表格-‘blast-tab’-解析、索引、编写

  • 纯文本-‘blast-text’-解析

BLAST-XML

BLAST-XML解析器遵循此处编写的BLAST XMLDTD:http://www.ncbi.nlm.nih.gov/dtd/NCBI_BlastOutput.mod.dtd

它为每个SearchIO对象提供以下属性:

对象

属性

XML元素

QueryResult

目标

BlastOutput_db

计划

BlastOutput_program

参考文献

BlastOutput_reference

版本

BlastOutput_version [*]

描述

Iteration_Query-def

ID号

Iteration_Query-ID

seq_len

Iteration_Query-len

param_evalue_threshold

Parameters_expect

param_entrez_query

PARAMETERS_ENTERZ-查询

param_filter

Parameters_filter

param_gap_extend

参数_间隙-延伸

param_gap_open

参数_间隙-打开

param_include

Parameters_include

param_matrix

Parameters_matrix

param_pattern

Parameters_pattern

param_score_match

参数_sc-匹配

param_score_mismatch

参数_sc-不匹配

stat_db_num

STATISTICS_db-Num

stat_db_len

统计数据_db-len

stat_eff_space

统计_有效-空间

stat_entropy

Statistics_entropy

stat_hsp_len

STATISTICS_HSP-LEN

stat_kappa

Statistics_kappa

stat_lambda

Statistics_lambda

命中

加入

Hit_accession

描述

Hit_def

ID号

Hit_id

seq_len

Hit_len

HSP

位分数

HSP_BIT-得分

密度

Hsp_density

eValue

Hsp_evalue

gap_num

Hsp_gaps

ident_num

Hsp_identity

pos_num

Hsp_positive

bitscore_raw

Hsp_score

HSPFragment(也通过HSP)

aln_span

HSP_ALIGN-LEN

hit_frame

HSP_HIT-帧

hit_start

HSP_HIT-FROM

hit_end

HSP_HIT-TO

命中

Hsp_hseq

aln_annotation

Hsp_midline

pattern_start

HSP_模式-发件人

pattern_end

HSP_模式-至

query_frame

HSP_查询-帧

query_start

HSP_QUERY-FROM

query_end

HSP_QUERY-TO

查询

Hsp_qseq

您可能会注意到,在BLAST XML文件中,有时BLAST会用它自己生成的ID替换您的真实序列ID。例如,查询ID变为‘QUERY_1’、‘QUERY_2’,依此类推。而命中ID有时会变成‘GNL |BL_ORD_ID| 1‘,’GNL |BL_ORD_ID| 2‘,依此类推。在这些情况下,BLAST会将真实序列ID及其描述集中在一起。

BLAST-XML解析器知道这些修改,并将尝试从描述中提取真实的序列ID。因此,在访问QueryResult或Hit对象时,您将使用非BLAST生成的ID。

可以使用‘USE_RAW_QUERY_IDS’参数禁用查询ID的此行为,而使用‘USE_RAW_HIT_IDS’参数可以禁用命中ID的行为。两者都是可以提供给SearchIO.read或SearchIO.parse的布尔值,缺省值设置为‘false’。

在任何情况下,都可以使用查询或HIT对象的‘blast_id’属性访问原始BLAST ID。

BLAST-XML WRITE函数还接受‘use_raw_query_ids’和‘use_raw_hit_ids’参数。但是,请注意,编写器的默认值设置为“True”。这是因为编写器旨在尽可能地模仿原生BLAST结果。

爆破-选项卡

blast-tab支持的默认格式是不带注释的变体(-m6标志)。注释的BLAST表格文件可以使用设置为True的关键字参数‘Comments’进行解析、索引或写入:

>>> # blast-tab defaults to parsing uncommented files
>>> from Bio import SearchIO
>>> uncommented = 'Blast/tab_2226_tblastn_004.txt'
>>> qresult = SearchIO.read(uncommented, 'blast-tab')
>>> qresult
QueryResult(id='gi|11464971:4-101', 5 hits)
>>> # set the keyword argument to parse commented files
>>> commented = 'Blast/tab_2226_tblastn_008.txt'
>>> qresult = SearchIO.read(commented, 'blast-tab', comments=True)
>>> qresult
QueryResult(id='gi|11464971:4-101', 5 hits)

对于未注释的文件,解析器默认使用BLAST的默认列顺序:‘qseqid sseqid pident length mismatch gapopen qstart qend sstart send eValue bitcore’。

如果要使用自定义列顺序解析未注释的文件,可以使用‘field’关键字参数传递自定义列顺序。柱子的名字跟在BLAST的名字后面。例如,‘qseqid’是查询序列ID的列。这些名称可以作为Python列表传递,也可以作为空格分隔的字符串传递。

>>> # pass the custom column names as a Python list
>>> fname = 'Blast/tab_2226_tblastn_009.txt'
>>> custom_fields = ['qseqid', 'sseqid']
>>> qresult = next(SearchIO.parse(fname, 'blast-tab', fields=custom_fields))
>>> qresult
QueryResult(id='gi|16080617|ref|NP_391444.1|', 3 hits)
>>> # pass the custom column names as a space-separated string
>>> fname = 'Blast/tab_2226_tblastn_009.txt'
>>> custom_fields = 'qseqid sseqid'
>>> qresult = next(SearchIO.parse(fname, 'blast-tab', fields=custom_fields))
>>> qresult
QueryResult(id='gi|16080617|ref|NP_391444.1|', 3 hits)

您还可以使用‘std’字段名作为BLAST的默认12列的别名,就像运行命令行BLAST搜索一样。

请注意,如果对解析的文件进行注释,则将忽略‘field’关键字参数。注释文件在文件中明确说明了它们的列顺序,因此不需要在SearchIO中再次指定它。

“COMMENTS”和“FIELS”关键字参数都适用于分析、索引和编写。

BLAST-选项卡为每个SearchIO对象提供以下属性:

对象

属性

列名

QueryResult

加入

QACC

accession_version

快速加速器

美国退伍军人协会

QGI

seq_len

队列

ID号

qseqid

命中

加入

SACC

accession_version

sacc_ver

美国退伍军人协会

SGI

gi_all

萨尔基

id_all

萨尔塞奇

seq_len

斯莱恩

ID号

sseqid

HSP

位分数

位分数

BTOP

BTOP

eValue

eValue

gapopen_num

开口

gap_num

差距

ident_num

证明人

ident_pct

Pident

mismatch_num

不匹配

pos_pct

PPO

pos_num

阳性

bitscore_raw

得分

HSPFragment(也通过HSP)

框架

框架 []

aln_span

长度

query_end

季度结束

query_frame

Qframe

查询

qseq

query_start

Qstart

hit_end

发送

hit_frame

框架

命中

SSEQ

hit_start

启动

如果对解析的文件进行了注释,则以下属性也可能可用:

对象

属性

价值

QueryResult

描述

查询说明

字段

输出文件中的列

计划

鼓风风味

里奇

远程搜索ID

目标

目标数据库

版本

BLAST版本

BLAST-文本

众所周知,BLAST纯文本输出格式在BLAST版本之间有很大变化。NCBI本身建议用户不要依赖纯文本输出进行与解析相关的工作。

但是,在某些情况下,解析纯文本输出可能仍然有用。SearchIO为纯文本输出提供解析支持,但只保证最低级别的支持。目前,编写一个完全支持所有BLAST版本的纯文本输出的解析器并不是当务之急。

如果您确实有一个无法解析的BLAST纯文本文件,并且想要提交补丁,我们非常乐意接受它。

BLAST文本解析器提供以下对象属性:

对象

属性

价值

QueryResult

描述

查询序列描述

ID号

查询序列ID

计划

鼓风风味

seq_len

查询序列全长

目标

搜索的目标数据库

版本

BLAST版本

命中

eValue

命中级eValue,来自命中表

ID号

命中序列ID

描述

命中序列描述

得分

命中率级别分数,来自命中表

seq_len

命中序列的全长

HSP

eValue

HSP级eValue

位分数

HSP级比特得分

bitscore_raw

HSP级别得分

gap_num

路线中的间隙数

ident_num

对齐中相同残基的数量

pos_num

对齐中的正匹配数

HSPFragment(也通过HSP)

aln_annotation

对齐相似字符串

aln_span

对齐片段的长度

命中

命中序列

hit_end

命中序列结束坐标

hit_frame

命中序列读取框

hit_start

命中序列开始坐标

hit_strand

命中序列链

查询

查询序列

query_end

查询序列结束坐标

query_frame

查询序列阅读框

query_start

查询序列起始坐标

query_strand

查询序列链