Blast解析和Fasta解析程序已经讨论了一旦结果文件被解析就会生成一个存储序列相似性搜索结果对象的链表。
每个查询(例如Blast query)都对应着一个这样的链表。每个序列相似性搜索结果对象都包含着一个序列相似性匹配的链表存储具体的匹配。每个序列相似性搜索匹配对象都包含着一由序列相似性搜索子匹配组成的链表。这和BLAST报告的HSP相同。
结果,匹配和子匹配包含着很多getXXX()方法,能够提取存储的信息。
下面的小程序能够从BLAST或FASTA解析器返回得链表中提取匹配ID(目标ID),bit分值,e分值。
[code lang="java"]
private static void formatResults(List results) {
// 遍历所有序列相似性搜索结果
for (Iterator i = results.iterator9); i.hasNext(); ){
SeqSimilaritySearchResult result = (SeqSimilaritySearchResult)i.next();
//遍历所有的匹配
for (Iterator i2 = result.getHits().iterator(); i2.hasNext(); ){
SeqSimilaritySearchHit hit = (SeqSimilaritySearchHit)i2.next();
// 输出匹配ID,bit分值,e分值
System.out.println("subject:\t"+hit.getSubjectID() +
" bits:\t"+hit.getScore()+
" e:\t"+hit.getEValue());
}
}
}
[/code]