biopython简介
biopython和bioperl, biojava项目类似,都是Open Bioinformatics Foundation组织的项目之一,旨在提供一个编程接口,方便生物信息数据的处理。
Python (http://www.python.org) 是一种面向对象的、解释型的、灵活的语言,在计算机科学中日益流行。Python易学,语法明晰,并且能很容易的使用以C,C++或 者FORTRAN编写的模块实现扩展。
Biopython官网(http://www.biopython.org)为使用和研究生物信息学的开发者提供了一个在线的 资源库,包括模块、脚本以及一些基于Python的软件的网站链接。一般来讲,Biopython致力于通过创造高质量的和可重复利用的模块及 类,从而使得Python在生物信息学中的应用变得更加容易。Biopython的特点包括解析各种生物信息学格式的文件(BLAST, Clustalw, FASTA, Genbank…),访问在线的服务器(NCBI,Expasy…),常见和不那么常见程序的接口(Clustalw, DSSP,MSMS…),标准的序列类,各 种收集的模块,KD树数据结构等等,还有一些文档。
biopython主要功能
- 将生物信息学文件解析为Python可用的数据结构,包含以下支持的格式:
- Blast输出结果 – standalone和在线Blast
- Clustalw
- FASTA
- GenBank
- PubMed和Medline
- ExPASy文件, 如Enzyme和Prosite
- SCOP, 包括‘dom’和‘lin’文件
- UniGene
- SwissProt
被支持格式的文件可以通过记录来重复或者通过字典界面来索引。
- 处理常见的生物信息学在线数据库的代码:
- NCBI – Blast, Entrez和PubMed服务
- ExPASy – Swiss-Prot和Prosite条目, 包括Prosite搜索
常见生物信息学程序的接口,例如: - NCBI的Standalone Blast
- Clustalw比对程序
- EMBOSS命令行工具
- 一个能处理序列、ID和序列特征的标准序列类。
- 进化树的构建
- 基因组数据的可视化
- 对序列实现常规操作的工具,如翻译,转录和权重计算。
- 利用k最近邻接、Bayes或SVM对数据进行分类的代码。
- 处理比对的代码,包括创建和处理替换矩阵的标准方法。
- 分发并行任务到不同进程的代码。
- 实现序列的基本操作,翻译以及BLAST等功能的GUI程序。
- 使用这些模块的详细文档和帮助,包括此文件,在线的wiki文档,网站和邮件列表。
- 整合BioSQL,一个也被BioPerl和BioJava支持的数据库架构。
常用模块
biopython采用了面向对象的开发模式,将各个功能封装成了不同的class。学习biopython, 就是对不同class及其方法的学习过程。为了方便管理源代码,根据不同功能分拆成了不同的子模块,常用的子模块有以下几个
- Bio.Seq, 提供了Seq类,即生物学序列对象,最常见的就是碱基或者核酸序列,比如fasta文件中保存的序列
- Bio.SeqRecord, 提供了SeqRecord类,包含了序列的注释信息,比如fasta文件中的序列标识符
- Bio.SeqIO, 提供了parse方法,来读取不同格式的序列文件,比如fasta/genebank等格式
- Bio.Align, 提供了MultipleSeqAlignment对象,以及读取多序列比输出结果文件的方法
- Bio.Blast, 提供了运行blast比对软件的方法,以及解析blast输出结果的方法
- Bio.Entrez, 提供了NCBI Entrez 系统的接口,可以查询,检索,下载, 解析数据库中的内容
- Bio.SwissPort, 提供了Swiss-prot数据库的接口,可以查询,检索,下载, 解析数据库中的内容
- Bio.PDB, 提供了PDB数据库的接口,可以查询,检索,下载, 解析数据库中的内容
- Bio.Phylo, 提供了查看系统发育树和可视化的各种方法
- Bio.Graphics, 提供了基因组数据的可视化功能
安装
conda install biopython #or
pip install biopython
import Bio
中文文档地址
https://biopython-cn.readthedocs.io/zh_CN/latest/