永发信息网

如何利用biojava设置一个blast解析器解析blast结果

答案:1  悬赏:50  手机版
解决时间 2021-03-20 08:31
如何利用biojava设置一个blast解析器解析blast结果
最佳答案
BioJava设置一个BLAST解析器解析BLAST结果代码如下:
import java.io.*;
import java.util.*;

import org.biojava.bio.program.sax.*;
import org.biojava.bio.program.ssbind.*;
import org.biojava.bio.search.*;
import org.biojava.bio.seq.db.*;
import org.xml.sax.*;
import org.biojava.bio.*;

public class BlastParser {
// args[0] 为Blast输出文件
public static void main(String[] args){
try{
// 以流的方式得到Blast输出
InputStream is = new FileInputStream(args[0]);

// 创建一个Blast类型的SAX解析器
BlastLikeSAXParser parser = new BlastLikeSAXParser();

// 创建一个可以将事件传送给句柄的SAX事件适配器
SeqSimilarityAdapter adapter = new SeqSimilarityAdapter();

// 给parser设置SAX事件适配器
parser.setContentHandler(adapter);

// 保存序列相似性搜索结果(SeqSimilaritySearchResults)的链表
List results = new ArrayList();

// 创建在结果链表(Results List)中生成序列相似性搜索结果对象的搜索内容句柄(SearchContentHandler)
SearchContentHandler builder = new BlastLikeSearchBuilder(results,
new DummySequenceDB("queries"), new DummySequenceDBInstallation());

// 解析文件,序列相似性搜索结果填充到结果链表
parser.parse(new InputSource(is));

// 输出一些Blast细节
for (Iterator i = results.iterator(); i.hasNext(); ){
SeqSimilaritySearchResult result = (SeqSimilaritySearchResult)i.next();
Annotation anno = result.getAnnotation();

for(Iterator j = anno.keys().iterator(); j.hasNext(); ){
Object key = j.next();
Object property = anno.getProperty(key);
System.out.println(key+" : "+property);
}
System.out.println("Hits: ");

// 列出匹配
for (Iterator k = result.getHits().iterator(); k.hasNext(); ){
SeqSimilaritySearchHit hit = (SeqSimilaritySearchHit)k.next();
System.out.println("\tmatch: "+hit.getSubjectID());
System.out.println("\te score: "+hit.getEValue());
}

System.out.println("\n");
}

}
catch (SAXException ex) {
//XML 出问题
ex.printStackTrace();
}catch (IOException ex) {
//IO 出问题,例如文件找不到
ex.printStackTrace();
}
}
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
7K7K多克多比玩不了,怎么办
找你找了那么久,终于找到你了~用白话怎么写
求一个课前三分钟的哲理故事加感悟。
顾长安:泯灭的是人心还是感情
朋友是搞图书出版的,最近想和腾讯合作,征求
三国时的魏国是哪里
裕丰大道/裕丰新村一街(路口)在哪里啊,我有
怎样去除血管星的斑块
烧香正北一根香高是什么意思
请问,请问下论坛上说的狂暴战士有5个晕的技能
20世纪,二三十年代时,苏俄跟苏联的区别!
证明lim(cosx/x)=0(x↣∞)
第一次跟情人过生日,我要怎样他才能刻骨铭心
宁德家富富侨推拿正在规吗
鲸身体是否长毛
推荐资讯
谁那有《未央沉浮》的读后感啊
肠胃不好怎么办
世嘉乐园解除密码高级问题答案
安利为什么不上市?
微星科技怎么去啊,有知道地址的么
乳胶漆刷完半小时游离甲醛含量多少不超标
中国平安财产保险股份有限公司湛江市遂溪支公
浅谈海淘几年的心得,推荐好用的海淘网站及a
spss16.0英文版的output出不来怎么办?分析数
wow outland服务器 账号怎么被禁止了
方解石产地主要在哪里?江西有吗?
广西体育中心-室外网球场地址在什么地方,想
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?