LoginSignup
0
1

More than 1 year has passed since last update.

QIIME2 細菌叢の解析 Part1 Intel Macへの環境構築

Last updated at Posted at 2023-04-10

はじめに

こんにちは
卒論で初めてバイオインフォマティクスに触れることになった大学5年生です。(執筆当時)
情報系でも理工学系でもありませんが、
右往左往しつつも遺伝子解析の一種である16SrRNAアンプリコン解析のdryな部分を実行しました。

学科の性質上、実験でもwetな生物や実験の知識を持っていましたが、
プログラミングや統計学はさわり程度の理解しかありませんでした。
それでもやってみたら思いの外なんとかなりました。

この記事は
ほぼゼロからQIIME2を用いるところまでたどり着けたので
どのような流れで始めたら良いのか何が必要なのか考えた内容になります。
対象はこれから腸内細菌叢の解析でとりあえずQIIME2を動かしてみたい人向けです。
公式HPのInstaling QIIME2を読んでもしっくりこない人が対象です。
また、卒論の過程でNGSや腸内細菌叢、16SrRNAについても調べておりましたので、
用語についても私の理解に基づく簡単な説明をしております。

厳密な理解を求めるならば「次世代シーケンサーDRY教本」や「メタゲノムデータ解析凄技レシピ」に
流れや用語の正確な定義が記載されておりますので、そちらをご参照ください。

すでに周辺知識のある人には物足りない内容になっているかもしれません。
内容に不備や間違いなどございましたら、ご指摘していただけたら嬉しく思います。

目次

はじめに
経緯
動作環境
Intel MacとM1 Mac
Pythonで書かれたQIIME2について
1.QIIME2を入れるための準備
2.QIIME2を導入

経緯

NGSが出て以降、遺伝子解析の敷居が下がったので、
腸内細菌叢シングルセル解析でなにかしてみたいと思う人は多いと思います。
ですが専攻している分野と大きく隔たりがあると、困難もその分大きいように感じます。
何から始めたら良いか分からなったり、
何とか導入できてもエラーの解消ができなかったりと、辞めてしまう人も多いのではないでしょうか

私自身、ゼミも遺伝子解析とは無縁でしたが、
指導教員から提示してもらった卒業論文のテーマがきっかけでバイオインフォマティクスに興味を持ちました。
家族の影響で自作パソコンを組むなど、ハードの部分では多少知識があったのですが、
ソフトの部分では難しいことをあまりしてきませんでした。そのリベンジもあったように思います。

QIIME2の公式HPに手厚く解説が書いてありますが、
門外漢が取り組むのに、作業を進める中で様々なギャップを実感しました。
例えばですが、何かを導入するのに、
・これはこう書かれているけど、これを入れるのにこれが必要で…
・この環境ではこれが必要で…
などと面倒な入れ子構造になっていたことがあります。

書かれている内容に関して橋渡し的な内容が欲しいと思ったので、
今後QIIME2を始める人がいれば、その一助になればと備忘録も兼ねて記事を作成しています。
なお、今回の記事では基本的にIntel Macへの導入方法になります。
Intel MacM1 Macについては後述します。

NGS(Next Generation Sequencing) : 次世代シーケンサー。比較的安価で短時間で遺伝子配列の決定ができる。

  • 第1世代 : サンガー法+キャピラリー電気泳動で読取塩基長は~1000塩基。
  • 第2世代 : 短いDNA断片を増幅し、蛍光分子の付加によりDNAの塩基配列を決定。読取塩基長は~数百塩基。
    • illumina社のMiseqで環境中(土壌、水、腸内、etc)の細菌16SrRNAを読み取るのは第2世代
    • QIIME2は16SrRNAの解析を含む様々な遺伝子解析ができる。
  • 第3~5世代 : 1分子のDNAの塩基配列をPCR無しで読み取る。読取塩基長は平均10k塩基。

腸内細菌叢 : 腸内に存在する細菌たちのこと。読み取る塩基配列の長さでショートリードシーケンスやロングリードシーケンスがある。前者は系統分析に向いており、後者であれば機能予測も可能。また、前者の具体例に種特有に保存されている領域である16SrRNAを増幅させシーケンスをするアンプリコン解析や、de novo(新規)にゲノム断片を結合させロングリードを構成するシーケンスを行うショットガンメタゲノム解析がある。

動作環境

  • 機種ID:MacBookPro14,1
  • プロセッサ:2.3GHzデュアルコアIntel Core i5
  • メモリ:16 GB
  • MacOS:Monterey version12.4

マシンスペックに関してよほど貧弱でなければ動くと思いますが、
メモリが少ないとOS側から落とされることがあるようです。
QIIME2で十数万のリードを処理しましたが、16GBで特に問題は生じませんでした。

Intel MacとM1 Mac

  • 2020年6月からAppleはMacのCPUアーキテクチャ(基本設計)
    Intel社製のもの(Intel Mac) から 自社製のもの(M1 Mac) に移行させています。
  • 現行で発売されている製品はほぼM1/M2 Macに切り替わっています。
    • 従来のIntel Mac向けに設計されたプログラムをM1 Macで使えるようにすることも同様に過渡期です。なので、M1 MacだとQIIME2を入れる過程でイレギュラーな対応を迫られるかもしれません。 Kenta Nakamuraさんが『【M1 Pro/Max対応】M1 Mac環境構築ベストプラクティス』でNakamuraさんが調べた範囲におけるベストなセットアップについて詳しく紹介されています。
  • 私の環境はIntel Macだったので、QIIME2を入れるまでに問題が起こりませんでした。

  • Intel MacとM1 Macを見分けるには自身のMacについてプロセッサを調べると分かります。Tamocさんの「Intel MacとAppleシリコンMac(M1, M2等)を見分ける方法」に詳細な方法が載っています。

Pythonで書かれたQIIME2について

  • QIIME2はPythonというプログラミング言語で書かれています。
    そのためにPythonを記述・実行をする環境を構築しなければなりません。
  • したがって、この記事はローカル環境にQIIME2を使用できる環境を構築するまでを目標としています。
  • Python情報サイトであるPython.jpのHPにpython自体のことや導入法について詳しくまとめられていますが、導入法とAnacondaやminicondaについて、以下、必要な部分だけ取り出して記述します。
    • 主な導入法は数種類あり、公式サイトのインストーラーを用いる方法やAnacondaを用いたものなどがあります
    • データサイエンスをするなら多様なライブラリを使うことの出来る、機械学習と親和性の高いAnacondaが選ばれます。
  • QIIME2のインストールガイドではAnacondaの軽量版であるminicondaが推奨されています。
    • Anaconda 約300のパッケージ
      • miniconda Anacondaの最低限のライブラリ(約30のパッケージ)が搭載された軽量モデル
  • Anacondaやライブラリの入れ子構造、QIIME2の関係をベン図で以下に示します
    無題の図形描画-2.png

ローカル : 自分のPC
環境構築 : プログラムを開発・実行する環境を用意すること

Pythonで使われるライブラリやパッケージ、モジュール、関数・クラスについて

  • ライブラリから関数・クラスまで入れ子構造になっています。
  • 一つの関数・クラスが書き込まれたファイルをモジュール(.py)と呼びます。
  • 複数のモジュールをまとめたものがパッケージです。
  • ライブラリーはざっくりと複数のパッケージが収められているイメージです。
  • パッケージの導入にはAnacondaとPyPiがあります。
    • Anaconda condaコマンドでパッケージを導入
    • The Python Package index(PyPi) pipコマンドでパッケージを導入

パッケージを入れるのにcondaコマンドとpipコマンドの両者を混在させることは非推奨となっています。
condaで入れられるものはcondaを極力用いて、pipはpipにしかないものに用いることが望ましいようです。

QIIME2導入

  • QIIME2はMacOS/Windows/Linux user向けにサービスを提供しており、自分の環境に適したコードをコピペして使っていきます。
  • Qiime2docs内のGetting statedから順に進めていきましょう。
    • 以降、公式の推奨するやり方の一つ (minicondaの導入 → QIIME2) をなぞって進めていきます。
  • これまでさまざまな開発環境に触れてこなかったら下記の順番に進めていくことになります
    1.QIIME2を入れるための準備
    1.1 homebrewとXcodeの導入
    1.2 miniconda3の導入
    2.QIIME2を導入

Qiime2のインストール方法に自身のPCに直接環境を作るか、dockerを使って仮想環境で入れるかの2通りがあります。
仮想環境の中で環境を構築すると、必要に応じて環境を切り替えられるメリットがあります。
今回はminicondaを使ったやり方を紹介します。miniconda上でも仮想環境を作ることができます。

1.QIIME2を入れるための準備

  • minicondaの本体はコマンドかインストーラーを使ってインストールします。今回はコマンドを使用してターミナル経由でインストールします。
  • ターミナルを立ち上げて、以下のコマンドでminicondaの本体をdlしてインストールしていきます。
    ターミナルでdlするのに使うwgetのためにhomebrewが必要で、homebrewのためにはXcodeが必要になります。
    • 従ってXcodeを入れてから、homebrewを導入していきます

homebrew : 様々なパッケージのインストールと管理をしてくれるシステム
Xcode : Macの統合開発環境

1.1 homebrewとXcodeの導入

  • AppストアでXcodeは配布されているので、それをDLしてターミナルで以下のコマンドを実行します
xcode-select –install
  • Xcodeのインストールが終わったら、今度はhomebrewを導入していきます
  • homebrew公式HPから最新版のURLの載ったコードをコピペしてターミナルで実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

M1 Macの場合追加作業が必要なようです。
penchi.jpさんの
Mac(Intel、M1)にHomebrewとGitをインストールする方法 -2022.11.7 追記- macOS Ventura対応に詳しく記述されていたので、M1Macで作業する場合はこちらを参考にすると良いと思います

1.2 minicondaを導入

condaの本体をdlします。私の場合はIntel Mac(x86_64)の方を使用します。

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh

これでminicondaの本体が手に入りました。うまくいくと下のように出ると思います。
スクリーンショット 2023-04-04 16.11.12.png

python2系のminiconda2よりもpython3系のminiconda3を入れた方が良いです。(python2系のサポートが終了しているため)
minicondaの入れ方はhamaponさんのminicondaでスマートに環境構築 for Macを参考にさせてもらいました。

次にminicondaのインストーラーを実行します

bash Miniconda3-latest-MacOSX-x86_64.sh

規約が出てくるのでenterキーで続きを表示させていきます

2023-04-04 16.11.22.png

ライセンス許可を求められたらyesを打ち込む

スクリーンショット 2023-04-04 16.11.42.png

最後にどこにインストールするか出てくるので、特定の入れたい場所などなければそのままenterキーを押します。

スクリーンショット 2023-04-04 16.11.52.png

このあと、ターミナルを閉じて起動すると、(base)が付くようになります。

スクリーンショット 2023-04-04 16.26.26.png

(base)はデフォルトのConda環境のbase環境が有効になっています。
このconda環境においてPythonが実行できるようになります。

試しにcondaと入れて起動に成功すると下記のように表示されるはずです。
スクリーンショット 2023-04-04 16.29.39.png

1.3よくあるエラーについて

  • zsh: command not found: conda
    これはプログラムが見つからない時に表示されます。
    プログラムのおいてある場所(パス)の指定ができていないことが理由です。
    なので、zshの環境設定ファイル(.zshrc)を編集してパスを通していきます。
    最初に自身で設定したときは様々な文献をツギハギで試したので、本体の導入やパスの設定で手こずりました。
    • シェルがzshだからコマンドが有効でなかったのかと思ってbashに変更したり迷走しました。
    • 見たまま入れてしまっていたので、流れなどが意識できていなかったのが失敗の理由でした。

解決までの流れやzshについて、kamiさんの【.zshrcファイルの作成】MacでzshのPATHの通し方【.zshrcファイルの更新】
を参考にさせてもらいました

zshはシェルの一種。2019年のMac OS CatalinaからターミナルのデフォルトのシェルがBashからzshに変更
シェル : ユーザーとOSの中核(カーネル)を結ぶインターフェース
インターフェース : 2つの異なる機器やシステム、ソフトウェア間で情報のやり取りがなされる際、その間をつなぐ規格や機能

デフォルトシェルはZshになっていますが、bashなどで書かれたスクリプトはわざわざ変更しなくて良いです。私は当初シェルの知識がなく、zsh: command not found: condaが出た時にデフォルトシェルをBashに切り替えてその環境設定ファイルにパスを通していました。Bashの立ち位置やBashが使える理由について、Koichi NakashimaさんのMacでシェルスクリプトを書く人への最初の基礎知識 「シェルはbashからzshに変わっていません!今でもbashで動くんだよ!」 に詳しいので、きちんと勉強したい方はこちらを参照されると良いかと思います。

2 QIIME2の導入

  • ここからcondaコマンドを使ってQIIME2を入れていきます。基本的にはQIIME2のインストールガイドに添って進めています。

condaを最新版にして

conda update conda

wgetをインストールします

conda install wget

自分のOSやCPUに合わせたQIIME2の本体をwgetで手に入れて環境を作ります。私の場合はmacOS(intel)and OSXです。

wget https://data.qiime2.org/distro/core/qiime2-2023.2-py38-osx-conda.yml
conda env create -n qiime2-2023.2 --file qiime2-2023.2-py38-osx-conda.yml

conda env creat : 仮想環境のconda環境を作成するコマンド
-n : 名前の変更なので、今回は仮想環境名がqiime2-2023.2に変更

必要なら不要なインストーラーを消します。

rm qiime2-2023.2-py38-osx-conda.yml

ここまでで、環境ができました。
お疲れ様でした。
上手くいっていると下記のコマンドでQIIME2が起動します。

conda activate qiime2-2023.2

下は試しに qiime --help を打ち込んだところです、
正常に機能しているところです。
スクリーンショット 2023-04-07 8.08.15.png

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