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 |
查询序列链 |