Biopython(http://www.biopython.org)目的是为使用和研究生物信息学的研究者提供了一个工具集,包括了一些模块、脚本等内容。目前,Biopython致力于通过创造可重复利用的模块及类,使得Python在生物信息学中的研究、应用变得更加简单、容易。

Biopython的特点包括解析各种生信文件文件(如:BLAST, Clustalw, FASTA, Genbank…),访问一些在线的数据库(NCBI,Expasy…),和一些程序的接口(Clustalw, DSSP,MSMS…)等等,同时也衍生出如BioPerl,BioRuby,BioJava扩展。

入门帮助文档贡献
下载 Biopython教程 (PDF)目前正在进行
README文档wiki文档通过Github
 Cookbook (示例)通过Google
 Q&A文档提交bugs

功能介绍:

  • 将生物信息学文件解析为Python可利用的数据结构,包括对以下格式的支持:
    • Blast的输出结果
    • Clustalw
    • FASTA
    • GenBank
    • PubMed 和 Medline格式
    • ExPASy文件
    • SCOP,包括 ‘dom’ 和 ‘lin’ 文件
    • UniGene
    • SwissProt
  • 被支持的文件可以通过记录来重复或者通过字典界面来索引
  • 和常见的生物信息学在线数据库交互:
    • NCBI – Blast,Entrez 和 PubMed
    • ExPASy – Swiss-Prot 和 Prosite ,包括Prosite搜索
  • 常见生物信息学软件的接口:
    • 单机版Blast
    • Clustalw
    • EMBOSS
  • 可以处理序列、ID和序列特征的标准序列类
  • 对序列实现常规操作的工具,如序列翻译,转录和权重计算等
  • 利用k最近邻接、Bayes或SVM对数据进行分类
  • 通过创建和处理替换矩阵的方法来进行序列比对
  • 分发并行任务
  • 其GUI的程序可以进行基本的序列操作
  • 详细的文档
  • 与BioSQL集成,同样也被BioPerl和BioJava项目支持

案例:

1)翻译CDS条目为FASTA文件


from Bio.SeqRecord import SeqRecord
from Bio import SeqIO

def make_protein_record(nuc_record):
    """Returns a new SeqRecord with the translated sequence (default table)."""
    return SeqRecord(seq = nuc_record.seq.translate(cds=True), \
                     id = "trans_" + nuc_record.id, \
                     description = "translation of CDS, using default table")

proteins = (make_protein_record(nuc_rec) for nuc_rec in \
            SeqIO.parse("coding_sequences.fasta", "fasta"))
SeqIO.write(proteins, "translations.fasta", "fasta")

2)序列GC%含量作图


from Bio.SeqUtils import GC
import pylab

gc_values = sorted(GC(rec.seq) for rec in SeqIO.parse("ls_orchid.fasta", "fasta"))
pylab.plot(gc_values)
pylab.title("%i orchid sequences\nGC%% %0.1f to %0.1f" \
            % (len(gc_values),min(gc_values),max(gc_values)))
pylab.xlabel("Genes")
pylab.ylabel("GC%")
pylab.show()

还有很多示例,此处就不再介绍了,更多内容可以参考下面资料。

参考资料:

1.http://biopython.org/DIST/docs/tutorial/Tutorial.html

2.https://biopython-cn.readthedocs.io/zh_CN/latest/index.html