biopython_cn Documentation
Release 0.1
biopythoners
January 23, 2014
翻译致谢
感谢 Biopython 代码的各位贡献者,感谢你们开发出如此优秀的工具来方便广
大的生物信息学研究人员的工作。感谢 Biopython 英文版教程的撰写者,你们的文
字让我们能更好的理解和使用 Biopython 工具,也是中文版教程翻译的基础。
该版本 Biopython 中文教程由一群 Biopython 爱好和使用者根据 Biopython1.61
教程英文版(Last Update – 5 February 2013)翻译而成。 各成员根据自己的研
究方向、兴趣、时间和能力选择相应的章节进行翻译,虽各章节内容有多有少,难
易不同,每位成员的翻译成果均是对该版 Biopython 中文教程重要而独一无二的贡
献,都应得到尊重。在此感谢参与翻译和整理的每位成员。
翻译人员如下:
章节
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
第 22 章
翻译人
徐凯
徐凯
韩娜
谌平
邓操
阮铮
杨元杰
文雷
王志文
张力圩
钟相富
邓操
叶彦波
鸣有馨
刘涛
魏博
游宇星
叶彦波
王崇志
黎娜
郭振洋
郭振洋
校对人
文雷
文雷
鸣有馨
韩娜
郭振洋
叶彦波
魏博
徐凯
叶彦波
游宇星
王崇志
黎娜
王志文
钟相富
谌平
杨元杰
张力圩
阮铮
刘涛
邓操
邓操
邓操
由于大家时间有限,翻译整理仓促,难免有所纰漏,如有发现,欢迎大家在 Github
项目主页(https://github.com/bigwiv/Biopython-cn)提交错误信息和进行修正。
同时,欢迎大家加入群“python/biopython 交流”QQ 群(232504802)交流
biopython 的问题和学习心得,或者加入“生物信息学天空”QQ 群(154712987)进
行更广泛的生物信息学讨论。
CONTENTS
1 第 1 章介绍
1.1 什么是 Biopython? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 在 Biopython 包中我能发现什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3 安装 Biopython . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.4 常见问答(FAQ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 第 2 章快速开始——你能用 Biopython 做什么?
2.1 Biopython 功能概览 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 处理序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 用法示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 解析序列文件格式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.5 连接生物学数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.6 下一步做什么 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 第 3 章生物序列对象
3.1 序列和字母表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 序列表现的像字符串一样 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.3 切取序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.4 将序列对象转换成字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5 连接或添加序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 改变大小写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.7 核苷酸序列和(反向)互补序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8 转录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.9 翻译 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.10 翻译表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.11 比较 Seq 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.12 MutableSeq 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.13 UnknownSeq 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.14 直接使用字符串 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 第 4 章序列注释对象
4.1 SeqRecord 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 创建 SeqRecord . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 Feature, location 和 position 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 格式化方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.6 SeqRecord 切片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.7 SeqRecord 对象相加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.8 反向互补 SeqRecord 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
3
3
4
4
9
9
9
10
10
12
12
15
15
16
17
18
18
19
20
20
22
23
25
26
27
28
29
29
30
33
37
37
37
40
42
i
5 第 5 章序列输入和输出
5.1 解析/读取序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 从压缩文档读取解析序列信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 解析来自网络的序列 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.4 序列文件作为字典 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 写入序列文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6 第 6 章多序列比对
6.1 读取多序列比对数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 序列比对的写出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 序列比对的操纵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4 构建序列比对的工具 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 第 7 章 BLAST
7.1 通过 Internet 运行 BLAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 本地运行 BLAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3 解析 BLAST 输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 BLAST 记录类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.5 废弃的 BLAST 解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.6 处理 PSI-BLAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.7 处理 RPS-BLAST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
43
43
47
48
50
57
61
61
67
71
74
83
83
85
86
88
91
94
94
8 第 8 章 BLAST 和其他序列搜索工具 (实验性质的代码)
97
8.1 SearchIO 对象模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
97
8.2 一个关于标准和惯例的注意事项 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3 读取搜索输出文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.4 用索引处理含有大量搜索输出的文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.5 写入和转换搜索输出文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
9 第 9 章访问 NCBI Entrez 数据库
113
9.1 Entrez 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9.2 EInfo: 获取 Entrez 数据库的信息 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9.3 ESearch: 搜索 Entrez 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.4 EPost: 上传 identifiers 的列表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9.5 ESummary: 通过主要的 IDs 来获取摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.6 EFetch: 从 Entrez 下载更多的记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
9.7 ELink: 在 NCBI Entrez 中搜索相关的条目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
9.8 EGQuery: 全局搜索 - 统计搜索的条目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
9.9 ESpell: 获得拼写建议 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
9.10 解析大的 Entrez XML 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
9.11 错误处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
9.12 专用的解析器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
9.13 使用代理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9.14 实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
9.15 使用历史记录和 WebEnv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
10 第 10 章 Swiss-Prot 和 ExPASy
139
10.1 解析 Swiss-Prot 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
10.2 解析 Prosite 记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
10.3 解析 Prosite 文件记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.4 解析酶记录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
10.5 Accessing the ExPASy server
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.6 浏览 Prosite 数据库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
11 第 11 章走向 3D:PDB 模块
149
ii
11.1 晶体结构文件的读与写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
11.2 结构的表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.3 紊乱 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
11.4 异质残基 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
11.5 浏览 Structure 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
11.6 分析结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
11.7 PDB 文件中的常见问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
11.8 访问 Protein Data Bank . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
11.9 常见问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
12 第 12 章 Bio.PopGen:群体遗传学
169
12.1 GenePop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
12.2 溯祖模拟(Coalescent simulation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
12.3 其它应用程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
12.4 未来发展 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
13 第 13 章 Bio.Phylo 系统发育分析
177
13.1 示例: 树中有什么? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
13.2 I/O 函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
13.3 查看和导出树 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
13.4 使用 Tree 和 Clade 对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
13.5 运行外部程序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
13.6 PAML 整合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192
13.7 未来计划 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
14 第 14 章使用 Bio.motifs 进行模体序列分析
195
14.1 模体对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195
14.2 位置权重矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
14.3 位置特异性得分矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206
14.4 搜索实例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
14.5 模体对象自身相关的位置特异性得分矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
14.6 模体比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
14.7 查找 De novo 模体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
14.8 相关链接 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
14.9 旧版 Bio.Motif 模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215
15 第 15 章聚类分析
223
数据表示法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
缺失值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
随机数生成器 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223
15.1 距离函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 224
15.2 计算类的相关性质 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227
15.3 划分算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
15.4 系统聚类 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231
15.5 Self-Organizing Maps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234
15.6 主成分分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
15.7 处理 Cluster/TreeView-type 文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 236
15.8 示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
15.9 附加函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 241
16 第 16 章监督学习方法
243
16.1 Logistic 回归模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243
16.2 k-最近邻居法(KNN ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
16.3 Naive 贝叶斯 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
16.4 最大熵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
iii
16.5 马尔科夫模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250
17 第 17 章 Graphics 模块中的基因组可视化包—GenomeDiagram
251
17.1 基因组可视化包—GenomeDiagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 251
17.2 染色体 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
18 第 18 章 Cookbook – 用它做一些很酷的事情
275
18.1 操作序列文件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
18.2 序列解析与简单作图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287
18.3 处理序列比对 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
18.4 替换矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 298
18.5 BioSQL – 存储序列到关系数据库中 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
19 第 19 章 Biopython 测试框架
301
19.1 运行测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
19.2 编写测试 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302
19.3 编写 doctests
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306
20 第 20 章高级
309
20.1 解析器的设计 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
20.2 替换矩阵 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
21 第 21 章为 Biopython 做贡献
313
21.1 错误报告与功能需求 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
21.2 邮件列表与帮助新手 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
21.3 贡献文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
21.4 贡献学习手册示例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313
21.5 维护跨平台发行版本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
21.6 贡献单元测试(Unit Tests) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
21.7 贡献源码 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
22 第 22 章附录:Python 相关知识
317
22.1 到底什么是句柄(handle)? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
23 References
24 Indices and tables
319
323
iv
Contents:
biopython_cn Documentation, Release 0.1
CONTENTS
1
biopython_cn Documentation, Release 0.1
2
CONTENTS