zoukankan      html  css  js  c++  java
  • Biopython常用功能模块

    Biopython项目是旨在减少计算生物学中代码重复的开源项目之一,由国际开发人员协会创建。 它包含表示生物序列和序列注释的类,并且能够读取和写入各种文件格式(FASTA,FASTQ,GenBank和Clustal等), 支持以程序化方式访问生物信息的在线数据库(例如,NCBI)。 独立的模块扩展了Biopython的序列比对,蛋白质结构,群体遗传学,系统发育,序列基序和机器学习等功能。

    序列操作

    >>> # This script creates a DNA sequence and performs some typical manipulations
    >>> from Bio.Seq import Seq
    >>> from Bio.Alphabet import IUPAC
    >>> dna_sequence = Seq('AGGCTTCTCGTA', IUPAC.unambiguous_dna)
    >>> dna_sequence
    Seq('AGGCTTCTCGTA', IUPACUnambiguousDNA())
    >>> dna_sequence[2:7]
    Seq('GCTTC', IUPACUnambiguousDNA())
    >>> dna_sequence.reverse_complement()
    Seq('TACGAGAAGCCT', IUPACUnambiguousDNA())
    >>> rna_sequence = dna_sequence.transcribe()
    >>> rna_sequence
    Seq('AGGCUUCUCGUA', IUPACUnambiguousRNA())
    >>> rna_sequence.translate()
    Seq('RLLV', IUPACProtein())

    序列注释

    特征可以是'基因','CDS'(编码序列),'repeat_region','mobile_element'或其他,并且序列中特征的位置可以是精确或近似的。

    >>> # This script loads an annotated sequence from file and views some of its contents.
    >>> from Bio import SeqIO
    >>> seq_record = SeqIO.read('pTC2.gb', 'genbank')
    >>> seq_record.name
    'NC_019375'
    >>> seq_record.description
    'Providencia stuartii plasmid pTC2, complete sequence.'
    >>> seq_record.features[14]
    SeqFeature(FeatureLocation(ExactPosition(4516), ExactPosition(5336), strand=1), type='mobile_element')
    >>> seq_record.seq
    Seq('GGATTGAATATAACCGACGTGACTGTTACATTTAGGTGGCTAAACCCGTCAAGC...GCC', IUPACAmbiguousDNA())

    输入与输出

    Biopython可以读写许多常见的序列格式,包括FASTA,FASTQ,GenBank,Clustal,PHYLIP和NEXUS等,可将一种文件格式的记录转换为其它文件格式。在读取数据时,根据计算机的内存资源和文件的大小,它们可以完全加载到内存中,以内存使用为代价提供快速访问。或者从磁盘读取文件,虽然性能较差但内存要求较低。

    >>> # This script loads a file containing multiple sequences and saves each one in a different format.
    >>> from Bio import SeqIO
    >>> genomes = SeqIO.parse('salmonella.gb', 'genbank')
    >>> for genome in genomes:
    ...     SeqIO.write(genome, genome.id + '.fasta', 'fasta')

    在线数据库数据搜索和下载

    >>> # This script downloads genomes from the NCBI Nucleotide database and saves them in a FASTA file.
    >>> from Bio import Entrez
    >>> from Bio import SeqIO
    >>> output_file = open('all_records.fasta', "w")
    >>> Entrez.email = 'my_email@example.com'
    >>> records_to_download = ['FO834906.1', 'FO203501.1']
    >>> for record_id in records_to_download:
    ...     handle = Entrez.efetch(db='nucleotide', id=record_id, rettype='gb')
    ...     seqRecord = SeqIO.read(handle, format='gb')
    ...     handle.close()
    ...     output_file.write(seqRecord.format('fasta'))

    进化树

    Bio.Phylo模块提供了用于处理和可视化系统发生树的工具,支持Newick,NEXUS和phyloXML等文件格式读写。

    Genome Diagram&lt

    GenomeDiagram模块提供了Biopython中可视化序列的方法,序列可以以线性或圆形的形式绘制,支持许多输出格式,包括PDF和PNG。

    蛋白质结构

    Bio.PDB模块可以从PDB和mmCIF文件加载分子结构,使用Bio.PDB,可以浏览大分子结构文件的各个组件,例如检查蛋白质中的每个原子。 可以进行常见分析,例如测量距离或角度,比较残留物和计算残留物深度。

    群体遗传学

    Bio.PopGen模块可以分析Hardy-Weinberg平衡,连锁不平衡和群体等位基因频率的其他特征。

    包装一些生信分析工具

    Biopython包装了包括BLAST,Clustal,PhyML,EMBOSS和SAMtools等工具,用户可以继承一个通用的包装类,以添加对其他命令行工具的支持。

    参考资料

    https://en.wikipedia.org/wiki/Biopython

    http://biopython.org/

    转载请标明《http://www.cnblogs.com/yahengwang/p/9017041.html》

  • 相关阅读:
    Splay 区间操作(二)
    P1351 联合权值
    Splay 区间操作
    P1801 黑匣子_NOI导刊2010提高(06)
    P3620 [APIO/CTSC 2007]数据备份
    T25990 [Wind Festival]Running In The Sky
    P1484 种树
    P4177 [CEOI2008]order
    题解 P2762 【太空飞行计划问题】
    dalao&话
  • 原文地址:https://www.cnblogs.com/yahengwang/p/9017041.html
Copyright © 2011-2022 走看看