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

【Biocondaで学ぶバイオインフォ 第1回】現代的なM3 Mac環境構築編

今回から新連載として、パッケージマネージャ「Bioconda」を活用したバイオインフォマティクス(生物情報科学)の入門シリーズをスタートします!

バイオ系のツールはC言語やPython、Rなどが複雑に絡み合い、依存関係の競合(いわゆる依存関係の泥沼)が起きやすいことで有名です。しかし、現代にはBiocondaという強力なエコシステムがあります。これを使えば、他人が一発で再現できるクリーンな解析環境を簡単に構築できます。

記念すべき第1回は、手元の M3 Mac(Apple Silicon / macOS 15) を使い、すでに導入されている Miniconda の環境を1ミリも汚さずに、最もスマートかつ現代的なバイオ解析環境を構築する手順を解説します。

1. まずは足元の環境確認から

本連載では、すでにMacに Miniconda が導入されている状態を前提に進めます。まずはターミナルを開き、現在の Conda のバージョンを確認してみましょう。コマンドは以下の通りです。

# Condaのバージョンを確認する
conda --version

2. 実行結果の確認

以下のように最新のバージョンが表示されれば、準備はバッチリです。

conda 26.1.1

3. 既存の環境を汚さない「隔離戦略」

Minicondaのグローバルな環境(base環境)に直接 Bioconda のツールをインストールしていくのは、絶対に避けるべきです。リポジトリの優先順位が衝突し、既存のPython環境が壊れてしまう原因(環境の崩壊)になるからです。

そこで今回は、バイオツール専用のリポジトリ設定を持った「完全に独立した仮想環境」を1つ作り出す戦略をとります。Mac本体のPython(今回は最新のPython 3.13.5が入っています)には1ミリも影響を与えず、バイオの現場で最も安定して動く Python 3.12 の実験室を個別にビルドします。

4. チャンネルを指定して一発で仮想環境を作る

さっそく、連載用の仮想環境 bio_env を作成しましょう。このコマンドの中で、バイオ専用アプリストア(リポジトリ)である bioconda と、Apple Siliconに対応した最新パッケージが豊富な conda-forge を明示的に指定します。

また、テストとしてバイオインフォ界の必須ツール samtools も同時にインストールします。以下のコマンドをターミナルにコピペして実行してください。

# 既存の環境を無視し、バイオ専用のチャンネル構成で「bio_env」を作成
conda create -n bio_env -c conda-forge -c bioconda -c defaults --override-channels python=3.12 samtools -y

5. 実行結果の確認

コマンドを実行すると、依存関係にある大量のパッケージが自動でダウンロードされ、環境へトランザクションが実行されます。末尾に以下のログが出れば成功です。

Downloading and Extracting Packages:

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate bio_env
#
# To deactivate an active environment, use
#
# $ conda deactivate

無事に成功したので、指示通りに環境をアクティベート(有効化)します。

conda activate bio_env

ターミナルの左端が (bio_env) に切り替われば成功です!

6. 仕上げ:この環境だけの「厳格なプロトコル」を設定

ここで、この bio_env 環境の内部だけで適用される、チャンネルの優先順位ルールを固定します。これがバイオインフォで環境を壊さないための最大の生命線になります。

# チャンネル優先順位を「厳格(strict)」に固定する
conda config --env --set channel_priority strict

ITエンジニア的に言えば、これは「リポジトリの競合回避策」です。実は、conda-forgebioconda には、同じ名前の共通C言語ライブラリ(圧縮系のzlibなど)が別々に登録されています。もし順位がガバガバだと、Condaが「バージョンが新しいから」と別リポジトリのものを混ぜこぜに上書きしてしまい、ツールがセグメンテーションフォールト(セグフォ)で落ちる原因になります。

strict を指定することで、「基本ライブラリは Apple Silicon に最適化された conda-forge からしか入れない。バイオ専用ツールだけを bioconda から探す」という、完璧で安全な住み分けを強制できます。

7. 環境内の Python とバイオツールの起動テスト

最後に、構築された環境内の Python バージョンと、先ほど入れたバイオインフォ界の必須ツール samtools が M3 Mac 上で正しくネイティブ動作するか、確認コマンドを叩いてみましょう。

# 環境内のPythonバージョン確認
python -V

# samtoolsのバージョン確認
samtools --version

8. 実行結果の確認

ターミナルに以下のように出力されました!

Python 3.12.13
samtools 1.23.1
Using htslib 1.23.1
Copyright (C) 2025 Genome Research Ltd.

9. コラム:起動テストで入れた「samtools」とは何者か?

起動テストであっさり動いた samtools ですが、実はバイオインフォマティクスをやる上で絶対に避けて通れない「超大御所ツール」です。Linuxコマンドでいう sedawkgrep のような基本インフラだと思ってください。

次世代シーケンサー(NGS)から出力されるギガバイト〜テラバイト級の膨大なゲノム配列データ(マッピング結果のテキストファイルである「SAM」や、それをバイナリ化した「BAM」)を、C言語ベースの圧倒的な速度でパース、ソート、フィルタリングするための仕組みが凝縮されています。

UNIX思想に非常に忠実で、標準入出力をサポートしているため、中間ファイルをディスクに吐き出さずにパイプ( | )で他のツールとストリーム処理を繋ぐことができます。今後の連載(マッピングや変異検出)でもデータ処理の職人として大活躍しますので、この第1回でスマートに導入できたのは大きな一歩です!

既存のMiniconda(base環境)を完全に隔離したまま、M3 Mac の中で最強のバイオインフォマティクス基盤が立ち上がりました!



PR