原标题:Biopython教程之“多序列比对”
多序列比对(Multiple Sequence Alignment, MSA),对多个序列进行对位排列。这通常需要保证序列间的等同位点处在同一列上,并通过引进小横线(-)以保证最终的序列具有相同的长度。
在生物信息分析中,我们有时需要进行多序列比对,Biopython可以帮我们实现,特别是使用linux系统的同学,biopython值得拥有。
两种读取方法
Biopython提供了两种方法读取多序列比对数据,即Biopython提供的AlignIO.read和AlignIO.parse模块。这两种方法跟SeqIO处理一个和多个数据的设计方式是一样的。AlignIO.read() 只能读取一个多序列比对,而AlignIO.parse()可以依次读取多个序列比对数据。
使用AlignIO.parse()将会返回一个多序列比对的迭代器(iterator)。迭代器往往在循环中使用,即使用for或while都可以逐行读取,例如:
For line in iterator:(iterator为迭代器的变量名)
在实际数据分析过程中,会时常处理包含有多个多序列比对的文件。例如PHYLIP中的seqboot,Bill Pearson的FASTA程序。如果你所遇到的文件仅仅包括一个多序列比对,你应该使用AlignIO.read(),这将返回一个MultipleSeqAlignment对象。
使用这两个函数都必须注明两个参数:
第一个参数为包含有多序列比对数据的句柄(handle)。在实际操作中,这往往是一个打开的文件()或者文件名。
第二个