samtoolsとIGV(batchスクリプト作成まで)をDockerで動かしてみよう!
ざっくり言うと、コンテナ型の仮想環境とのこと
※この記事結構わかりやすいかも??
Docker入門(第一回)~Dockerとは何か、何が良いのか~
準備運動です。
適当なディレクトリにbamfile、bedfile、サンプルデータIDリスト(今回の場合:SRR_Acc_List.txt)を保存しておいてください。
SRR_Acc_List.txtの例:
SRR000000
SRR000001
公式サイトよりダウンロード
docker version
と実行、versionがかえってきたらok↓petadimensionのQiitaにも絶賛投稿中!
Docker for Mac 勉強メモ〜インストール〜
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
ダウンロードしたイメージを使って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 の”適当なディレクトリ”のことです。Dockerコンテナで”igv_samtools_docker.py”と”igv_batch_docker.py”をつかってみよう!
”適当なディレクトリ”に実行結果が出力されて完了!!
# python3 /tmp/igv_samtools_docker.py
おわったら。。。
# python3 tmp/igv_batch_docker.py
apk add vim
で、直接インストールしちゃってください。Dockerを使い終えたらさようなら。
Dockerコンテナから抜けます。
# exit
IGVを起動し、下記スクリプトで作成したbatchファイルを読み込むだけ!!
「tools」→「Run Batch Script…」より、例ファイル「new_testigv.bat」を読み込むと、
”〇〇○_〇〇○-〇〇○.svg”というイメージが勝手に保存されていきます。
おまけ
Dockerコンテナ、一気に削除
$ docker rm $(docker ps -q -a)
Dockerイメージ、一気に削除
$ docker rmi $(docker images -q) -f
or
or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up
Syntax | Example | Reference | |
---|---|---|---|
# Header | Header | 基本排版 | |
- Unordered List |
|
||
1. Ordered List |
|
||
- [ ] Todo List |
|
||
> Blockquote | Blockquote |
||
**Bold font** | Bold font | ||
*Italics font* | Italics font | ||
~~Strikethrough~~ | |||
19^th^ | 19th | ||
H~2~O | H2O | ||
++Inserted text++ | Inserted text | ||
==Marked text== | Marked text | ||
[link text](https:// "title") | Link | ||
 | Image | ||
`Code` | Code |
在筆記中貼入程式碼 | |
```javascript var i = 0; ``` |
|
||
:smile: | ![]() |
Emoji list | |
{%youtube youtube_id %} | Externals | ||
$L^aT_eX$ | LaTeX | ||
:::info This is a alert area. ::: |
This is a alert area. |
On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?
Please give us some advice and help us improve HackMD.
Do you want to remove this version name and description?
Syncing