CommonWL for practical use 2

作成したCWL ツール・ワークフローを実際に動かしてみた(その2)

昨日のその1に引き続き、作成したHISAT2-StringTie2のワークフローを実際に動かした際のログを記す。

余談だが、次世代シークエンサーDRY解析教本 改訂第2版(以下、DRY解析教本2)は今朝見たらAmazonでも在庫があるようになっていた。

さらに余談だが、今年の頭に出した「生命科学データ解析を支える情報技術」の最初の方に今やっているようなDockerを使ってバイオなプログラムを動かす話のさわりを書いてあるので参考まで。

さて本題であるが、とりあえず動く方のCWLだけで、HISAT2のmappingをfor文で繰り返し実行する。 fqディレクトリ内にgzip圧縮されたfastqファイル(なんとか_trimmed.fq.gzというファイル名で統一されているとする)がある場合、それら全部に計算する方法として、以下のバッチスクリプトを組んだ。

#!/bin/bash
for f in fq/*.gz; do
        g=`basename ${f%_trimmed.fq.gz}`
        echo $g 
        cwltool cwl-live-coding-2019-12-16/cwl/hisat2-stringtie_wf_se.cwl \
         --nthreads 6 --annotation organism1.gtf \
        --fastq $f --hisat2_idx_basedir . --hisat2_idx_basename org1
        mv stringtie_out.gtf gtf/$g.gtf
done

今朝、StringTie2の論文がでたという著者によるtweetを見て、これまでのやり方だとStringTie-1.3のDocker Imageを使って実行していたことに気がついた。 そこで、pitagora-cwl/tools/stringtie/assemble/stringtie_assemble.cwlをコピーしてきて、

hints:
  DockerRequirement:
    dockerPull: quay.io/biocontainers/stringtie:2.0--hc900ff6_0

としてstringtie:2.0のイメージを使うように書き換えた上で、cwl-live-coding-2019-12-16/cwl/hisat2-stringtie_wf_se.cwlstringtie_assembleの部分をローカルなCWLを参照するように、以下のように書き換えた。

  stringtie_assemble:
    run: stringtie_assemble.cwl

これでStringTie2を使って計算するワークフローとなった。 そこで、これを使ってすべてのFASTQ(22個ありました)に対して実行し、複数のGTFを作成することができた。 ちなみに、Mac miniで、CPU10個+memory48GをDockerに割り当てて、一個あたりだいたい0.5hで、ほぼ半日で計算が終了。

しかし、stringtie mergeでそれらのGTFを束ねるプログラムもCWLで、ともう一つ作成してもらったCWLを動かそうとしたが、こちらは相変わらず

#!/bin/bash
cwltool cwl-live-coding-2019-12-16/cwl/stringtie-merge.cwl \
--nthreads 6 --guide organism1.gtf --o_name merged.gtf \
--mergelist_txt mergelist.txt

としても Error: cannot find file 'Brain.gtf' and /var/lib/cwl/stg4116466b-c5a7-4b66-8aac-76fe5a0ef6d1/mergelist.txt does not look like GFF! というエラーで動かず。 達人に訊くしかないなあ(その3に続く)。


Written by Hidemasa Bono in IT4BDA on 金 20 12月 2019.