EC2(Ubuntu 22.04 LTS)に Nextflow の実行環境を構築してみた

EC2 にログインして10分後にはNextflowが使えるくらいにインストールが簡単でした。
2023.05.03

Nextflow のパイプライン実行環境を EC2 インスタンスで作成してみました。インストール手順は非常に簡単だったのですが Ubuntu 22.04 LTS に Nextflow のインストール手順の備忘録です。

確認結果

  • 現時点では Java 11 以上のインストール
    • sudo apt install openjdk-19-jre-headless -y
  • Nextflow のバイナリをダウンロードするだけ
    • curl -s https://get.nextflow.io | bash

補足

  • Bioconda 環境ならコマンド1つでインストールできる
    • conda install nextflow -y

検証環境

OS は Ubuntu 22.04 LTS の AMI から起動した EC2 インスタンスです。

$ head -n 1 /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"

$ curl http://169.254.169.254/latest/meta-data/ami-id
ami-0d979355d03fa2522

Nextflow のセットアップ

公式サイトの Getting started を参考に実行環境を作成します。現時点では Java 11 以上のインストールと、Nextflow のバイナリ一発で動くシンプルな実行環境の提供方法でした。

A DSL for parallel and scalable computational pipelines | Nextflow

Java のインストール

Ubuntu 22.04 の AMI にデフォルトで Java はインストールされていませんでした。パッケージでインストールできる範囲で最新のOpenJDK 19をインストールしました。

$ sudo apt update
$ java -version
Command 'java' not found, but can be installed with:
sudo apt install openjdk-11-jre-headless  # version 11.0.18+10-0ubuntu1~22.04, or
sudo apt install default-jre              # version 2:1.11-72build2
sudo apt install openjdk-17-jre-headless  # version 17.0.6+10-0ubuntu1~22.04
sudo apt install openjdk-18-jre-headless  # version 18.0.2+9-2~22.04
sudo apt install openjdk-19-jre-headless  # version 19.0.2+7-0ubuntu3~22.04
sudo apt install openjdk-8-jre-headless   # version 8u362-ga-0ubuntu1~22.04

$ sudo apt install openjdk-19-jre-headless -y

$ java -version
openjdk version "19.0.2" 2023-01-17
OpenJDK Runtime Environment (build 19.0.2+7-Ubuntu-0ubuntu322.04)
OpenJDK 64-Bit Server VM (build 19.0.2+7-Ubuntu-0ubuntu322.04, mixed mode, sharing)

Nextflow のバイナリダウンロード

Nextflow のバイナリをダウンロードするコマンドが用意されていましたのでコピペで実行します。15K のバイナリが1つダウンロードされました。

$ curl -s https://get.nextflow.io | bash

$ ls -lh
total 16K
-rwx--x--x 1 ubuntu ubuntu 15K May  3 13:09 nextflow

nextflowコマンドを試してみたところ、あっさりと Hello World を実行できました。

$ ./nextflow -v
nextflow version 23.04.1.5866

$ ./nextflow run hello
N E X T F L O W  ~  version 23.04.1
Pulling nextflow-io/hello ...
 downloaded from https://github.com/nextflow-io/hello.git
Launching `https://github.com/nextflow-io/hello` [magical_pesquet] DSL2 - revision: 1d71f857bb [master]
executor >  local (4)
[b5/cc35da] process > sayHello (4) [100%] 4 of 4 ✔
Ciao world!

Bonjour world!

Hello world!

Hola world!

まとめ

Nextflow の実行環境の準備は非常に簡単。

  • Java 11 以上のインストール
    • sudo apt install openjdk-19-jre-headless -y
  • Nextflow のバイナリをダウンロード
    • curl -s https://get.nextflow.io | bash

オプション

nextflowのバイナリはダウンロードしたディレクトリにパス通すより、/usr/bin/usr/local/binへ移動させた方が管理しやすいかと思います。

$ sudo mv nextflow /usr/local/bin

$ which nextflow
/usr/local/bin/nextflow

$ nextflow -v
nextflow version 23.04.1.5866

Bioconda でセットアップ

Bioconda でも Nextflow をインストールできるとのことで以下のドキュメントを参考に試してみます。

Installation » nf-core

EC2 に Bioconda の実行環境を準備は以下のブログを参考にしてください。

Nextflow のインストール

Bioconda のチャンネルは登録された状態です。

$ conda config --get channels
--add channels 'defaults'   # lowest priority
--add channels 'bioconda'
--add channels 'conda-forge'   # highest priority

Nextflow のテスト用に仮想環境を分けました。

$ conda create -n test-nextflow
$ conda activate test-nextflow

conda installでインストールできました。

$ conda install nextflow -y

$ which nextflow
/home/ubuntu/miniconda/envs/test-nextflow/bin/nextflow

Hello World も実行できました。

$ nextflow -v
nextflow version 23.04.1.5866

$ nextflow run hello
N E X T F L O W  ~  version 23.04.1
Launching `https://github.com/nextflow-io/hello` [focused_ardinghelli] DSL2 - revision: 1d71f857bb [master]
executor >  local (4)
[4c/144d29] process > sayHello (4) [100%] 4 of 4 ✔
Bonjour world!

Ciao world!

Hello world!

Hola world!

まとめ

  • Bioconda 環境ならコマンド1つでインストールできる
    • conda install nextflow -y

オプション

Nextflow のバージョンを指定してインストールしてバージョン管理することになると思います。conda searchで確認して特定のバージョンないし、最新バージョンをインストールするとよろしいかと思います。

$ conda search nextflow
Loading channels: done
# Name                       Version           Build  Channel
nextflow                      0.19.3               0  bioconda
nextflow                      0.21.3               0  bioconda
nextflow                      0.23.4               0  bioconda
nextflow                      0.24.1               0  bioconda
nextflow                      0.24.2               0  bioconda
nextflow                      0.25.1               0  bioconda
nextflow                      0.27.0               0  bioconda
nextflow                      0.27.1               0  bioconda
nextflow                      0.27.2               0  bioconda

---
中略
---

nextflow                     21.10.6      h4a94de4_0  bioconda
nextflow                     22.04.0      h4a94de4_0  bioconda
nextflow                     22.04.5      h4a94de4_0  bioconda
nextflow                     22.10.0      h4a94de4_0  bioconda
nextflow                     22.10.1      h4a94de4_0  bioconda
nextflow                     22.10.4      h4a94de4_0  bioconda
nextflow                     22.10.6      h4a94de4_0  bioconda
nextflow                     23.04.1      h4a94de4_0  bioconda
nextflow                     23.04.1      h4a94de4_1  bioconda

バージョン指定のインストール方法はこういった指定になります。

$ conda install nextflow=23.04.1 -y

おわりに

Nextflow の実行環境構築を端折るために Docker コンテナでの実行を検討していたのですが、少し検証したところ個人的に都合が悪い点がでてきて EC2 へ直接インストールする方法へ行き着きました。コンテナ起動と同じレベルの簡単さで実行環境を作成できました。

参考