3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[python]biopythonでゲノミクスに便利なコマンド

Last updated at Posted at 2021-03-28

#はじめに
ゲノミクスをやってるとしばし、DNA配列と睨めっこしたり、相補鎖見たり、転写産物をみたり、翻訳したりといったことをする。
これまでの私はその都度、配列をWEBのツールとか使って処理したりしてました。

例えば以下のような配列があったとすると、以下のような処理をすることがあります。

元のDNA配列
 ACCCACGCCAACAAGAGCAT
転写
 ACCCACGCCAACAAGAGCAU
翻訳(アミノ酸一文字表記)
 THANKS
相補鎖
 TGGGTGCGGTTGTTCTCGTA
相補鎖を反対から読んでいった配列
 ATGCTCTTGTTGGCGTGGGT
相補鎖での翻訳
 MLLLAW

こんな感じのことを、エクセルなんかを使いつつ非効率に処理してました。

#biopythonだと
biopythonだと上で書いた処理が全て一行のコマンドでできちゃいます。
まずはインポートしたり配列を変数に入れたり。

ライブラリimportとsequenceの準備
from Bio.Seq import Seq
sequence = Seq("ACCCACGCCAACAAGAGCAT")
print(sequence)

# 実行結果
ACCCACGCCAACAAGAGCAT

これで準備ができたので、あとは用意したsequenceに関数を実行するだけ。

transcribe()
#転写
print (sequence.transcribe())
# 実行結果
Seq('ACCCACGCCAACAAGAGCAU')
translate()
#翻訳
print (sequence.translate())
# 実行結果
Seq('THANKS')
complement()
#相補鎖
print (sequence.complement())
# 実行結果
Seq('TGGGTGCGGTTGTTCTCGTA')
reverse_complement()
#相補鎖を反対から読んでいった配列
print (sequence.reverse_complement())
# 実行結果
Seq('ATGCTCTTGTTGGCGTGGGT')
reverse_complement().translate()
#相補鎖を反対から読んでいった配列を翻訳
print (sequence.reverse_complement().translate())
# 実行結果
Seq('MLLLAW')

seq内はすべて普通のpython文字列として扱うことができるので、部分的な切り貼りなんかもできて便利です。

# 3塩基目から最後まで
print (sequence[2:])
# 先頭から4塩基目まで
print (sequence[:4])
# 逆順に返す
print (sequence[::-1])
# 配列をくっつける
print (sequence + sequence)

# 実行結果
CCACGCCAACAAGAGCAT
ACCC
TACGAGAACAACCGCACCCA
ACCCACGCCAACAAGAGCATACCCACGCCAACAAGAGCAT

#Python環境
私の場合はanaconda(Python 3.8.5)を入れてるので、以下のような感じでanaconda.navigatorからbiopythonをインストールしてます。
他のPythonのパッケージと同じくターミナルコマンドでpipを使って入れることもできます。
image.png
Google collabとか使う人でも
以下のコマンドを打てばbiopythonをすくに使えます。(先頭に「!」をつけると、ターミナルコマンドになるみたいです。)

! pip install biopython

#他にも色んな機能があるみたいです
他にも以下のような便利機能があります。
まだまだたくさんあると思いますが一部紹介。

GC含有量の確認
from Bio.SeqUtils import GC
print (GC(sequence))
#実行結果
55.0
FASTAの読み込み
#sequence.faというFASTAファイルの読み込み
from Bio import SeqIO
record = SeqIO.read ('sequence.fa', 'fasta')
#配列のIDは.idで取得できる
print (sequence.id)
#配列情報は.seqで取得できる
print (sequence.seq)

#biopythonの演習に
以下のKaggleの解答がbiopythonいいお勉強になるのでおすすめです!
コードは全部書いてあるので、Google collabとかで実行するだけで、なんか賢くなった気になれますのでおすすめです笑

#ちょっとひとこと
biopythonに入ってる関数はどれも簡単なものばかりでちょっと頑張れば自分でも書けるものばかりですが、
(例えば翻訳の関数なんて、それぞれのコドンに対してアミノ酸が辞書型で登録されているだけという、なんとシンプルだけど自分じゃ絶対書かないめんどくさいやつ笑)
そんな感じなので、用意してくれてるのであれば、使えるものは使っていきましょう!笑

#おわりに
こんな風にバイオインフォマティクスの便利ツールが詰まってるbiopythonを皆さんもぜひ使ってみてください(^^)

以下記事の参考にさせていただきました。ありがとうございます。

3
2
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
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?