Blast结果处理

1. 说明

该脚本旨在处理由本地版blast序列比对后结果,具体如下所述:
blast输出格式如下所示(-outfmt = "7 qacc sacc score evalue pident qcovs ppos"):

# BLASTP 2.7.1+
# Query: NP_040533.1
# Database: blastdatabase/ElmMotif.fasta
# 0 hits found
# BLASTP 2.7.1+
# Query: NP_056788.1
# Database: blastdatabase/ElmMotif.fasta
# Fields: query acc., subject acc., score, evalue, % identity, % query coverage per subject, % positives
# 2 hits found
NP_056788.1	PF01115-1023-1041-1666	38	2.4	57.143	2	71.43
NP_056788.1	PF01267-1023-1041-1665	38	2.4	57.143	2	71.43
# BLAST processed 2 queries

2. 目的:

blast的结果中将有Fields的部分对应的第一行的subject及相关的scoreevalue等信息提取出来,最终结果如下图所示:
在这里插入图片描述

3. Python3脚本:

该脚本的基本思路是:
首先根据[# BLAST ... # BLAST)将文本划分为多个由# BLAST起始的部分,在根据是否有# Fidelds来决定是否能够获取subjectscore等相关信息,最终将结果输出。

#!/usr/bin/python3
import sys
### 脚本中指定输入和输出文件
# infile = file1 
# outfile = file2
### 在终端中指定输入和输出文件
infile = sys.argv[1] # 输入的 Blast 结果形式是 -outfmt "7 qacc sacc score evalue pident qcovs ppos"
outfile  = sys.argv[2]

outF = open(outfile,'w')
outF.write('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % ('Blast version','Query','Database','The number of \"hits found\"','Subject','Score','Evalue','Identity','Query coverage per subject','Postives'))#

RowNumber = 1
with open(infile) as inF:
    for line in inF:
        if line[0:7] == '# BLAST':
            if RowNumber > 1:
                templine = templine0
                RowNumber = 1
                templine0 = []
                templine0.append(line)
                if templine[3].strip()[0:9] == '# Fields:':
                    blastVersion = templine[0].strip()[2:]
                    query = templine[1].strip()[8:]
                    database = templine[2].strip()[11:]
                    numberHits = templine[4].strip().split()[1]
                    """
                    # 该注释部分是用于提取 Hit 上的所有行,如果需要提取所有结果,只需要把此处注释去掉,下面 subject ... outF.write 的7行注释掉即可。
                    for i in range(5,len(templine)):
                    	subject = templine[i].strip().split('\t')[1]
                        score = templine[i].strip().split('\t')[2]
                        evalue = templine[i].strip().split('\t')[3]
                        identity = templine[i].strip().split('\t')[4]
                        queryPerSubject = templine[i].strip().split('\t')[5]
                        positive = templine[i].strip().split('\t')[6]
                        outF.write('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % 
                                (blastVersion,query,database,numberHits,subject,score,evalue,identity,queryPerSubject,positive))
                     """
                    subject = templine[5].strip().split('\t')[1]
                    score = templine[5].strip().split('\t')[2]
                    evalue = templine[5].strip().split('\t')[3]
                    identity = templine[5].strip().split('\t')[4]
                    queryPerSubject = templine[5].strip().split('\t')[5]
                    positive = templine[5].strip().split('\t')[6]
                    outF.write('%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\t%s\n' % 
                                (blastVersion,query,database,numberHits,subject,score,evalue,identity,queryPerSubject,positive))
                else:
                    continue
            RowNumber = 1
            templine0 = []
            templine0.append(line)
        else:
            RowNumber += 1
            templine0.append(line)

运行方式:直接在脚本中指定infileoutfile或者在终端中通过指定输入文件或输出文件来运行。

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要查看BLAST(Basic Local Alignment Search Tool)的结果,您需要按照以下步骤进行操作: 1. 打开您的BLAST搜索结果页面,您将看到一张表格,其中包含有关您的查询序列和匹配序列的信息。 2. 在结果页面上,您将看到有关每个匹配的统计信息,例如匹配的得分、匹配的长度、匹配的相似性和匹配的标识性等。 3. 您还可以查看比对的序列。通常,您将看到在匹配序列和查询序列之间的线性比对,其中相同的氨基酸或核苷酸用相同的颜色进行突出显示。 4. 如果您需要下载结果,请查看结果页面上的下载选项,并选择您需要下载的文件格式。 5. 您还可以根据需要对结果进行过滤和排序。例如,您可以按照匹配得分、匹配长度或匹配的相似性对结果进行排序,以便更轻松地查找与您的查询序列最相似的匹配。 希望这可以帮助您查看和理解BLAST的搜索结果! ### 回答2: 在使用BLAST(基本局部序列比对搜索工具)后,可以通过多种方法查看结果。 首先,BLAST提供了网页界面,可以通过输入查询序列后点击搜索按钮,BLAST会运行并生成搜索结果页面。在网页结果中,可以看到多个信息栏,包括查询序列、匹配到的序列、比对得分、比对长度、相似性等。用户可以通过点击查询序列名或更多详细信息的链接来进一步查看每个匹配结果的详细信息。 另外,BLAST还提供了命令行接口,它允许用户通过使用命令行参数运行BLAST并将结果保存在输出文件中。用户可以指定输出格式为文本(例如CSV或XML),然后通过打开输出文件来查看结果。此外,一些BLAST程序还支持直接在终端显示结果。 除了BLAST自带的界面和命令行接口外,还有一些第三方工具可用于可视化和解释BLAST结果。例如,NCBI的BLAST在线工具提供了交互性更强、更直观的结果浏览功能。另外,也有一些开源软件如BioPython库和Bioconductor包可用于处理和分析BLAST结果。 总之,查看BLAST结果可以通过BLAST的网页界面、命令行接口、第三方工具等多种方式实现。用户可以根据自己的需求和偏好选择合适的方法来查看和解释BLAST结果。 ### 回答3: 要查看BLAST(Basic Local Alignment Search Tool)的结果,可以按照以下步骤进行。 首先,你需要进行BLAST分析并获得结果。这可以通过在NCBI(National Center for Biotechnology Information)网站上使用BLAST工具来完成。在网站上选择适当的BLAST程序(如BLASTn用于核酸序列比对,BLASTp用于蛋白质序列比对等)并将你的查询序列输入到相应的框中。设置好参数,例如数据库选择和期望得分阈值等。 提交查询后,BLAST会开始运行分析,并显示一个结果页面。你可以在结果页面上找到各种信息。 首先,你会看到一个总览,其中包含查询序列的信息,匹配到的序列数量以及最佳匹配的序列。这可以让你了解到BLAST的总体情况。 下一部分是比对结果表格,其中列出了匹配到的序列及其相关信息。这些信息通常包括序列的名称、匹配到的区域长度、匹配的分数以及比对的相似性等。你可以通过点击每个序列的链接来查看详细的比对结果。 在比对结果中,你还可以查看图形化的比对图。这些图可以帮助你更直观地了解查询序列和目标序列的比对情况。 此外,还可以在结果页面上使用筛选和排序功能来定制显示的结果。例如,你可以按照分数降序排列结果,或根据特定的匹配特征进行筛选。 最后,你可以下载或保存结果以便后续分析。BLAST结果通常以文本文件或HTML格式提供,你可以将其保存到本地计算机。 总的来说,在BLAST结果页面上你可以找到关于查询序列匹配的详细信息,包括匹配的序列和其相关特征。你可以进一步分析这些信息,以了解与查询序列相似或相关的其他序列。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值