0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Biopythonを用いたgbkフィルの解析

Last updated at Posted at 2024-12-16

Biopython

近年、データサイエンスの世界で扱われているプログラミング言語Pythonですが、Bioinfomaticsにおいても、解析を容易にできるライブラリとしてBiopythonと呼ばれるものがあります。本記事では、インストールからgbkファイルを用いた具体的な解析方法を紹介します。

Biopythonインストール

pythonのパッケージ管理システムであるpipを用いてインストールできる。

pip install Biopython

または

python -m pip install BioPython

SeqIOクラス

from Bio import SeqIO

SeqIOは、BioPythonライブラリに含まれるモジュールで、様々な形式(フォーマット)のファイルを取り扱うことができる。読み込みと書き込みの両方をサポートしているため、SeqIOを利用することで、ファイルのフォーマットの変換も簡単に行えるようになる。

詳細はBioPython wiki

配列操作

塩基配列、アミノ酸配列についての文字列操作を行うには、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)]

参考

https://qiita.com/Ag_smith/items/94c4b97729b043fae0cb

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?