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

【バイオインフォ実習】第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がコードとして動く」環境が整いました。次回は、生物学の基本原則である「セントラルドグマ(転写・翻訳)」の実装を扱います。


PR