1
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?

バイオインフォ用環境構築・ツールインストール

Last updated at Posted at 2025-07-23

環境構築とは

環境構築とは、プログラムやツールを正しく動作させるために必要なソフトウェア、ライブラリ、依存関係などを整える作業のことを指す。特に研究・開発やデータ解析の分野では、使用するツールや実行環境が異なれば同じコードでも正しく動かないことがあるため、環境構築は再現性や効率性の観点から非常に重要である。
たとえばPythonを使った解析では、必要なパッケージやバージョンの違いによるエラーを防ぐために仮想環境を使うことが一般的だ。こうした仮想環境は conda や venv などで構築され、他のプロジェクトとの干渉を防ぐ。
また、LinuxサーバなどGUIのない環境では、wget や git clone を使ってツールを手動で取得し、パスを通して実行することも多い。最近では、bioconda などの専門的なチャネルも利用されることで、バイオインフォマティクス分野の環境構築も容易になりつつある。
環境構築は「面倒な前作業」として敬遠されがちだが、開発や解析を安定して進めるための土台であり、最初に丁寧に整えることで後のトラブルを大きく減らすことができる。再現性のある科学・開発のためには欠かせない工程である。
c.f. https://qiita.com/SatoshiSobue/items/bd6931cd1b8965c37819

今回扱うパッケージマネージャ概要・本記事で学ぶこと

Linuxサーバ環境での作業を前提にした環境構築手法とその特徴

■ conda / miniconda

  • Pythonやバイオ系ツールを仮想環境ごとに管理できるパッケージマネージャ。
  • conda create -n 環境名 で独立した環境を作れる。
  • conda install で依存関係も自動解決してくれる。
  • GUI不要。すべてターミナル操作で完結。
  • 複数ツールを入れるときは、base環境ではなく個別の環境に分けるのが基本。

■ mamba

  • conda の互換ツールで、依存関係解決が高速。
  • conda install -c conda-forge mamba でインストール可能。
  • mamba install のように使い方はcondaと同じ。

■ pip

  • Python公式のパッケージ管理ツール。
  • pip install パッケージ名 でPyPIからパッケージを取得。
  • conda 環境内で使うことで、特定環境に限定してインストール可能。
  • 依存関係解決がcondaほど強くないので、併用時はcondaでまず必要なものを入れ、あとでpipを使うのが安全。

■ wget / curl

  • コマンドラインからファイルをダウンロードするためのツール。
  • wget URLcurl -O URL でtar.gzやzipなどを取得。
  • 展開後、PATHを通して使うケースが多い。
  • GUIがないサーバ環境では標準的な取得手段。

■ git clone

  • GitHubなどのソースコードを取得する手段。
  • 開発版ツールや論文に付属のツールなど、pip/conda未登録のものに使う。
  • git clone URL で取得し、pip install . で使える場合も多い。
  • PATHを通してスクリプトを直接呼び出す形式のものもある。

■ PATHの追加

  • ツールのbinディレクトリを環境変数PATHに追加することで、どこからでもコマンドが使えるようになる。
  • 優先順位をつけるために export PATH=~/mytool/bin:$PATH のように先頭に追加するのが基本。

■ 実践ポイント

  • 再現性のためにも、ツールやプロジェクトごとに仮想環境を分けて管理するのが基本。
  • 依存関係の衝突を避けるために、conda > pip > その他手動インストールの順に試すのがセオリー。
  • インストールしたツールの確認には which--version で確認する。

conda を用いたツールのインストール

condaパッケージマネージャはPythonやバイオ系ツールを仮想環境ごとに管理できるパッケージマネージャで、「Anaconda」「Miniconda」「Miniforge」などの選択肢がある。他パッケージマネージャと比較して、仮想環境の管理や依存関係の解決に優れる。

  • Anaconda は、Python本体に加えてNumPy、pandas、matplotlib、Jupyterなどデータ解析や機械学習に必要な250以上のパッケージを同梱した重量級ディストリビューションである。容量が重い(3~5GB以上)。
  • Miniconda は、Anacondaと同じくAnaconda社が提供する軽量版で、Pythonとcondaだけを含む最小構成となっている。非常に軽量(200MB程度)で、conda-forgeやbioconda中心の環境構築向きと言える。本記事では Minicondaを中心に扱う。
  • Miniforge は、Anaconda社ではなくコミュニティ(conda-forgeプロジェクト)が提供する完全にオープンな最小構成ディストリビューションである。最大の特徴は、初期設定でconda-forgeチャネルを優先しており、Anaconda独自のdefaultsチャネルを使わない点にある。ライセンス的に完全オープンで、商用利用時に便利。c.f. Anaconda有料化 (https://qiita.com/tfukumori/items/f8fc2c53077b234384fc)
     

自身でいろいろ調べながらやってみてください
https://progzakki.sanachan.com/tools/miniconda-install-and-basic-command/
https://qiita.com/Scstechr/items/10e460c66fb3cbf3bb22

miniconda のインストール

conda環境を入れたことがない人向け

(すでに miniconda を入れている人はスキップ, すでにanacondaを入れている人は次項目参照)

# miniconda
# https://repo.anaconda.com/miniconda/ の最新版 miniconda をインストール
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
$ bash Miniconda3-latest-Linux-x86_64.sh

# conda のインストールが初めての場合 ライセンス同意あとの下記画面で yesを指定
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
    run the following command when conda is activated:

conda config --set auto_activate_base false

You can undo this by running `conda init --reverse $SHELL`? [yes|no]
# yes を指定 !
[no] >>> yes

# $SHELL を再起動
$ exec bash

# 確認
$ conda --version
$ conda info

すでにanacondaがインストール済みの場合

# miniconda 
# https://repo.anaconda.com/miniconda/ の最新版 miniconda をインストール 
$ wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh 
$ bash Miniconda3-latest-Linux-x86_64.sh 

# anaconda インストール済みの場合
Do you wish to update your shell profile to automatically initialize conda?
This will activate conda on startup and change the command prompt when activated.
If you'd prefer that conda's base environment not be activated on startup,
    run the following command when conda is activated:
    
conda config --set auto_activate_base false

You can undo this by running `conda init --reverse $SHELL`? [yes|no]
# 既インストールAnacondaをデフォルトで使用したい場合はno を指定 !! ← ここ重要
# これからMiniconda中心でやっていくならyesでも可
[no] >>> no

$ conda info
# active env location : /home/USERNAME/anaconda3 を確認
# minicondaの base環境を手動でアクティベート
$ source ~/miniconda3/bin/activate base
# minicondaが activateできたか確認
$ conda info

# 環境の手動切り替え
# miniconda
$ source ~/miniconda3/bin/activate base
# anacondaに戻す
$ source ~/anaconda3/bin/activate base

conda環境の整備

バイオインフォマティクスのツールはOSS (Open Source Software) として bioconda や conda-forge チャネルで多く提供されている。

# 現在のチャンネル設定・優先順を確認してみる
$ conda config --show channels
# チャンネル設定をリセットするコマンド(必要に応じて)
$ conda config --remove-key channels

このチャンネル追加時に、condaは上から順にチャネルを探索して、最初に見つかったパッケージを使うため、順番次第でどのバージョン・どのビルドのパッケージがインストールされるかが変わることがある。そのため実際のインストール時には-c biocondaなどで優先チャンネルを指定することを強く推奨。

主なチャンネル 内容 優先理由
conda-forge 最新のOSSパッケージが豊富 依存関係が一貫していて信頼性が高い
bioconda 生物系ツール biocondaを使うにはconda-forgeが必要
defaults Anaconda標準パッケージ 古くて互換性の低いものがある

必要なチャンネルを追加する。

$ conda config --add channels conda-forge
$ conda config --add channels bioconda
$ conda config --add channels defaults

C++で実装された高速なcondaパッケージマネージャ mamba を入れておく

$ conda install -c conda-forge mamba -y

よく使うツールをインストールしてみる

samtoolsをcondaのbase環境にインストール

samtools

NGSデータ解析でよく扱う、SAM/BAMファイルを効率的に操作するための多機能ツールキット。SAMはリードのマッピング情報を記録する人間可読なテキスト形式、BAMはその圧縮されたコンピュータ向けバイナリ形式。
c.f. https://note.com/ozk7311/n/n20ab87b33e5d ,
https://kazumaxneo.hatenablog.com/entry/2019/01/04/220013

# samtoolsをインストール
$ conda install -c bioconda samtools -y
# インストール確認
$ which samtools
$ samtools --version

注意: よく使うツールはいくつかbaseに入れていいが、base環境にいろいろ入れると重くなるので注意。また、ツールやツール依存環境の競合が懸念される。そのため、下記のようにツールごとに個別の仮想環境 (またはプロジェクトごと) を構築し、個別環境にツールをインストールして管理する方が良い。

ツール専用の仮想環境を構築してbwaをインストール

BWA

NGSで得られたリードをリファレンスゲノムに高速にマッピングするためのツール
c.f. https://bi.biopapyrus.jp/rnaseq/mapping/bwa/

# 新しい仮想環境(ここでは環境名を「bwa_env」と名付ける)を作成
$ conda create -n bwa_env -y
# 新しい環境をアクティブ化
$ conda activate bwa_env
# bwaをインストール
$ conda install -c bioconda bwa -y
# インストール確認
$ which bwa
$ bwa # helpが出る
# bwa_env からぬける
$ conda deactivate

# 仮想環境の確認や切り替え
# 一覧確認
$ conda info -e
# 切り替え
$ conda activate 環境名

pipによるインストール (conda環境の中にpipでツールをインストールする)

pip

Python公式のパッケージ管理ツール。pip install パッケージ名 でPyPIからパッケージを取得。

conda環境の仕組み

conda 環境をアクティベートした状態で pip install を実行すると、その環境のパッケージのみがインストールされる。(conda 環境のアクティベート時に、環境の bin/ ディレクトリがPATHの先頭に追加されるから)
そのため、pip install を実行したconda環境に依存して管理が可能で、他のconda 環境 (activateしていない環境) には影響しない。

依存関係の管理には注意が必要

pip でインストールすると、conda の依存関係解決機能が適用されないため、他の conda パッケージとの依存関係に競合が発生する可能性がある。複雑な依存関係を持つパッケージは (というかcondaでインストールできるなら) conda でインストールした方が安全。

環境のエクスポート時の違い

conda 環境をエクスポートする際、pip でインストールしたパッケージは environment.yml には自動で含まれない。このため、pip でインストールしたパッケージも含める場合は、--from-history オプションを使用するか、手動で pip パッケージリストを出力・保存しておく必要がある。

$ conda env export --from-history > environment.yml

アンインストール時の扱い

pip でインストールしたパッケージは、pip uninstall で削除する必要がある。conda remove では pip インストールしたパッケージは管理されないため削除できない。

pip と conda の併用時の注意点

  • conda でインストール可能なパッケージは conda でインストール
    依存関係が解決されやすいため、可能な限り conda でインストールするのが推奨される。
  • pip で必要なパッケージは後からインストール
    conda で必要なパッケージを全てインストールした後に、pip で追加パッケージをインストールすることで、conda と pip の競合が少なくなる。
# pip経由で pysamをインストールしてみる
$ conda create -n pysam_env python=3.8 -y
$ conda activate pysam_env
$ pip install pysam -y
# インストール確認
$ python -c "import pysam; print(pysam.__version__)"

wget による SRA-toolkit のインストール

wget コマンド

GUIがないサーバ環境において、コマンドラインからファイルをダウンロードするための標準的なコマンド。 wget URLcurl -O URL でtar.gzやzipなどを取得。展開後、PATHを通して使うケースが多い。

SRA Toolkit (Sequence Read Archive Toolkit)

NCBIの提供する SRAデータ(高速シーケンシングデータ)を取得・変換・解析するためのコマンドラインツール。
condaでもインストール可能だが、使用頻度が高いと思われるので home dir にインストールし global PATH を通してどこからでも使えるようにしよう。

# wget 入ってないサーバ環境では brew でインストール
# home dir にインストールするものとする
$ cd ~/
$ wget https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/current/sratoolkit.current-
centos_linux64.tar.gz
$ tar -xzf sratoolkit.current-centos_linux64.tar.gz
# global path を通す ver.3.1.1の場合は下記 インストールしたバージョンに合わせて要変更
# bashの場合は下記 zshは.zshrcに書込み
$ echo 'export PATH=~/sratoolkit.3.1.1-centos_linux64/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc
# インストール確認
$ fastq-dump --help

Global PATHを通す際の PATH 記載方法

PATHを通す際に下記のように2通りの記載方法がある。

  1. export PATH=~/sratoolkit.current-centos_linux64/bin:$PATH
    この形式では、新しいパスが先頭に追加される
    メリット: 新しいパスが優先されるため、既存の PATH に同名のコマンドがあっても、今回追加した SRA-toolkit のコマンドが優先的に使用される。
    用途: 特定のバージョンや新しいツールを優先したい場合に便利。基本こっちでいい。
     
  2. export PATH=$PATH: ~/sratoolkit.current-centos_linux64/bin この形式では、新しいパスが末尾に追加される
    メリット: 既存の PATH のコマンドが優先されるため、システムのデフォルトバージョンを保ちながら、新しいパスも利用可能にしたい場合に便利。
    用途: あくまで追加ツールとして利用したい場合や、同名コマンドのシステムバージョンを優先したい場合に適している

現在のPATH状態を見て優先順位を確認する

echo $PATH
# どのディレクトリが優先されているか(左から順)がわかる

git clone でのインストール

まだ PyPI / conda-forge に登録されていない開発版や個人製作のソフト (新しい論文に出たばかりのツール、GitHub上のプロトタイプなど)のインストール

# git clone 経由で3D-DNAをインストールしてみる
$ conda create -n 3d-dna -y 
$ conda activate 3d-dna 
$ conda install numpy -c conda-forge scipy matplotlib parallel -c bioconda java-jdk -y  
$ git clone https://github.com/aidenlab/3d-dna.git 
$ cd 3d-dna 
$ chmod +x run-asm-pipeline.sh 
# export PATH=~/3d-dna:$PATH 
$ echo 'export PATH=~/3d-dna:$PATH' >> ~/.bashrc 
$ source ~/.bashrc 
$ run-asm-pipeline.sh --help

実践: ゲノムをマッピングしてみよう

c.f. BWAによるマッピング https://eupatho-bioinfomatics.hatenablog.com/entry/2021/06/14/%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E3%82%B2%E3%83%8E%E3%83%A0%E3%81%B8%E3%81%AE%E3%83%9E%E3%83%83%E3%83%94%E3%83%B3%E3%82%B0_%5BBWA%5D
c.f. ゲノム解析ワークショップ https://syllabus.sfc.keio.ac.jp/courses/2024_25216?locale=ja

# データのダウンロード 
$ prefetch SRR2584863 
$ fastq-dump --split-files SRR2584863 
 
# リファレンスゲノムのダウンロードと解凍 
$ wget https://ftp.ncbi.nlm.nih.gov/genomes/all/GCA/000/005/845/GCA_000005845.2_ASM584v2/GCA_000005845.
2_ASM584v2_genomic.fna.gz 
$ gunzip GCA_000005845.2_ASM584v2_genomic.fna.gz 
 
# インデックス作成 
$ bwa index GCA_000005845.2_ASM584v2_genomic.fna 
 
# マッピング実行 
$ bwa mem GCA_000005845.2_ASM584v2_genomic.fna SRR2584863_1.fastq SRR2584863_2.fastq > aligned_reads.sam 
 
# 結果をみる 
$ head aligned_reads.sam 

おまけ

他ツールをインストールして解析速度などを比較してみよう
https://cell-innovation.nig.ac.jp/SurfWiki/mapping_compare.html

1
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
1
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?