changed 6 years ago
Linked with GitHub

Run samtools and IGV with Docker

samtoolsとIGV(batchスクリプト作成まで)をDockerで動かしてみよう!

Dockerとは

ざっくり言うと、コンテナ型の仮想環境とのこと
※この記事結構わかりやすいかも??
Docker入門(第一回)~Dockerとは何か、何が良いのか~

1.Preparation

準備運動です。
適当なディレクトリにbamfile、bedfile、サンプルデータIDリスト(今回の場合:SRR_Acc_List.txt)を保存しておいてください。

SRR_Acc_List.txtの例:

SRR000000
SRR000001

2. Install Docker for Mac

公式サイトよりダウンロード

  1. 「Download from docker Hub」クリック
  2. 「please Login To Download」クリック(DockerHubにログインしていない場合)
  3. DockerHubにログイン or アカウント作成
  4. 「Get Docker」クリック、”Docker.dmg”ダウンロードしインストール
  5. ターミナルでdocker versionと実行、versionがかえってきたらok

↓petadimensionのQiitaにも絶賛投稿中!
Docker for Mac 勉強メモ〜インストール〜

3.Docker pull image

image = Dockerコンテナの設計図みたいなもの
↓今回のDockerイメージの中身(Dockerfile)はこれ
 petadimensionlabのDockerHubにも絶賛up中!!

##ベースのイメージ(alpine=超絶軽いLinux) FROM alpine:3.10 ##作者 MAINTAINER petadimensionlab ##環境変数(バージョンを指定) ENV SAMTOOLS_VERSION 1.9 ##今回はいろいろダウンロード(alpineのインストールコマンドは apk add) RUN apk --update add --no-cache build-base zlib-dev bzip2-dev xz-dev ncurses-dev ca-certificates wget; \ wget -q https://github.com/samtools/samtools/releases/download/${SAMTOOLS_VERSION}/samtools-${SAMTOOLS_VERSION}.tar.bz2; \ tar xjvf samtools-${SAMTOOLS_VERSION}.tar.bz2; \ cd /samtools-${SAMTOOLS_VERSION}/ && make; \ mv /samtools-${SAMTOOLS_VERSION}/samtools /bin/; \ rm -rf /samtools*; \ apk del build-base zlib-dev ca-certificates wget ##さらにいろいろダウンロード(alpineのインストールコマンドは apk add) RUN apk --update add --no-cache \ python3 \ python3-dev \ nano \ curl \ && pip3 install --upgrade pip ##pythonスクリプトをコピー COPY igv_samtools_docker.py /tmp COPY igv_batch_docker.py /tmp ##作業ディレクトリ WORKDIR /

これ(Dockerイメージ)をローカルホストにダウンロードします。

$ docker pull petadimensionlab/docker_igv_batch

4.Docker run

ダウンロードしたイメージを使ってDockerコンテナを動かしてみましょう!

$ docker run -it --name container_name -v /yourlocal_dir:/tmp --rm  petadimensionlab/docker_igv_batch
  • -v /yourlocal_dir:/tmp・・・ローカルとDockerコンテナを繋いでくれる魔法のオプション。 
    ※ちなみに、/yourlocal_dirは 1.Preparation の”適当なディレクトリ”のことです。

5.Run python into this Docker

Dockerコンテナで”igv_samtools_docker.py”と”igv_batch_docker.py”をつかってみよう!
”適当なディレクトリ”に実行結果が出力されて完了!!

# python3 /tmp/igv_samtools_docker.py
おわったら。。。
# python3 tmp/igv_batch_docker.py
  • 修正する点(ローカルのディレクトリ)などは、あらかじめ nanoエディタ で修正しましょう。
    ※nanoしかインストールされておりません。
    いやいや、私vim派なの。ってかたはapk add vimで、直接インストールしちゃってください。

6.Exit docker

Dockerを使い終えたらさようなら。
Dockerコンテナから抜けます。

# exit

7.IGV Image auto save

IGVを起動し、下記スクリプトで作成したbatchファイルを読み込むだけ!!
「tools」→「Run Batch Script」より、例ファイル「new_testigv.bat」を読み込むと、
”〇〇○_〇〇○-〇〇○.svg”というイメージが勝手に保存されていきます。


おまけ
Dockerコンテナ、一気に削除

$ docker rm $(docker ps -q -a)

Dockerイメージ、一気に削除

$ docker rmi $(docker images -q) -f
Select a repo