Biopython-plotting
Biopython-プロット
この章では、シーケンスのプロット方法について説明します。 このトピックに移る前に、プロットの基本を理解しましょう。
プロット
Matplotlibは、さまざまな形式で高品質の数値を生成するPythonプロットライブラリです。 折れ線グラフ、ヒストグラム、棒グラフ、円グラフ、散布図など、さまざまな種類のプロットを作成できます。
- pyLabは、数値モジュールnumpyとグラフィカルプロットモジュールpyplotを組み合わせたmatplotlibに属するモジュールです。** Biopythonは、シーケンスのプロットにpylabモジュールを使用します。 これを行うには、以下のコードをインポートする必要があります-
import pylab
インポートする前に、pipコマンドと以下のコマンドを使用してmatplotlibパッケージをインストールする必要があります-
pip install matplotlib
サンプル入力ファイル
Biopythonディレクトリに plot.fasta という名前のサンプルファイルを作成し、次の変更を追加します-
>seq0 FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF
>seq1 KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME
>seq2 EEYQTWEEFARAAEKLYLTDPMKVRVVLKYRHCDGNLCMKVTDDAVCLQYKTDQAQDVKKVEKLHGK
>seq3 MYQVWEEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVCLQYKTDQAQDV
>seq4 EEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVVSYEMRLFGVQKDNFALEHSLL
>seq5 SWEEFAKAAEVLYLEDPMKCRMCTKYRHVDHKLVVKLTDNHTVLKYVTDMAQDVKKIEKLTTLLMR
>seq6 FTNWEEFAKAAERLHSANPEKCRFVTKYNHTKGELVLKLTDDVVCLQYSTNQLQDVKKLEKLSSTLLRSI
>seq7 SWEEFVERSVQLFRGDPNATRYVMKYRHCEGKLVLKVTDDRECLKFKTDQAQDAKKMEKLNNIFF
>seq8 SWDEFVDRSVQLFRADPESTRYVMKYRHCDGKLVLKVTDNKECLKFKTDQAQEAKKMEKLNNIFFTLM
>seq9 KNWEDFEIAAENMYMANPQNCRYTMKYVHSKGHILLKMSDNVKCVQYRAENMPDLKK
>seq10 FDSWDEFVSKSVELFRNHPDTTRYVVKYRHCEGKLVLKVTDNHECLKFKTDQAQDAKKMEK
折れ線グラフ
次に、上記のfastaファイルの単純なラインプロットを作成しましょう。
- ステップ1 *-SeqIOモジュールをインポートして、fastaファイルを読み取ります。
>>> from Bio import SeqIO
- ステップ2 *-入力ファイルを解析します。
>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")]
>>> len(records)
11
>>> max(records)
72
>>> min(records)
57
- ステップ3 *-pylabモジュールをインポートしましょう。
>>> import pylab
- ステップ4 *-x軸とy軸のラベルを割り当てて折れ線グラフを構成します。
>>> pylab.xlabel("sequence length")
Text(0.5, 0, 'sequence length')
>>> pylab.ylabel("count")
Text(0, 0.5, 'count')
>>>
- ステップ5 *-グリッド表示を設定して折れ線グラフを構成します。
>>> pylab.grid()
- ステップ6 *-plotメソッドを呼び出し、入力としてレコードを提供することにより、単純な折れ線グラフを描画します。
>>> pylab.plot(records)
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]
- ステップ7 *-最後に以下のコマンドを使用してチャートを保存します。
>>> pylab.savefig("lines.png")
結果
上記のコマンドを実行すると、Biopythonディレクトリに次の画像が保存されます。
ヒストグラムチャート
ヒストグラムは連続データに使用され、ビンはデータの範囲を表します。 ヒストグラムの描画は、pylab.plotを除いて折れ線グラフと同じです。 代わりに、レコード(bin)のcustum値を使用して、pylabモジュールのhistメソッドを呼び出します(5)。 完全なコーディングは次のとおりです-
- ステップ1 *-SeqIOモジュールをインポートして、fastaファイルを読み取ります。
>>> from Bio import SeqIO
- ステップ2 *-入力ファイルを解析します。
>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")]
>>> len(records)
11
>>> max(records)
72
>>> min(records)
57
- ステップ3 *-pylabモジュールをインポートしましょう。
>>> import pylab
- ステップ4 *-x軸とy軸のラベルを割り当てて折れ線グラフを構成します。
>>> pylab.xlabel("sequence length")
Text(0.5, 0, 'sequence length')
>>> pylab.ylabel("count")
Text(0, 0.5, 'count')
>>>
- ステップ5 *-グリッド表示を設定して折れ線グラフを構成します。
>>> pylab.grid()
- ステップ6 *-plotメソッドを呼び出し、入力としてレコードを提供することにより、単純な折れ線グラフを描画します。
>>> pylab.hist(records,bins=5)
(array([2., 3., 1., 3., 2.]), array([57., 60., 63., 66., 69., 72.]), <a list
of 5 Patch objects>)
>>>
- ステップ7 *-最後に以下のコマンドを使用してチャートを保存します。
>>> pylab.savefig("hist.png")
結果
上記のコマンドを実行すると、Biopythonディレクトリに次の画像が保存されます。
シーケンスのGCパーセンテージ
GCパーセンテージは、さまざまなシーケンスを比較するために一般的に使用される分析データの1つです。 一連のシーケンスのGCパーセンテージを使用して簡単な折れ線グラフを作成し、すぐに比較できます。 ここでは、データをシーケンス長からGCパーセンテージに変更するだけです。 完全なコーディングは以下のとおりです-
- ステップ1 *-SeqIOモジュールをインポートして、fastaファイルを読み取ります。
>>> from Bio import SeqIO
- ステップ2 *-入力ファイルを解析します。
>>> from Bio.SeqUtils import GC
>>> gc = sorted(GC(rec.seq) for rec in SeqIO.parse("plot.fasta", "fasta"))
- ステップ3 *-pylabモジュールをインポートしましょう。
>>> import pylab
- ステップ4 *-x軸とy軸のラベルを割り当てて折れ線グラフを構成します。
>>> pylab.xlabel("Genes")
Text(0.5, 0, 'Genes')
>>> pylab.ylabel("GC Percentage")
Text(0, 0.5, 'GC Percentage')
>>>
- ステップ5 *-グリッド表示を設定して折れ線グラフを構成します。
>>> pylab.grid()
- ステップ6 *-plotメソッドを呼び出し、入力としてレコードを提供することにより、単純な折れ線グラフを描画します。
>>> pylab.plot(gc)
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]
- ステップ7 *-最後に以下のコマンドを使用してチャートを保存します。
>>> pylab.savefig("gc.png")
結果
上記のコマンドを実行すると、Biopythonディレクトリに次の画像が保存されます。