kin_gyo
@kin_gyo

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

NGS関連で、dockerはどれを選べばいいですか?(macです)

初心者です。

dockerを使いたいのですが、サイトに行くと種類が多くてわかりません。
https://hub.docker.com/search?q=&type=edition&offering=community

http://imamachi-n.hatenablog.com/entry/2018/03/18/142327
↑この方のサイトを参考にさせていただきたいのですが、
Ubuntuをおすすめされていて、是非私のmacにもいれたいです。

果たしてmacにいれることはできるのでしょうか。
それとも「docker desktop for mac」というやつしか
いれられないのでしょうか。

↓↓↓↓今やろうとしていることと、困っていることです。
初めて解析をしようと思って、まず
minicondaを経由して

nanopolish
minimap2

をインストールしてサンプルデータを流してみたいのですが、
nanopolishのチュートリアルに書いてあるコマンドで

yum
make

などが使えませんでした。curlを使って対応したりしてみましたが、
チュートリアルにあるコマンドをそのまま使えるようにしたいです。
パソコンはmacで、ターミナルにそのまま打ち込んでいました。

自分がどのディストリビューションを使っているかもわからず、
色々コマンドが使えるようにするためにパッケージを
インストールしないといけないとわかりましたが、
できるならdockerで環境構築して、ローカルがごちゃごちゃに
ならないようにしたいです。

拙い質問ですみませんが、よろしくお願い致します。

1

2Answer

Mac で使うなら Docker Desktop for Mac で大丈夫です。

また、「ローカルがごちゃごちゃにならないようにしたい」のであれば、macOS のパッケージマネージャーの1つである Homebrew を使ってはどうでしょう。brew コマンドでインストールできます。

brewでDockerDesktopをインストールする
brew cask install docker

brew をインストールして、上記コマンドを実行後、再起動すると Docker が使えるようになります。Docker の起動は $ docker version で確認できます。

複数の種類について

最近のオープンソースは利用は無料なれどサポートは有料です。Linux の OS で言えば、CentOS が無償版で RedHat Enterprise が有償版、Ubuntu が無償版で Ubuntu Advantage が有償版といった感じです。

Docker も同様にサポートが必要ない(無料版を使う)のであれば Docker Comunity Edition を使うことになります。

そして Docker にはコンテナを管理する Docker エンジンというものがあります。

しかし、Docker は Linux 環境をベースに考えられているので、macOS や Windows で使う場合は、さらに Server と Client のエンジンがあります。これらの組み合わせが複雑に感じる要因だと思います。

Docker Desktop は、これらの必要なものがパッケージになっています。インストールすると、Docker サーバーがタスクバーに常駐し、docker コマンド(Docker クライアント)から Docker および Docker コンテナにアクセスできるようになります。

上記のパッケージマネージャーでインストールしてもいいですし、Docker Desktop をダウンロードしてインストールしてもいいと思います。

  • 検証環境: macOS Mojave (OSX 10.14.6) + MacBookPro Early 2015, Intel 2.7GHz, RAM 8 GB.
2Like

Comments

  1. @kin_gyo

    Questioner

    本当に丁寧に説明してくださってありがとうございます。早速やってみます!とても助かりました!

nanopolishのチュートリアルに書いてあるコマンドで

  • yum
  • make

などが使えませんでした。

yum は CentOS 系のパッケージマネージャーなので、パッケージマネージャーを置き換えて読むと良いと思います。

Debian/Ubuntu 系のパッケージマネージャーは apt もしくは apt-get なので

$ yum install make$ apt install make

になり、Mac のパッケージマネージャーは brew なので

$ yum install make$ brew install make

になります。ただ brew を使ってインストールするとローカルにインストールされるので Docker の恩恵に預かれません。

パソコンはmacで、ターミナルにそのまま打ち込んでいました。

ターミナルに直接打つと、Mac にインストールされてしまうので、ターミナルから Docker コンテナに接続($ docker run --rm -it MyDockerImage /bin/bash など)して、操作すると良いと思います。

Conda 公式の Miniconda2 + Python2.7 入りの Docker イメージがあったので、そちらを使って参照先の Dockerfile を元に Mac 用にシンプルな Dockerfile にしてみました。ベース・イメージは Debian なので Ubuntu とほぼ同じです。

FASTQ ファイルは別途用意 ./data ディレクトリに設置する必要がありますが、Mac のターミナルから $ ./run_container_ngs.sh を実行すると、Docker イメージの作成およびコンテナの起動をし、コンテナ上の Debian を触れます。

Dockerfile
FROM conda/miniconda2

COPY ./run_fastqc_local.py /run_fastqc_local.py

RUN conda update conda \
  && conda config --add channels r \
  && conda config --add channels defaults \
  && conda config --add channels conda-forge \
  && conda config --add channels bioconda \
  && conda install -y fastqc=0.11.6 \
  && conda install -y -c conda-forge openjdk \
  && conda install -y art \
  && conda clean --all --yes

ENV PATH /opt/conda/bin:$PATH

ENTRYPOINT ["python", "/run_fastqc_local.py"]

run_container_ngs.sh
#!/bin/bash

PATH_WORKDIR_LOCAL=$(cd "$(dirname "${BASH_SOURCE:-$0}")" && pwd)
PATH_WORKDIR_DOCKER="/data"

NAME_IMAGE_DOCKER="bioconda2-fastqc:local"

# FASTQ ファイルは予め用意しておき、ローカルの同じディレクトリの "./data" 内
# に設置しておくこと。
#    ./data/RefSeq_hg38_2015-08-19_NM_ultraSlim.fq
NAME_FILE_FASTQ="RefSeq_hg38_2015-08-19_NM_ultraSlim.fq"

# イメージがなければ作成
docker image ls | grep $NAME_IMAGE_DOCKER || {
    cd $PATH_WORKDIR_LOCAL && \
    docker build -t $NAME_IMAGE_DOCKER .
}

# イメージからコンテナを作成して起動
docker run --rm -it \
    -v $(pwd)/run_fastqc_local.py:/run_fastqc_local.py \
    -v $(pwd)/data:${PATH_WORKDIR_DOCKER} \
    ${NAME_IMAGE_DOCKER} \
        --fastq_path ${PATH_WORKDIR_DOCKER}/${NAME_FILE_FASTQ} \
        --working_dir ${PATH_WORKDIR_DOCKER}
ディレクトリ構成
.
├── data
│   └── RefSeq_hg38_2015-08-19_NM_ultraSlim.fq
├── Dockerfile
├── run_container_ngs.sh
└── run_fastqc_local.py

# run_container_ngs.sh は要実行権限
#   $ chmod +x ./run_container_ngs.sh
  • 検証環境: macOS Mojave (OSX 10.14.6) + MacBookPro Early 2015, Intel 2.7GHz, RAM 8 GB + Docker version 19.03.8, build afacb8b
1Like

Your answer might help someone💌