Bioperl 解析blast的输出结果

用bioperl 解析blast的默认输出结果, 整理成-m8格式的输出

#!/usr/bin/perl

use Bio::SearchIO;
my ($blast) = @ARGV;
my $searchio = new Bio::SearchIO(-format => "blast",
                                 -file   => "test.bls");

while (my $result = $searchio->next_result) {
    while (my $hit = $result->next_hit) {
        while (my $hsp = $hit->next_hsp) {
            my $query_name   = $result->query_name;
            my $query_length = $result->query_length;
            my $align        = $hsp->homology_string;
            $align           =~ s/ /0/g;
            my $hit_name     = $hit->name;
            my $identity     = sprintf "%0.2f", $hsp->frac_identical * 100;
            my $mismatch     =()= $hsp->seq_inds(‘hit‘,‘nomatch‘);
            my $gaps         = $hsp->gaps;
            my $align_length = $hsp->hsp_length;
            my $query_start  = $hsp->start(‘query‘);
            my $query_end    = $hsp->end(‘query‘);
            my $hit_start    = $hsp->start(‘hit‘);
            my $hit_end      = $hsp->end(‘hit‘);
            my $evalue       = $hsp->evalue;
            my $bit_score    = $hsp->bits;
            print qq{$query_name\t$hit_name\t$identity\t$align_length\t$mismatch\t$gaps\t$query_start\t$query_end\t$hit_start\t$hit_end\t$evalue\t$bit_score\n};
        }
    }
}
时间: 2024-10-11 21:45:03

Bioperl 解析blast的输出结果的相关文章

shell脚本解析1----打印输出

#!/bin/sh             #指定该脚本文件的解析程序,“#”用作注释,相当于C语言的"//" a="hello world!"   #变量赋值.shell脚本中的变量无需定义,也没有类型. echo "A is:"          #打印a echo $a 程序执行结果: shell脚本解析1----打印输出

解析PDB文件输出类型信息 – dumppdb工具

本文2015-11-29原发于http://blog.zhongts.com/ PDB是微软的调试信息格式,由VS生成,方便源码调试.PDB文件中包含了变量.函数.类型.源码行号等信息,用VS(或者Windbg等调试器)调试二进制时,在源代码上下断点.源码单步.显示变量值等功能都需要有PDB文件. 本文提供的dumppdb工具能解析PDB文件,输出里面的类型信息,如结构体定义.抽出里面的类型定义导入IDA逆向更方便.写程序时也可能用到这些类型定义. 指定要解析的PDB文件名,运行dumppdb,

利用python数组解析ifconfig命令输出

有时候我们需要对命令的格式化输出进行解析,解析通常依赖命令自身的格式化特征,不过这些特征都有共性:各种层面的循环列表结构 比如ifconfig命令,首先循环列出所有网络接口,然后在网络接口内,在循环列出各个预定义字段 所以对该命令解析时,首先要按list之list的结构对其输出内容进行组织,这里用python的(多维)数组是个不错的主意 #encoding=utf-8 import subprocess tmp_file = open('/tmp/g.log','w') subprocess.c

bioperl 格式化genebank的输出

代码如下: use Bio::SeqIO; use Bio::DB::GenBank; use Bio::DB::Query::GenBank; my $db_obj = Bio::DB::GenBank->new; my $seq_obj = $db_obj->get_Seq_by_acc('JN093905'); my $id = $seq_obj->display_id(); my $organ; foreach my $feat_object ($seq_obj->get_

XXE任意文件读取(当xml解析内容有输出时)

利用XXE漏洞读取文件 参考:https://www.jianshu.com/p/4fc721398e97 首先找到登录源码如下: 由题目可以利用XXE漏洞读取文件 先登录用Burp Suite抓包: 然后构造XXE读取文件 语句如下: <?xml version = "1.0"?> <!DOCTYPE ANY [ <!ENTITY f SYSTEM "/flag"> ]> <user> <username>

Blast使用详解

Blast,全称Basic Local Alignment Search Tool,即"基于局部比对算法的搜索工具",由Altschul等人于1990年发布.Blast能够实现比较两端核酸或者蛋白序列之间的同源性的功能,它能够快速的找到两段序列之间的同源序列并对比对区域进行打分以确定同源性的高低. Blast的运行方式是先用目标序列建数据库(这种数据库称为database,里面的每一条序列称为subject),然后用待查序列(query)在database中搜索,每一条query与da

XML解析的几种方法

第一种方法系统自带的解析方法(NSXMLParser) //1.指定XML文件 NSString *path=[[NSBundle mainBundle] pathForResource:@"person" ofType:@"xml"]; //转换成data类型对象 NSData *data=[NSData dataWithContentsOfFile:path]; //2.为parser指定初始值 NSXMLParser *parser=[[NSXMLParser

XML详解:第三部分 XML解析

声明:原创作品,转载时请注明文章来自SAP师太技术博客:www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4290918.html XML解析... 72 使用DOM解析XML. 73 DOM树中的节点类型... 75 文档节点Document75 元素节点Element77 文本节点Text77 属性节点Attr78 NodeList接口...

iOS网络编程解析协议三:JSON数据传输解析

作为一种轻量级的数据交换格式,正在逐步取代XML,成为网络数据的通用格式 基于JavaScript的一个子集 易读性略差,编码手写难度大,数据量小 JSON格式取代了XML给网络传输带来了很大的便利,但是却没有了XML的一目了然,尤其是JSON数据很长的时候,我们会陷入繁琐复杂的数据节点查找中 作为一种轻量级的数据交换格式,JSON正在逐步取代XML,成为网络数据的通用格式 从iOS 5开始,使用NSJSONSerialization对JSON解析 其他常见的三种JSON解析第三方库:SBJso