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及其方法的学习过程。为了方便管理源代码,根据不同功能分拆成了不同的子模块,常用的子模块有以下几个

  1. Bio.Seq, 提供了Seq类,即生物学序列对象,最常见的就是碱基或者核酸序列,比如fasta文件中保存的序列
  2. Bio.SeqRecord, 提供了SeqRecord类,包含了序列的注释信息,比如fasta文件中的序列标识符
  3. Bio.SeqIO, 提供了parse方法,来读取不同格式的序列文件,比如fasta/genebank等格式
  4. Bio.Align, 提供了MultipleSeqAlignment对象,以及读取多序列比输出结果文件的方法
  5. Bio.Blast, 提供了运行blast比对软件的方法,以及解析blast输出结果的方法
  6. Bio.Entrez, 提供了NCBI Entrez 系统的接口,可以查询,检索,下载, 解析数据库中的内容
  7. Bio.SwissPort, 提供了Swiss-prot数据库的接口,可以查询,检索,下载, 解析数据库中的内容
  8. Bio.PDB, 提供了PDB数据库的接口,可以查询,检索,下载, 解析数据库中的内容
  9. Bio.Phylo, 提供了查看系统发育树和可视化的各种方法
  10. Bio.Graphics, 提供了基因组数据的可视化功能

安装

conda install biopython #or
pip install biopython
import Bio

中文文档地址

https://biopython-cn.readthedocs.io/zh_CN/latest/