序列比对是生物信息学分析中的常见任务,包含局部比对和全局比对两大算法,局部比对最经典的代表是blast, 全局比对则用于多序列比对。在biopython中,支持对序列比对的结果进行读写,解析,以及运行序列比对的程序。
首先来看下多序列比对,多序列比对的软件较多,比如clustalw, muscle, mafft等,输出结果的格式也很多,比如clustal, fasta, phylip等。在biopython中,为不同格式,不同软件提供了统一的接口,方便我们的使用
1. 读取多序列比对结果
通过Bio.AlignIO模块来对多序列比对结果进行读写,其中的parse方法用于从文件句柄中读取多序列比对的内容,用法如下>>>from Bio import AlignIO>>>alignment = AlignIO.parse('clustal.out', 'clustal')>>>print(alignment)>>>for i in alignment:... print(i.id)...该方法的返回值是一个迭代器,每次迭代,返回的是一个SeqRecord对象。
2. 输出多序列比对结果
通过write方法将多序列比对的结果输出到文件中,可以指定输出文件的格式,用法如下>>> alignments = AlignIO.parse("aln.fasta", "fasta")>>> AlignIO.write(alignments, "aln.clustal", "clustal")
和Bio.SeqIO相同,针对格式