BioDockerthon day3
- Docker
国内版Biohackathon(BH14.14)3日目。今日もDockerチームにて。昨日作成したhmmsearchを実行するDockerfileの汎用化。引数としてprofile HMMと検索対象DBを指定できるように。最後の行でしか引数指定できないようなので、別にシェルスクリプト(hmmsearch.sh)を作成するやり方で。ファイル自体は例によってgithubにあるが、再掲。Dockerfileはこんな感じ。
#Docker container for hmmsearch
FROM debian
MAINTAINER Hidemasa Bono, bonohu@gmail.com
# copy run script
ADD hmmsearch.sh /usr/local/bin/run.sh
# Install packages
RUN apt-get update &&
apt-get install -y hmmer &&
apt-get install -y wget &&
rm -rf /var/lib/apt/lists/*
ENTRYPOINT ["/usr/local/bin/run.sh"]
一番最後の行が苦労したところ。そして、準備したシェルスクリプト(hmmsearch.sh)の中身は以下のとおり。
[shell]
!/bin/sh
get hmm
wget -O hmm.hmm http://pfam.xfam.org/family/$1/hmm
get DB
wget -O db.fa.gz $2
run hmmsearch with parameters
hmmsearch hmm.hmm db.fa.gz [/shell]
注意点はこのファイルに実行権をつけておくということ。すなわち、
[shell] chmod +x hmmsearch [/shell]
しておけということ。
ただ、使うだけなら以下のようなコマンドで実行可能。
[shell] docker run -it bonohu/debian-hmmsearch2 PF00081 ftp://ftp.ensemblgenomes.org/pub/metazoa/release-25/fasta/bombyx_mori/pep/Bombyx_mori.GCA_000151625.1.25.pep.all.fa.gz [/shell]
docker runの最後にprofileHMMのPfamのIDと検索したい対象のアミノ酸配列のかたまり(multi-FASTA形式)のURL(gzip圧縮されていたものでok)を指定するだけ。
当初「これがやれたら」、と思っていたものができた感。次はNGS系をやっていきたい。