生物信息中的Python 02 | 用biopython解析序列
上一篇文章生物信息中的Python 01 | 从零开始处理基因序列自己造轮子实现了序列的基础操作,但是在Python的世界里,一项工作只要重复的次数多了,那么一定就会有大神来开发相应的包来解决,这个包名就是 Biopython 。接下来我们试着使用它来实现简单的序列处理。
一、准备工作
1、 按照上一篇下载fasta文件的步骤,可以同理得到GeneBank的数据格式
2、现在我们的目录结构是这样的
搭建下面的目录结构参考:搭建 Python 高效开发环境: Pycharm + Anaconda
3、安装Biopython,这里有两种方案:
3.1 用pip安装Biopython,在cmd命令窗口输入
- 下载Python的包管理工具:pip
下载完,解压,进入解压目录
- Linux 下输入
sudo python setup.py install
windows 下,在下载目录,
Shift
+右键如下图所示,点击在此处打开命令窗口
输入如下命令
python setup.py install
测试是否安装成功,出现下图所示的提示即表示安装成功
pip -v
进入 Pycharm 的Terminal 窗口,输入以下命令来安装 Biopython
|
3.2 直接用安装包安装
window系统:
- 下载地址:http://biopython.org/DIST/biopython-1.72.tar.gz
- 解压
- 按住
shift
并点击右键 - 在菜单栏点击在此处打开命令窗口,并输入如下命令:
python setup.py install
Linux系统:
打开终端 (快捷键:
Ctrl+Alt+T
)在终端输入以下命令
$ wget http://biopython.org/DIST/biopython-1.72.tar.gz
$ tar -zxvf biopython-1.72.tar.gz
$$ wget http://biopython.org/DIST/biopython-1.72.tar.gz
$ tar -zxvf biopython-1.72.tar.gz
$ cd biopython-1.72/
$ sudo python setup.py install测试是否安装成功
$ python
>>> from Bio.Seq import Seq
>>> seq = Seq('ATCG')
>>>$ python
>>> from Bio.Seq import Seq
>>> seq = Seq('ATCG')
>>> seq
Seq('ATCG')
二、Biopython 基础用法
1 读取常见的序列文件格式(fasta,gb)
from Bio import SeqIO |
2 浏览 fasta 序列文件内容
from Bio import SeqIO |
3 浏览 genebank 序列文件内容
from Bio import SeqIO |
相信大家可以看到 GeneBank 比 fasta 格式更加详细和贴心,但是对于序列处理来说内存占用和运行时间比这些信息更加重要。这就使fasta成为我们一般在序列分析中常用的格式。
4 新建序列文件
from Bio.Seq import Seq |
序列对象由一段字符串和其对应的编码表所定义。我们可以从上述的代码中看到,字符串内容一样,唯一不同的就是第二个参数IUPAC值不一样。IUPAC (International Union of Pure and Applied Chemistry ) 是一个制定化学相关标准的组织,Biopython 所使用的编码表就是由它制定的,想了解详细细节可以参考http://www.bioinformatics.org/sms2/iupac.html ,详细定义如下:
名称 | 编码表 |
---|---|
ambiguous_dna_letters | GATCRYWSMKHBVDN |
unambiguous_dna_letters | GATC |
ambiguous_rna_letters | GAUCRYWSMKHBVDN |
unambiguous_rna_letters | GAUC |
protein | ARNDCQEGHILKMFPSTWYV |
5 修改序列文件
在生物学意义上,序列是不可以随便更改的,也就是不可变的。如果强行修改,那么就会报错TypeError: 'Seq' object does not support item assignment
dna_seq[0] = |
如果你执意修改也是可以的,但是不建议这么做
dna_seq_mutable = dna_seq.tomutable() |
6 操作序列文件
from Bio.Seq import Seq |
7 用 Biopython 将 DNA 翻译为 RNA
# =====转录===== |
8 用BioPython 将 RNA 翻译为 蛋白质
# =====翻译===== |
7 做一些有意思的事
# =====寻找TATA框===== |