|||
同一个比对结果:
format 0:
format 6:
format 5:
第1种格式适合人看,机器识别起来较困难,第6种(或第7种)格式使用也较多,但是遗憾的是信息不全。第5种格式是标准的XML格式,人看起来不方便,但机器似乎很喜欢识别这种格式,这篇博文重点使用Bio.Blast.NCBIXML解析Blast第5种格式(XML格式)。
for record in NCBIXML.parse(open(blast_fmt5.xml))
其中record有descriptions,alignments,multiple_alignment列表对象, 还有Blast,Header,DatabaseReport和Parameters方法。
列表对象可以通过循环获取到,例如:
for element in record. descriptions
其中element有title,score,bits, e和num_alignments对象组成。
在record的desciptions对象中,给出了Subject ID,bitscore值,evalue值等信息
for element in record.alignments
其中element有title,hit_id,hit_def,length和hsps组成。
其中title与descriptions里的title相同,hit_id不是subject id而且自编的一个id,hit_def即subject id。
其中最重要的是hsps,它可以再用一个循环获得。
for hsp in element.hsps
按照以下代码将其中query,match和sbjct打印出来(一行一个)如下:
代码如下:
当不清楚如何的对应关系时,可以查看xml文件,如下:
例如:当不清楚subject序列id号是什么时,可以
grep [Subject ID] blast5.xml
但是很坑的是,很难找到query id,因为它并没有在文档中给出,甚至连help(record)也看不到,而且用上面grep [query id] blast5.xml的方式搜索出来的是query-def,但是用query_def会报错,因为根本就没有这个属性!
原来,它藏在record中的属性中,通过record.query提取出来!
还有一个SearchIO更好用,先mark一下,等整理出来再分享
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-26 20:37
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社