Biopython
近年、データサイエンスの世界で扱われているプログラミング言語Pythonですが、Bioinfomaticsにおいても、解析を容易にできるライブラリとしてBiopythonと呼ばれるものがあります。本記事では、インストールからgbkファイルを用いた具体的な解析方法を紹介します。
Biopythonインストール
pythonのパッケージ管理システムであるpipを用いてインストールできる。
pip install Biopython
または
python -m pip install BioPython
SeqIOクラス
from Bio import SeqIO
SeqIOは、BioPythonライブラリに含まれるモジュールで、様々な形式(フォーマット)のファイルを取り扱うことができる。読み込みと書き込みの両方をサポートしているため、SeqIOを利用することで、ファイルのフォーマットの変換も簡単に行えるようになる。
配列操作
塩基配列、アミノ酸配列についての文字列操作を行うには、from Bio.Seq import Seq
を使う。これによりSeq()の関数を使うことができ、塩基配列またはアミノ酸配列を定義することができる。
以下に Bio.Seq.Seq
の基本的な使い方と具体例を示します。
メソッド名 | 機能 |
---|---|
reverse_complement() |
配列の逆相補鎖を取得(DNA の A ↔ T, G ↔ C を変換して逆順にする) |
complement() |
配列の相補鎖を取得(逆順にはしない) |
transcribe() |
DNA 配列を RNA 配列に転写(T を U に変換) |
back_transcribe() |
RNA 配列を DNA 配列に逆転写(U を T に変換) |
translate() |
DNA または RNA 配列をタンパク質配列に翻訳(コドン → アミノ酸) -主な引数 to_stop 翻訳をストップコドンで終了するかどうか(デフォルトは False)table コドン表を指定(デフォルトは標準遺伝暗号) |
>>> from Bio.Seq import Seq
>>> dna_seq = Seq("ATGCGTACGTTAGC")
>>> print(dna_seq)
ATGCGTACGTTAGC
# 相補鎖
>>> print(dna_seq.complement())
TACGCATGCAATCG
# 逆相補鎖
>>> print(dna_seq.reverse_complement())
GCTAACGTACGCAT
# 転写
>>> print(dna_seq.transcribe())
AUGCGUACGUUAGC
# 翻訳
>>> print(dna_seq.translate(to_stop=True))
MRTL
データの読み込み(gbk)
records = SeqIO.parse("hoge.gbk", "genbank")
返り値はイテレーターオブジェクトになる
基本的なメソッド
- seq(DNA配列の取得)
- feature(配列の詳細な情報)
featrueメソッド
先程のfeatureに関して内包されているメソッド一覧
- location(配列のスタート位置と終了位置)
- start
- end
- strand(鎖の情報)
- -1 対の鎖
- 1 記載されている鎖
- type:geneかRNAかなど
- qualifiers:詳細な情報
具体的なコード
gbkファイルを読み込んで、出現するtRNAとその長さを出力するプログラム
from Bio import SeqIO
# GenBankファイルのパスを指定
file_path = "NC_012346.gbk"
# GenBankファイルを読み込む
records = SeqIO.parse(file_path, "genbank")
trna_list = []
for record in records:
for feature in record.features:
if (feature.type == "tRNA"):
start = int(feature.location.start)
end = int(feature.location.end)
product_type = feature.qualifiers["product"][0]
trna_list.append((product_type,end-start))
print(trna_list)
出力
[('tRNA-Phe', 67), ('tRNA-Val', 67), ('tRNA-Leu', 75), ('tRNA-Ile', 69), ('tRNA-Gln', 72), ('tRNA-Met', 69), ('tRNA-Trp', 67), ('tRNA-Ala', 69), ('tRNA-Asn', 74), ('tRNA-Cys', 67), ('tRNA-Tyr', 68), ('tRNA-Ser', 73), ('tRNA-Asp', 69), ('tRNA-Lys', 67), ('tRNA-Gly', 69), ('tRNA-Arg', 69), ('tRNA-His', 70), ('tRNA-Ser', 60), ('tRNA-Leu', 70), ('tRNA-Glu', 69), ('tRNA-Thr', 69), ('tRNA-Pro', 66)]