生物信息学中的主要对象毫无疑问就是生物序列,在本章中,我们将介绍Biopython 中的技巧来处理序列--Seq 对象。
序列从本质上将是像 AGTACACTGGT 这样的一系列字母,这看上去很自然,因为这是生物学文件格式中所看到的序列的最常见方式。
在 Seq 对象和python 序列间有两个重要的不同点。
首先, Seq 对象包含有一 些相对于 python 序列的不同的方法(例 如,reverse_complement()方法在核酸序列中使用)。
第二,Seq 对象有一个重要的属性--字母表,它被用来描述序列字符串的意思,及如何解释。例如,AGTACACTGGT 是一个 DNA 序列,还是一个包含有
很多 AGCT 的蛋白质序列?
1. 序列和字母表
字母表对象也许是使 Seq 对象不仅仅是一个序列的最重要的东西。 Biopython中现在可用的字母表在 Bio.Alphabet 模块中定义。我们将使用 IUPAC 字母表(http://www.chem.qmw.ac.uk/iupac/)来处理我们喜欢的对象: DNA, RNA 以及 Proteins。Bio.Alphabet.IUPAC 提供了蛋白质,DNA 和 RNA 的基本的定义,有一个基本的 IUPACProtein 类,同时有一个扩展的 ExtendedIUPACProtein 来提供像 Asx(asparagine or aspartic acid), “Sec” (selenocysteine), and “Glx”(glutamine or glutamic acid). 对于有提供基本字母的 IUPACUnambiguousDNA和提供每一种可能的模糊字母的 ExtendedIUPACDNA,它允许改进残基。类似的 ,RNA 也 由 两 种 字 母 表 形 式 表 示 : IUPACAmbiguousRNA或 者IUPACUnambiguousRNA.
字母表类的优点有两个。第一,这给出了 Seq 对象包含的信息类型。第二,这给出了作为类型检查的一个强制的信息。既然我们知道我们所处理的,让我们看看如何使用这个类来做些有趣的工作。你可以像这样构造一个使用默认字母表的序列。
>>> from Bio.Seq import Seq
>>> my_seq = Seq("AGCCTCTAC")
>>> my_seq
Seq('AGCCTCTAC', Alphabet())
>>> my_seq.alphabet
Alphabet()
<