忍者ブログ
バイオインフォマティックス技術者試験、情報処理試験など、IT系の試験を基礎から勉強します。また、Javaなどプログラミングを勉強します。

【バイオインフォ実習】第2回:セントラルドグマの実装(転写・翻訳)

前回はDNA配列の基本操作を学びました。第2回は、生物学の核心である「セントラルドグマ」をコードで動かしてみます。

セントラルドグマとは、遺伝情報が「DNA → RNA → タンパク質」と流れる仕組みです。IT的に言えば、DNAという「ソースコード」を、RNAという「中間形式」を経て、タンパク質という「実行プログラム」にビルドする工程と捉えると非常に分かりやすくなります。

1. セントラルドグマの実装コード

解説を分かりやすくするため、最小単位である6文字(アミノ酸2つ分)の配列で試してみましょう。

from Bio.Seq import Seq

# 1. DNA配列(最小構成の6文字)
dna = Seq("ATGTAA")
print(f"DNA: {dna}")

# 2. 転写(transcribe):TをUに置換するだけ
mrna = dna.transcribe()
print(f"RNA: {mrna}")

# 3. 翻訳(translate):3文字を1文字に変換
protein = mrna.translate()
print(f"Protein: {protein}")

2. 実行結果の確認

DNA: ATGTAA
RNA: AUGUAA
Protein: M*

3. 「Protein: M*」の正体は?

出力された M* は、3文字ずつの塩基(コドン)がデコードされた結果です。ここには生命の「規約(プロトコル)」が隠されています。

  • M(メチオニン)は「開始フラグ」:
    AUG という配列は、アミノ酸の「メチオニン」を指すと同時に、システムに対して「ここから翻訳を開始せよ」と伝える開始コドンの役割を果たします。ITでいう main() 関数のエントリーポイントのような存在ですが、「開始地点には必ずメチオニンというパーツを置く」という物理的なルールがあるのが面白いところです。
  • *(アスタリスク)は「終了フラグ」:
    UAA終止コドンと呼ばれます。これは特定のパーツ(アミノ酸)を指すのではなく、「ここで翻訳を終了せよ」という命令そのものです。ITでいう returnbreak、あるいはファイルの終端を示す EOF に相当します。

4. ITエンジニア的まとめ

今回の実習で、以下の変換プロセスを体験しました。

  • 転写: dna.transcribe() は、TをUに書き換えるだけの「形式変換」。
  • 翻訳: mrna.translate() は、3文字の暗号を1つの記号に変換する「デコード」。

生命もITシステムと同様に、決まった「開始」と「終了」の合図(プロトコル)に従って動いていることが分かると、バイオインフォマティクスがぐっと身近に感じられますね。

次回は、いよいよ本物の遺伝子データ(外部ファイル)を読み込んで解析する手法に挑戦します。



PR

【バイオインフォ実習】第1回:Biopythonの導入とSeqオブジェクトの基本

本シリーズでは、バイオインフォマティクスの基礎知識をベースに、Pythonの専門ライブラリである Biopython を用いた実装スキルの習得を目指します。

単なるツールの実行にとどまらず、ライブラリの仕様を理解し、自作の解析パイプラインやデータ処理に応用できる技術にしていく「実習形式」の連載です。

  • 対象読者:Pythonの基本操作は習得済みの方、バイオインフォマティクスの基礎知識をコードに落とし込みたい方、DNA解析の実装力を強化したいITエンジニア

1. 環境構築(Mac + Miniconda)

解析環境をクリーンに保つため、Minicondaを用いて専用の仮想環境を構築します。Pythonのバージョンは 3.13.5 を指定します。

# 仮想環境の作成(Python 3.13.5を指定)
conda create -n bio-env python=3.13.5 -y
conda activate bio-env

# Biopythonのインストール(conda-forgeを使用)
conda install -c conda-forge biopython -y

Note: なぜ conda-forge なのか?
conda-forge はコミュニティベースのリポジトリで、公式(defaults)よりもバイオ系のライブラリの更新が早く、依存関係のトラブルも少ないのが特徴です。バイオインフォマティクス分野では標準的に利用されているため、こちらのチャンネルを指定するのが無難です。

2. インストール確認と配列操作の基本

まずはBiopythonのバージョンを確認し、中心的な存在である Seq オブジェクトを扱います。標準の文字列型(str)とは異なり、生物学的な操作メソッドが備わっています。

import Bio
from Bio.Seq import Seq

# バージョン確認
print(f"Biopython Version: {Bio.__version__}")

# DNA配列の定義
dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGT")
print(f"Sequence  : {dna}")

# ① 相補鎖(Complement):A-T, G-Cの置換
print(f"Complement: {dna.complement()}")

# ② 逆相補鎖(Reverse Complement):配列を反転させてから置換
print(f"Rev-Comp  : {dna.reverse_complement()}")

3. 実行結果の確認

上記コードを実行すると、以下のような出力が得られます。逆相補鎖(Rev-Comp)が、DNAの方向性(5'→3')を考慮した正しい「裏側の鎖」になっていることに注目してください。

Biopython Version: 1.87
Sequence  : ATGGCCATTGTAATGGGCCGCTGAAAGGGT
Complement: TACCGGTAACATTACCCGGCGACTTTCCCA
Rev-Comp  : ACCCTTTCAGCGGCCCATTACAATGGCCAT

4. ITエンジニア的チェックポイント

  • データ構造の利点: 自前で置換ロジック(replace等)を組むのではなく、Seq オブジェクトのメソッドを用いることで、計算ミスを防ぎつつ可読性の高いコードを維持できます。
  • イミュータブル(不変): Seq は Python の str と同様にイミュータブルです。解析過程での意図しないデータ書き換えを防止する設計になっています。

まずは自分のMacで「DNAがコードとして動く」環境が整いました。次回は、生物学の基本原則である「セントラルドグマ(転写・翻訳)」の実装を扱います。