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》


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM