BLAST+6格式 (skbio.io.format.blast6

BLAST+6格式 (blast+6 )存储爆炸的结果 [1] 数据库搜索。结果以简单的表格格式存储,没有列标题。值由制表符分隔。

比较两个蛋白质序列的BLAST+6格式文件示例,取自 [2] (制表符由 <tab> ):

moaC<tab>gi|15800534|ref|NP_286546.1|<tab>100.00<tab>161<tab>0<tab>0<tab>1<tab>161<tab>1<tab>161<tab>3e-114<tab>330
moaC<tab>gi|170768970|ref|ZP_02903423.1|<tab>99.38<tab>161<tab>1<tab>0<tab>1<tab>161<tab>1<tab>161<tab>9e-114<tab>329

格式支持

嗅探员:没有

状态:从0.4.1开始试验。

读者

writer

对象类

是的

pandas.DataFrame

格式规范

BLAST+6格式是由BLAST+output format 6生成的基于表格的文本格式 (-outfmt 6 )和旧的BLAST输出格式8 (-m 8 ). 它是制表符分隔的,没有列标题。使用BLAST+,用户可以通过指定列名(例如。, -outfmt "6 qseqid sseqid bitscore qstart sstart" ),如果不需要BLAST输出的默认列。

爆破柱类型

以下列类型由BLAST输出并由scikit-bio支持。此信息取自 [3].

名字

描述

类型

质量标准

查询序列号

STR

qgi公司

查询GI

利息

卡塔尔航空公司

查询访问

STR

qaccver公司

查询访问.version

STR

昆仑

查询序列长度

利息

sseqid公司

主题序列号

STR

萨尔塞奇德

所有主题序列id,用“;”分隔

STR

sgi公司

受试者GI

利息

萨尔吉

全学科地理信息系统

利息

sacc公司

受试者接受者

STR

萨克维尔

主题访问.version

STR

萨拉克

所有主题访问

STR

斯伦

受试者序列长度

利息

Q开始

查询中对齐的开始

利息

Q结束

查询中的对齐结束

利息

开始

主题对齐开始

利息

发送

主题对齐结束

利息

qseq公司

查询序列的对齐部分

STR

sseq公司

主题序列的对齐部分

STR

安勤

期望值

浮动

比特分数

比特分数

浮动

分数

原始分数

利息

长度

定线长度

利息

皮登特

相同匹配的百分比

浮动

奈登特

相同匹配数

利息

不匹配

不匹配数

利息

积极的

得分阳性的比赛数

利息

加波彭

缺口数量

利息

差距

总间隙数

利息

酚醛树脂

得分阳性的比赛百分比

浮动

框架

用“/”分隔的查询和主题框架

STR

Q框架

查询框架

利息

S帧

主题框架

利息

btop公司

爆炸回溯操作(BTOP)

利息

葡萄球菌

唯一的主题分类ID,用“;”分隔(按数字顺序)。

STR

sscinames

唯一的主题学名,用“;”分隔

STR

头颈

唯一的主题通用名,用“;”分隔

STR

S姓氏

唯一的主题爆炸名称,用“;”分隔(按字母顺序)

STR

S王国

唯一主题超级王国,用“;”分隔(按字母顺序)

STR

针线

题目

STR

sstrand公司

主题串

STR

萨尔蒂尔斯

所有主题标题,用“<>”分隔

STR

qcovs公司

每个主题的查询覆盖率

利息

qcovhsp公司

每个HSP的查询覆盖率

利息

备注

当BLAST+6格式的文件包含 N/A 值,scikit-bio会将这些值转换为 np.nan ,符合pandas表示缺失数据的约定。

备注

scikit-bio存储类型为的列 int 作为类型 float 在返回的 pd.DataFrame . 这是必要的,以便 N/A 整数列中的值(这是目前对pandas的限制)。

格式参数

中提供了以下格式参数 blast+6 格式:

  • default_columnsFalse 默认情况下。如果 True ,将使用BLAST输出的默认列,即qseqid、sseqid、pident、length、mismatch、gapopen、qstart、qend、sstart、send、evalue和bitscore。

    警告

    读取旧的BLAST文件时,必须通过 default_columns=True 因为legacy BLAST不允许用户指定输出文件中存在哪些列。

  • columnsNone 默认情况下。如果提供,则必须是列名在文件中出现的顺序的列表。

备注

要么 default_columnscolumns 必须提供,如 blast+6 不包含列标题。

示例

假设我们有一个 blast+6 具有默认列的文件:

>>> from io import StringIO
>>> import skbio.io
>>> import pandas as pd
>>> fs = '\n'.join([
...     'moaC\tgi|15800534|ref|NP_286546.1|\t100.00\t161\t0\t0\t1\t161\t1\t161\t3e-114\t330',
...     'moaC\tgi|170768970|ref|ZP_02903423.1|\t99.38\t161\t1\t0\t1\t161\t1\t161\t9e-114\t329'
... ])
>>> fh = StringIO(fs)

将文件读入 pd.DataFrame 并指定应使用默认列:

>>> df = skbio.io.read(fh, format="blast+6", into=pd.DataFrame,
...                    default_columns=True)
>>> df 
  qseqid                           sseqid  pident  length  mismatch  gapopen \
0   moaC     gi|15800534|ref|NP_286546.1|  100.00   161.0       0.0      0.0
1   moaC  gi|170768970|ref|ZP_02903423.1|   99.38   161.0       1.0      0.0

   qstart   qend  sstart   send         evalue  bitscore
0     1.0  161.0     1.0  161.0  3.000000e-114     330.0
1     1.0  161.0     1.0  161.0  9.000000e-114     329.0

假设我们有一个 blast+6 包含用户提供(非默认)列的文件:

>>> from io import StringIO
>>> import skbio.io
>>> import pandas as pd
>>> fs = '\n'.join([
...     'moaC\t100.00\t0\t161\t0\t161\t330\t1',
...     'moaC\t99.38\t1\t161\t0\t161\t329\t1'
... ])
>>> fh = StringIO(fs)

将文件读入 pd.DataFrame 并指定文件中存在的列:

>>> df = skbio.io.read(fh, format="blast+6", into=pd.DataFrame,
...                    columns=['qseqid', 'pident', 'mismatch', 'length',
...                             'gapopen', 'qend', 'bitscore', 'sstart'])
>>> df 
  qseqid  pident  mismatch  length  gapopen   qend  bitscore  sstart
0   moaC  100.00       0.0   161.0      0.0  161.0     330.0     1.0
1   moaC   99.38       1.0   161.0      0.0  161.0     329.0     1.0

引用