| 原作者 | チャップマンB、チャンJ [1] |
|---|---|
| 初回リリース | 2002年12月17日 |
| 安定版リリース | 1.81 [2]
|
| リポジトリ | https://github.com/biopython/biopython [3] |
| 書かれた | PythonとC |
| プラットフォーム | クロスプラットフォーム |
| タイプ | バイオインフォマティクス |
| ライセンス | Biopythonライセンス |
| Webサイト | バイオパイソン |
Biopythonプロジェクトは、国際的な開発者協会によって作成された、計算生物学とバイオインフォマティクス用の非商用Pythonツールのオープンソースコレクションです。 [ 1 ] [ 4 ] [ 5 ]生物学的配列と配列注釈を表すクラスが含まれており、さまざまなファイル形式の読み取りと書き込みが可能です。また、NCBIなどの生物学的情報のオンラインデータベースにプログラムでアクセスすることもできます。個別のモジュールにより、Biopythonの機能が配列アラインメント、タンパク質構造、集団遺伝学、系統学、配列モチーフ、機械学習に拡張されます。Biopythonは、計算生物学におけるコードの重複を減らすために設計された数多くのBio*プロジェクトの1つです。[6]
歴史
Biopythonの開発は1999年に始まり、2000年7月に初めてリリースされました。 [7] BioPerl、BioRuby、BioJavaなど、それぞれのプログラミング言語にバイオインフォマティクス機能を追加した他のプロジェクトと同じような時期に、同様の目的で開発されました。このプロジェクトの初期の開発者には、Jeff Chang、Andrew Dalke、Brad Chapmanなどがいましたが、現在までに100人以上が貢献しています。[8] 2007年には、同様のPythonプロジェクトであるPyCogentが設立されました。[9]
Biopython の当初の目的は、生物学的配列ファイルへのアクセス、インデックス作成、および処理でした。これは今でも主要な焦点ですが、その後数年間で追加されたモジュールによって機能が拡張され、生物学のその他の領域もカバーするようになりました (「主な機能と例」を参照)。
バージョン1.77以降、BiopythonはPython 2をサポートしなくなりました。[10]
デザイン
Biopythonは可能な限り、Pythonプログラミング言語で使用される規則に従っており、Pythonに慣れたユーザーにとって使いやすいものとなっています。たとえば、SeqオブジェクトはPythonの文字列やリストと同様にスライスSeqRecordによって操作できます。また、BioPerlなどの他のBio*プロジェクトと機能的に類似するように設計されています。[7]
Biopythonは、各機能領域で最も一般的なファイル形式の読み取りと書き込みが可能であり、ライセンスは他のほとんどのソフトウェアライセンスと互換性があるため、さまざまなソフトウェアプロジェクトでBiopythonを使用できます。[5]
主な特徴と例
シーケンス
Biopython の核となる概念は生物学的配列であり、これはSeqクラスによって表現されます。[11] BiopythonSeqオブジェクトは多くの点で Python 文字列に似ています。Python のスライス表記をサポートし、他の配列と連結でき、不変です。さらに、配列固有のメソッドが含まれており、使用される特定の生物学的アルファベットを指定します。
>>> # このスクリプトは DNA 配列を作成し、いくつかの一般的な操作を実行します
>>> from Bio.Seq import Seq
>>> dna_sequence = Seq ( "AGGCTTCTCGTA" , IUPAC . unambiguous_dna )
>>> dna_sequence
Seq('AGGCTTCTCGTA', IUPACUnambiguousDNA())
>>> dna_sequence [ 2 : 7 ]
Seq('GCTTC', IUPACUnambiguousDNA())
>>> dna_sequence . river_complement ()
Seq('TACGAGAAGCCT', IUPACUnambiguousDNA())
>>> rna_sequence = dna_sequence . transcribe ()
>>> rna_sequence
Seq('AGGCUUCUCGUA', IUPACUnambiguousRNA())
>>> rna_sequence . translate () Seq('RLLV', IUPACProtein()) を翻訳する
配列注釈
このSeqRecordクラスは、シーケンスを、名前、説明、機能などの情報とともにSeqFeatureオブジェクトの形式で記述します。各SeqFeatureオブジェクトは、機能のタイプとその位置を指定します。機能タイプは、「遺伝子」、「CDS」(コーディング シーケンス)、「繰り返し領域」、「モバイル要素」などであり、シーケンス内の機能の位置は正確または近似値になります。
>>> # このスクリプトは、ファイルから注釈付き配列を読み込み、その内容の一部を表示します。
>>> from Bio import SeqIO
>>> seq_record = SeqIO . read ( "pTC2.gb" , "genbank" )
>>> seq_record . name
'NC_019375'
>>> seq_record . description
'Providencia stuartii プラスミド pTC2、完全な配列。'
>>> 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など、多くの一般的なシーケンス形式の読み取りと書き込みが可能です。ファイルを読み取る際、ファイル内の説明情報を使用して、 などの Biopython クラスのメンバーにデータを入力しますSeqRecord。これにより、あるファイル形式のレコードを他の形式に変換できます。
非常に大きなシーケンス ファイルはコンピューターのメモリ リソースを超える可能性があるため、Biopython では大きなファイル内のレコードにアクセスするためのさまざまなオプションを提供しています。リストや辞書などの Python データ構造でレコード全体をメモリにロードできるため、メモリ使用量を犠牲にして高速にアクセスできます。または、必要に応じてディスクからファイルを読み取ることもできます。この場合、パフォーマンスは低下しますが、メモリ要件は低くなります。
>>> # このスクリプトは、複数のシーケンスを含むファイルを読み込み、それぞれを異なる形式で保存します。
>>> from Bio import SeqIO
>>> genomes = SeqIO . parse ( "salmonella.gb" , "genbank" )
>>> for genome in genomes :
... SeqIO . write ( genome , genome . id + ".fasta" , "fasta" )
オンラインデータベースへのアクセス
Bio.Entrez モジュールを通じて、Biopython のユーザーは NCBI データベースから生物学的データをダウンロードできます。レコードの検索やダウンロードなど、 Entrez検索エンジンが提供する各機能は、このモジュールの機能を通じて利用できます。
>>> # このスクリプトは、NCBI ヌクレオチド データベースからゲノムをダウンロードし、FASTA ファイルに保存します。
>>> 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 = "ヌクレオチド" , id = record_id , rettype = "gb" )
... seqRecord = SeqIO . read ( handle , format = "gb" )
... handle . close ()
... output_file . write ( seqRecord . format ( "fasta" ))
系統発生


Bio.Phyloモジュールは系統樹の操作と視覚化のためのツールを提供します。Newick 、NEXUS、phyloXMLなど、さまざまなファイル形式の読み取りと書き込みがサポートされています。一般的なツリー操作とトラバーサルは、およびオブジェクトを介してサポートされています。例としては、ツリーファイルの変換と照合、ツリーからのサブセットの抽出、ツリーのルートの変更、長さやスコアなどのブランチ機能の分析などがあります。[13]TreeClade
ルート付きツリーはASCIIまたはmatplotlibを使用して描画できます(図 1 を参照)。また、Graphvizライブラリを使用してルートなしレイアウトを作成することもできます (図 2 を参照)。
ゲノム図

GenomeDiagramモジュールは、Biopython内で配列を視覚化するメソッドを提供します。[15] 配列は線形または円形で描画でき(図3を参照)、PDFやPNGを含む多くの出力形式がサポートされています。ダイアグラムは、トラックを作成し、それらのトラックに配列機能を追加することで作成されます。配列の機能をループし、その属性を使用して、ダイアグラムのトラックに追加するかどうか、および追加する場合はどのように追加するかを決定することで、最終的なダイアグラムの外観を細かく制御できます。異なるトラック間にクロスリンクを描画できるため、1つのダイアグラムで複数の配列を比較できます。
高分子構造
Bio.PDBモジュールはPDBおよびmmCIFファイルから分子構造を読み込むことができ、2003年にBiopythonに追加されました。[16] オブジェクトStructureはこのモジュールの中心であり、階層的に高分子構造を構成します。オブジェクトはオブジェクトStructureを含み、オブジェクトはオブジェクトを含み、オブジェクトはオブジェクトを含み、オブジェクトはオブジェクトを含みます。無秩序な残基と原子は、不確実な位置を説明する
独自のクラスおよびを取得します。ModelChainResidueAtomDisorderedResidueDisorderedAtom
Bio.PDB を使用すると、タンパク質内の各原子を調べるなど、高分子構造ファイルの個々のコンポーネントをナビゲートできます。距離や角度の測定、残基の比較、残基の深さの計算などの一般的な分析を実行できます。
集団遺伝学
Bio.PopGenモジュールは、集団遺伝学の統計解析用ソフトウェアパッケージであるGenepopのBiopythonサポートを追加します。[17]これにより、ハーディ・ワインベルグ平衡、連鎖不平衡、および集団の対立遺伝子頻度のその他の特徴 の解析が可能になります。
このモジュールはfastsimcoal2プログラムを用いて合体理論を用いた集団遺伝学的シミュレーションを実行することもできる。 [18]
コマンドラインツールのラッパー
Biopython のモジュールの多くには、よく使用されるツールのコマンドライン ラッパーが含まれており、これらのツールを Biopython 内から使用できます。これらのラッパーには、BLAST、Clustal、PhyML、EMBOSS、SAMtools などがあります。ユーザーは汎用ラッパー クラスをサブクラス化して、他のコマンドライン ツールのサポートを追加できます。
参照
参考文献
- ^ ab Chapman, Brad; Chang, Jeff (2000 年 8 月). 「Biopython: 計算生物学のための Python ツール」. ACM SIGBIO ニュースレター. 20 (2): 15– 19. doi : 10.1145/360262.360268 . S2CID 9417766.
- ^ 「リリース biopython-181: コミットリリース 1.81 (#4233)」。2023年4月22日閲覧。
- ^
エラー: Wikidata からの参照を正しく表示できません。技術的な詳細:
- {{ Cite web }}が失敗した理由: 出力テンプレートの呼び出しで必須パラメータが見つかりません
url。 - {{ Cite Q }}が失敗した理由: 出力テンプレートの呼び出しで必須パラメータが欠落しています
1。
- {{ Cite web }}が失敗した理由: 出力テンプレートの呼び出しで必須パラメータが見つかりません
- ^ Cock, Peter JA; Antao, Tiago; Chang, Jeffery T; Chapman, Brad A; Cox, Cymon J; Dalke, Andrew; Friedberg, Iddo; Hamelryck, Thomas; Kauff, Frank; Wilczynski, Bartek; de Hoon, Michiel JL (2009 年 3 月 20 日). 「Biopython: 計算分子生物学およびバイオインフォマティクスのための無料で利用できる Python ツール」.バイオインフォマティクス. 25 (11): 1422– 3. doi :10.1093/bioinformatics/btp163. PMC 2682512. PMID 19304878 .
- ^ ab Biopython について説明した他の論文や、Biopython を使用/引用している 100 を超える出版物のリストについては、Biopython の Web サイトを参照してください。
- ^ Mangalam, Harry (2002 年 9 月). 「Bio* ツールキット - 概要」. Briefings in Bioinformatics . 3 (3): 296– 302. doi : 10.1093/bib/3.3.296 . PMID 12230038.
- ^ ab Chapman, Brad (2004 年 3 月 11 日)、The Biopython Project: Philosophy, functional and facts (PDF) 、2014 年9 月 11 日閲覧
- ^ Biopython 貢献者リスト、2014 年 9 月 11 日時点のオリジナルよりアーカイブ、2014 年9 月 11 日取得
- ^ Knight, R; Maxwell, P; Birmingham, A; Carnes, J; Caporaso, JG; Easton, BC; Eaton, M; Hamady, M; Lindsay, H; Liu, Z; Lozupone, C; McDonald, D; Robeson, M; Sammut, R; Smit, S; Wakefield, MJ; Widmann, J; Wikman, S; Wilson, S; Ying, H; Huttley, GA (2007). 「Py Cogent: 配列から意味を理解するためのツールキット」.ゲノム生物学. 8 (8): R171. doi : 10.1186/gb-2007-8-8-r171 . PMC 2375001. PMID 17708774 .
- ^ Daley, Chris、Biopython 1.77 リリース、 2021 年10 月 6 日閲覧
- ^ Chang, Jeff; Chapman, Brad; Friedberg, Iddo; Hamelryck, Thomas; de Hoon, Michiel; Cock, Peter; Antao, Tiago; Talevich, Eric; Wilczynski, Bartek (2014 年 5 月 29 日)、Biopython Tutorial and Cookbook 、 2014 年8 月 28 日閲覧
- ^ Zmasek, Christian M; Zhang, Qing; Ye, Yuzhen; Godzik, Adam (2007 年 10 月 24 日). 「先祖のアポトーシスネットワークの驚くべき複雑性」.ゲノム生物学. 8 (10): R226. doi : 10.1186/gb-2007-8-10-r226 . PMC 2246300. PMID 17958905 .
- ^ Talevich, Eric; Invergo, Brandon M; Cock, Peter JA; Chapman, Brad A (2012 年 8 月 21 日). 「Bio.Phylo: Biopython で系統樹を処理、分析、視覚化するための統合ツールキット」. BMC Bioinformatics . 13 (209): 209. doi : 10.1186/1471-2105-13-209 . PMC 3468381. PMID 22909249 .
- ^ 「Klebsiella pneumoniae株KPS77プラスミドpKPS77、完全配列」NCBI 。 2014年9月10日閲覧。
- ^ Pritchard, Leighton; White, Jennifer A; Birch, Paul RJ; Toth, Ian K (2006 年 3 月). 「GenomeDiagram: 大規模ゲノムデータの視覚化のための Python パッケージ」.バイオインフォマティクス. 22 (5): 616– 617. doi : 10.1093/bioinformatics/btk021 . PMID 16377612.
- ^ Hamelryck, Thomas; Manderick, Bernard (2003 年 5 月 10 日). 「Python で実装された PDB ファイル パーサーと構造クラス」. バイオインフォマティクス. 19 (17): 2308– 2310. doi : 10.1093/bioinformatics/btg299 . PMID 14630660.
- ^ Rousset, François (2008 年 1 月). 「GENEPOP'007: Windows および Linux 向け GENEPOP ソフトウェアの完全な再実装」. Molecular Ecology Resources . 8 (1): 103– 106. doi :10.1111/j.1471-8286.2007.01931.x. PMID 21585727. S2CID 25776992.
- ^ Excoffier, Laurent; Foll, Matthieu (2011 年 3 月 1 日). 「fastsimcoal: 任意の複雑な進化シナリオにおけるゲノム多様性の連続時間合体シミュレータ」.バイオインフォマティクス. 27 (9): 1332– 1334. doi : 10.1093/bioinformatics/btr124 . PMID 21398675.
外部リンク
- 公式サイト
- Biopython チュートリアルとクックブック (PDF)
- GitHub 上の Biopython ソースコード
