_images/biopython.jpg

2章 クイックスタート

この節はBiopythonをすばやく始め、何ができるかや、どのように使うかを全体的につかむためのものです。この節の例はあなたがPythonの一般的な知識を持っていること、そしてBiopythonのインストールに成功していることを仮定しています。もしあなたがPythonについて学び直す必要があるなら、Pythonのメインウェブサイトでは問題を解決するためのフリーなドキュメントがたくさん提供されています(http://www.python.org/doc/)。

多くのバイオインフォマティクス作業はインターネット上のデータベースとつなぐ作業を含みます。またいくつかの例は実行にネット接続が必要となるでしょう。

それではBiopythonでできることを身につけてみましょう。

2.1 Biopythonパッケージの全体像

イントロで述べたように、Biopythonは計算機を用いて仕事する生物学者にとって興味深そうなことを処理するためのライブラリです。これはあなたがいくらかのプログラミング経験(もちろんPythonにおいてです!)もしくはプログラムを学ぶことにすくなくとも興味がある必要があることを意味します。Biopythonの仕事は、特定のファイルフォーマットの内部を気にすることなく(もちろんあなたがBiopythonに無いパーサーを書くことでBiopythonを助け、貢献してくれるならどうぞ!)あなたにとって興味がある問題に答えることができるように再利用可能なライブラリを提供することでプログラマとしてのあなたの仕事をより簡単にすることです。Biopythonの仕事はあなたを幸せにすることなのです!

Biopythonについて注意すべきことの一つは”同じことをする”方法をしばしば複数提供しているということです。最近のリリースにおいては改善していますが、このことは何かをする正しい方法はひとつであるべきというPythonの思想においていらだたしいことです。しかしながら、これは実に利点ともなり得ます、なぜならそれは柔軟性とライブラリのコントロールを与えてくれるからです。さらなる可能性について学ぶには、クックブック(14章、ここにはいくつかのこつやヒントがあります)、より進んだ節(16章)、ビルトインの”docstrings”(PythonのヘルプコマンドもしくはAPIのドキュメンテーション)、最終的にはコードそのものを見てください。

2.2 配列でお仕事

議論の余地はあるかもしれませんが、バイオインフォマティクスにおける中心課題は配列です。それ故、私達はBiopythonの配列を扱う機能で手短なイントロを始めたいと思います。それはSeqオブジェクトというもので3章でより詳しく議論します。

配列について考える際、大概私達は‘AGTACACTGGT’のような文字列を思い浮かべると思います。そのようなSeqオブジェクトは以下のような “>>>” で表される Python プロンプトに続くタイプで作成できます。

>>> from Bio.Seq import Seq
>>> my_seq = Seq("AGTACACTGGT")
>>> my_seq
Seq('AGTACACTGGT', Alphabet())
>>> print my_seq
AGTACACTGGT
>>> my_seq.alphabet
Alphabet()

私達がここで扱うものは一般的なアルファベットの配列オブジェクトです。これはDNAもしくはタンパク配列であるか否かを特定しないということです(アラニン、グリシン、システイン、そしてスレオニンが多いのはタンパクですよ!)。私達は3章でさらにアルファベットについて話します。

アルファベットを持つことに加えて、SeqオブジェクトはサポートしているメソッドにおいてPythonのstringとは異なっています。これらのメソッドはプレーンなstringで使うことはできません。

>>> my_seq
Seq('AGTACACTGGT', Alphabet())
>>> my_seq.complement()
Seq('TCATGTGACCA', Alphabet())
>>> my_seq.reverse_complement()
Seq('ACCAGTGTACT', Alphabet())

次に重要なクラスはSeqRecord もしくは Sequence Record です。これらのクラスはID、名前、解説を含むアノテーションと共に配列を(Seq オブジェクトとして)保持します。配列ファイルフォーマットを読み書きするためのBio.SeqIO モジュールはSeqRecordオブジェクトと連動します。Bio.SeqIOモジュールは5章でさらに詳しく紹介します。

Bio.SeqIOモジュールはBiopythonの配列クラスの基本的な機能と用途をカバーしています。いまやBiopythonのライブラリと情報をどのようにやりとりするか掴めたことでしょう。それではバイオロジカルなファイルフォーマットを扱う楽しい世界へと掘り下げていきましょう!