BLAST+7格式 (skbio.io.format.blast7

BLAST+7格式 (blast+7 )存储爆炸的结果 [1] 数据库搜索。此格式由BLAST+output格式7和遗留BLAST输出格式9生成。结果以带标题的简单表格格式存储。值由制表符分隔。

比较两个核苷酸序列的BLAST+7格式文件示例 [2] (制表符由 <tab> ):

# BLASTN 2.2.18+
# Query: gi|1786181|gb|AE000111.1|AE000111
# Subject: ecoli
# Fields: query acc., subject acc., evalue, q. start, q. end, s. start, s. end
# 5 hits found
AE000111<tab>AE000111<tab>0.0<tab>1<tab>10596<tab>1<tab>10596
AE000111<tab>AE000174<tab>8e-30<tab>5565<tab>5671<tab>6928<tab>6821
AE000111<tab>AE000394<tab>1e-27<tab>5587<tab>5671<tab>135<tab>219
AE000111<tab>AE000425<tab>6e-26<tab>5587<tab>5671<tab>8552<tab>8468
AE000111<tab>AE000171<tab>3e-24<tab>5587<tab>5671<tab>2214<tab>2130

格式支持

有嗅探员:是的

状态:从0.4.1开始试验。

读者

writer

对象类

是的

pandas.DataFrame

格式规范

scikit-bio支持两种BLAST+7文件格式:BLAST+output format 7 (-outfmt 7 )和旧的BLAST输出格式9 (-m 9 ). 这两种文件格式在结构上相似,只是略有不同。

示例BLAST+输出格式7文件:

# BLASTP 2.2.31+
# Query: query1
# Subject: subject2
# Fields: q. start, q. end, s. start, s. end, identical, mismatches, sbjctframe, query acc.ver, subject acc.ver
# 2 hits found
1   8       3       10      8       0       1       query1  subject2
2   5       2       15      8       0       2       query1  subject2

备注

没有命中的数据库搜索可能以BLAST+output格式7文件出现。scikit-bio忽略了这些“空”记录:

# BLASTP 2.2.31+
# Query: query1
# Subject: subject1
# 0 hits found

旧版爆炸输出格式9文件示例:

# BLASTN 2.2.3 [May-13-2002]
# Database: other_vertebrate
# Query: AF178033
# Fields:
Query id,Subject id,% identity,alignment length,mismatches,gap openings,q. start,q. end,s. start,s. end,e-value,bit score
AF178033    EMORG:AF178033  100.00  811 0   0   1   811 1   811 0.0 1566.6
AF178033    EMORG:AF031394  99.63   811 3   0   1   811 99  909 0.0 1542.8

备注

scikit-bio要求文件中的字段保持一致。

爆破柱类型

以下列类型由BLAST输出并由scikit-bio支持。有关这些列类型的详细信息,请参见 skbio.io.format.blast6 .

字段名

数据帧列名

查询id

质量标准

查询gi

qgi公司

查询科目。

卡塔尔航空公司

查询acc.版本

qaccver公司

查询长度

昆仑

主题id

sseqid公司

主题ID

萨尔塞奇德

受试者gi

sgi公司

专题地理信息系统

萨尔吉

科目科目。

sacc公司

主题acc.版本

萨克维尔

科目科目

萨拉克

主题长度

斯伦

问。开始

Q开始

问。结束

Q结束

s。开始

开始

s。结束

发送

查询序列

qseq公司

主题序列

sseq公司

安勤

安勤

比特分数

比特分数

分数

分数

定线长度

长度

%身份

皮登特

完全相同的

奈登特

不匹配

不匹配

积极的

积极的

间隙打开

加波彭

差距

差距

%积极的

酚醛树脂

查询/sbjct帧

框架

查询框架

Q框架

sbjct框架

S帧

BTOP

btop公司

科目税号

葡萄球菌

主题sci名称

sscinames

使用者com名称

头颈

主题爆炸名称

S姓氏

主题超级王国

S王国

题目

针线

主题串

sstrand公司

主题名称

萨尔蒂尔斯

%每个主题的查询覆盖率

qcovs公司

%每个hsp的查询覆盖率

qcovhsp公司

示例

假设我们有一个BLAST+7文件:

>>> from io import StringIO
>>> import skbio.io
>>> import pandas as pd
>>> fs = '\n'.join([
...     '# BLASTN 2.2.18+',
...     '# Query: gi|1786181|gb|AE000111.1|AE000111',
...     '# Database: ecoli',
...     '# Fields: query acc., subject acc., evalue, q. start, q. end, s. start, s. end',
...     '# 5 hits found',
...     'AE000111\tAE000111\t0.0\t1\t10596\t1\t10596',
...     'AE000111\tAE000174\t8e-30\t5565\t5671\t6928\t6821',
...     'AE000111\tAE000171\t3e-24\t5587\t5671\t2214\t2130',
...     'AE000111\tAE000425\t6e-26\t5587\t5671\t8552\t8468'
... ])
>>> fh = StringIO(fs)

将文件读入 pd.DataFrame

>>> df = skbio.io.read(fh, into=pd.DataFrame)
>>> df 
       qacc      sacc        evalue  qstart     qend  sstart     send
0  AE000111  AE000111  0.000000e+00     1.0  10596.0     1.0  10596.0
1  AE000111  AE000174  8.000000e-30  5565.0   5671.0  6928.0   6821.0
2  AE000111  AE000171  3.000000e-24  5587.0   5671.0  2214.0   2130.0
3  AE000111  AE000425  6.000000e-26  5587.0   5671.0  8552.0   8468.0

假设我们有一个旧的BLAST 9文件:

>>> from io import StringIO
>>> import skbio.io
>>> import pandas as pd
>>> fs = '\n'.join([
...     '# BLASTN 2.2.3 [May-13-2002]',
...     '# Database: other_vertebrate',
...     '# Query: AF178033',
...     '# Fields: ',
...     'Query id,Subject id,% identity,alignment length,mismatches,gap openings,q. start,q. end,s. start,s. end,e-value,bit score',
...     'AF178033\tEMORG:AF178033\t100.00\t811\t0\t0\t1\t811\t1\t811\t0.0\t1566.6',
...     'AF178033\tEMORG:AF178032\t94.57\t811\t44\t0\t1\t811\t1\t811\t0.0\t1217.7',
...     'AF178033\tEMORG:AF178031\t94.82\t811\t42\t0\t1\t811\t1\t811\t0.0\t1233.5'
... ])
>>> fh = StringIO(fs)

将文件读入 pd.DataFrame

>>> df = skbio.io.read(fh, into=pd.DataFrame)
>>> df[['qseqid', 'sseqid', 'pident']] 
     qseqid          sseqid  pident
0  AF178033  EMORG:AF178033  100.00
1  AF178033  EMORG:AF178032   94.57
2  AF178033  EMORG:AF178031   94.82

引用