
表示一个经典的多序列比对(MSA)。
这个东西表示的是一组长度相同(通常使用缺口字符来填充空缺位置)的序列(通常显示成行)。这个数据可 被看成一个字母矩阵,其中有整齐的 (well defined) 列 。
一般地,你可以通过使用AlignIO模块载入一个比对文件来创建一个多序列比对 :
>>> from Bio import AlignIO
>>> align = AlignIO.read("Clustalw/opuntia.aln", "clustal")
>>> print align
SingleLetterAlphabet() alignment with 7 rows and 156 columns
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273285|gb|AF191659.1|AF191
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273284|gb|AF191658.1|AF191
TATACATTAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273287|gb|AF191661.1|AF191
TATACATAAAAGAAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273286|gb|AF191660.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273290|gb|AF191664.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273289|gb|AF191663.1|AF191
TATACATTAAAGGAGGGGGATGCGGATAAATGGAAAGGCGAAAG...AGA gi|6273291|gb|AF191665.1|AF191
从某些方面来说,你可以将这些对象当成SeqRecord 对象的列表 ,其中每一个 都表示咯比对中的一行。遍历一个比对的话 ,就得到针对每一行的SeqRecord 对象:
>>> len(align)
7
>>> for record in align:
... print record.id, len(record)
gi|6273285|gb|AF191659.1|AF191 156
gi|6273284|gb|AF191658.1|AF191 156
gi|6273287|gb|AF191661.1|AF191 156
gi|6273286|gb|AF191660.1|AF191 156
gi|6273290|gb|AF191664.1|AF191 156
gi|6273289|gb|AF191663.1|AF191 156
gi|6273291|gb|AF191665.1|AF191 156
你还可以通过下标(index)来以 SeqRecord 对象的方式访问单独的行:
>>> print align[0].id
gi|6273285|gb|AF191659.1|AF191
>>> print align[-1].id
gi|6273291|gb|AF191665.1|AF191
还可以以字符串的方式提取列:
>>> print align[:,1]
AAAAAAA
或者,取出前 10列作为一个子比对(sub-alignment):
>>> print align[:,:10]
SingleLetterAlphabet() alignment with 7 rows and 10 columns
TATACATTAA gi|6273285|gb|AF191659.1|AF191
TATACATTAA gi|6273284|gb|AF191658.1|AF191
TATACATTAA gi|6273287|gb|AF191661.1|AF191
TATACATAAA gi|6273286|gb|AF191660.1|AF191
TATACATTAA gi|6273290|gb|AF191664.1|AF191
TATACATTAA gi|6273289|gb|AF191663.1|AF191
TATACATTAA gi|6273291|gb|AF191665.1|AF191
将这种比对切割(slicing)和比对的加法(addition)结合,就允许你删除这个比对的某个部分。比如 ,只取出前 10列和末10列:
>>> print align[:,:10] + align[:,-10:]
SingleLetterAlphabet() alignment with 7 rows and 20 columns
TATACATTAAGTGTACCAGA gi|6273285|gb|AF191659.1|AF191
TATACATTAAGTGTACCAGA gi|6273284|gb|AF191658.1|AF191
TATACATTAAGTGTACCAGA gi|6273287|gb|AF191661.1|AF191
TATACATAAAGTGTACCAGA gi|6273286|gb|AF191660.1|AF191
TATACATTAAGTGTACCAGA gi|6273290|gb|AF191664.1|AF191
TATACATTAAGTATACCAGA gi|6273289|gb|AF191663.1|AF191
TATACATTAAGTGTACCAGA gi|6273291|gb|AF191665.1|AF191
注意-这个对象是用来取代已有的在Bio.Align.Generic 模块中定义的Alignment 对象的,但是并不是完全地后向兼容它 。
注意-这个对象并不尝试对有多个序列读取的下一代序列中使用的那种类型的比对进行建模,它们比比对对象本身短得多 ,并且通常会有一个重复序列 (consensus)或者带有特殊状态的引用序列 。
HxLauncher: Launch Android applications by voice commands