Trinity in Docker
TrinityをDocker上で実行する
新しいマシン環境で de novo transcriptome assembly のためにTrinityを動かす必要が出てきた。 Trinityをインストールするには多数のツールを入れる必要がある。
まっさらな環境に一度入れるだけならそれでいいのだが、他のプログラムも入れて使う際に問題が起こる。 つまり、各種プログラムで必要とされるツールのバージョンの違いの問題である。 前にあったのは、HomebrewでインストールしたTrinityではsalmonを必要としているのだが、そのsalmonのバージョンは微妙に古くて、別の目的で使う最新バージョンのsalmonとカチってしまう。
そこで、メモリを多く積んだマシンをせっかく用意したのだし、Docker上で動かそうということで。 Trinityの公式ウェブサイトにはそのやり方が丁寧に書いてあるページ Run Trinity Using Docker があってその通りに
#!/bin/sh docker run --rm -v `pwd`:`pwd` trinityrnaseq/trinityrnaseq Trinity \ --seqType fq \ --left `pwd`/sample1.left.fq.gz,`pwd`/sample2.left.fq.gz \ --right `pwd`/sample1.right.fq.gz,`pwd`/sample2.right.fq.gz \ --max_memory 64G --CPU 12 --output `pwd`/trinity_out_dir
(Windows環境では、\
(バックスラッシュ)が円記号¥
になっているかもしれないので、要注意)
ここで、sample1.left.fq.gz
とsample1.right.fq.gz
がペアエンドリードの対の配列で、sample2.left.fq.gz
とsample2.right.fq.gz
も同様。
ファイルをcat
しなくても、コンマでつなげばかたまりとして扱ってくれる。
かつては搭載メモリも少なく、またDocker上で長時間動かすとうまく動かないこともあったが、2020年8月の現時点では問題なく実行できた。
Docker上でプログラムを動かすには、多めのメモリとDockerコンテナをダウンロードしてくるのにインターネットアクセスの太さが要求されるものの。 上述のツールのバージョン不整合のみならず、システムライブラリのリンク切れなどの問題等のインストールに関わるさまざまなトラブルを考えると、Dockerで実行することはそのコストを超える価値があるのではないだろうか。