Biopython-plotting

提供:Dev Guides
移動先:案内検索

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ディレクトリに次の画像が保存されます。

GCシーケンスの割合