2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Common Workflow Language (CWL)Advent Calendar 2018

Day 10

biocontainers/fastqc:0.11.5 がCWLで動かない:/tmp問題

Posted at

CWL初心者がいきなり困った

CWL Workshop に参加したのをきっかけに、CWL に入門してみています。
まずは trimmomatic を CWL の CommandLineTools で動かせるようになって、満足。
続いて、fastqc を動かそうとして、躓いた。

class: CommandLineTool
cwlVersion: v1.0
baseCommand: fastqc
inputs:
  - id: fastq
    type: File
    inputBinding:
      position: 2
    doc: FastQ file from next-generation sequencers
outputs:
  - id: qc
    type: File
    outputBinding:
      glob: $(inputs.fastq.basename)_fastqc.html
label: fastqc
arguments:
  - position: 1
    prefix: -o
    valueFrom: .
hints:
  - class: DockerRequirement
    dockerPull: 'biocontainers/fastqc:0.11.5'

cwltool で動かしてみると、このようなエラーが出た。

../cwltool/cwltool.py 1.0.20181201184214
Resolved 'fastqc.cwl' to 'file:///Users/hachiya/Projects/cwl/test/fastqc.cwl'
[job fastqc.cwl] /private/tmp/docker_tmp2n7jVv$ docker \
    run \
    -i \
    --volume=/private/tmp/docker_tmp2n7jVv:/GBeTqb:rw \
    --volume=/private/var/folders/xq/lfrhc_kx6s399r5brzbt2n0m0000gn/T/tmp01vkkV:/tmp:rw \
    --volume=/Users/hachiya/Projects/cwl/G1K/NA18942/Phase3/Exome/ERR034597.filt.fastq:/var/lib/cwl/stg4cee5fcb-0c36-4612-8e3d-9aa4b95521ff/ERR034597.filt.fastq:ro \
    --workdir=/GBeTqb \
    --read-only=true \
    --user=501:20 \
    --rm \
    --env=TMPDIR=/tmp \
    --env=HOME=/GBeTqb \
    biocontainers/fastqc:0.11.5 \
    fastqc \
    /var/lib/cwl/stg4cee5fcb-0c36-4612-8e3d-9aa4b95521ff/ERR034597.filt.fastq
docker: Error response from daemon: OCI runtime create failed: container_linux.go:348: starting container process caused "exec: \"fastqc\": executable file not found in $PATH": unknown.
[job fastqc.cwl] Job error:
Error collecting output for parameter 'qc':
fastqc.cwl:16:7: Did not find output file with glob pattern: '['index.html']'
[job fastqc.cwl] completed permanentFail
{}
Final process status is permanentFail

原因を探してみた

$ docker run -it biocontainers/fastqc:0.11.5 /bin/bash
biodocker@7b7f30ff87de:/data$ ls
biodocker@7b7f30ff87de:/data$ which fastqc
/usr/local/bin/fastqc
biodocker@7b7f30ff87de:/data$ ls -la /usr/local/bin/
total 1752
drwxr-xr-x 1 root root   4096 Mar 27  2018 .
drwxr-xr-x 1 root root   4096 Mar 27  2018 ..
-rwxr-xr-x 1 root root   2775 Mar 27  2018 fasta_clipping_histogram.pl
-rwxr-xr-x 1 root root 121176 Mar 27  2018 fasta_formatter
-rwxr-xr-x 1 root root  50456 Mar 27  2018 fasta_nucleotide_changer
-rwxr-xr-x 1 root root  51664 Mar 27  2018 fastq_masker
-rwxr-xr-x 1 root root   5391 Mar 27  2018 fastq_quality_boxplot_graph.sh
-rwxr-xr-x 1 root root  45376 Mar 27  2018 fastq_quality_converter
-rwxr-xr-x 1 root root  52744 Mar 27  2018 fastq_quality_filter
-rwxr-xr-x 1 root root  51592 Mar 27  2018 fastq_quality_trimmer
-rwxr-xr-x 1 root root  50528 Mar 27  2018 fastq_to_fasta
lrwxrwxrwx 1 root root     18 Mar 27  2018 fastqc -> /tmp/FastQC/fastqc
-rwxr-xr-x 1 root root  50800 Mar 27  2018 fastx_artifacts_filter
-rwxr-xr-x 1 root root  13942 Mar 27  2018 fastx_barcode_splitter.pl
-rwxr-xr-x 1 root root 523752 Mar 27  2018 fastx_clipper
-rwxr-xr-x 1 root root 302424 Mar 27  2018 fastx_collapser
-rwxr-xr-x 1 root root   5907 Mar 27  2018 fastx_nucleotide_distribution_graph.sh
-rwxr-xr-x 1 root root   6080 Mar 27  2018 fastx_nucleotide_distribution_line_graph.sh
-rwxr-xr-x 1 root root  63328 Mar 27  2018 fastx_quality_stats
-rwxr-xr-x 1 root root  51168 Mar 27  2018 fastx_renamer
-rwxr-xr-x 1 root root  50240 Mar 27  2018 fastx_reverse_complement
-rwxr-xr-x 1 root root  52104 Mar 27  2018 fastx_trimmer
-rwxr-xr-x 1 root root 194144 Mar 27  2018 fastx_uncollapser
biodocker@7b7f30ff87de:/data$ ls -la /tmp/FastQC/
total 9888
drwxr-xr-x 8 root root    4096 Mar 27  2018 .
drwxrwxrwt 1 root root    4096 Mar 27  2018 ..
drwxr-xr-x 2 root root    4096 Mar  8  2016 Configuration
drwxr-xr-x 5 root root    4096 Mar  8  2016 Help
-rw-r--r-- 1 root root    6445 Oct 19  2015 INSTALL.txt
-rw-r--r-- 1 root root   35821 Mar 21  2012 LICENSE.txt
-rw-r--r-- 1 root root   11766 Oct 19  2015 LICENSE_JHDF5.txt
-rw-r--r-- 1 root root    2292 Oct 19  2015 README.txt
-rw-r--r-- 1 root root   34987 Mar  8  2016 RELEASE_NOTES.txt
drwxr-xr-x 3 root root    4096 Mar  8  2016 Templates
-rw-r--r-- 1 root root 9267374 Jan  8  2015 cisd-jhdf5.jar
-rwxr-xr-x 1 root root   13775 Nov 20  2015 fastqc
-rw-r--r-- 1 root root    2238 Mar 21  2012 fastqc_icon.ico
-rw-r--r-- 1 root root   50147 Feb 24  2014 jbzip2-0.9.jar
drwxr-xr-x 3 root root    4096 Mar  8  2016 net
drwxr-xr-x 3 root root    4096 Mar  8  2016 org
-rw-r--r-- 1 root root     101 Oct 22  2015 run_fastqc.bat
-rw-r--r-- 1 root root  644848 Jan  8  2015 sam-1.103.jar
drwxr-xr-x 3 root root    4096 Mar  8  2016 uk

biocontainers/fastqc:0.11.5 では、/tmp/FastQC/fastqc に実行ファイルが置かれていることが分かった。
CWL 実行時に /tmp を使う(--env=TMPDIR=/tmp)ので、/tmp/FastQC/fastqc にアクセスできなくなり、実行できないと分かった。

docker     run     -i     --volume=/private/tmp/docker_tmpMwAzBF:/LhJbjY:rw     --volume=/private/var/folders/xq/lfrhc_kx6s399r5brzbt2n0m0000gn/T/tmpRXtz2R:/tmp:rw     --volume=/Users/hachiya/Projects/cwl/G1K/NA18942/Phase3/Exome/ERR034597.filt.fastq:/var/lib/cwl/stgab921a04-44b2-459a-900a-8e8ea3e20ada/ERR034597.filt.fastq:ro     --workdir=/LhJbjY     --read-only=true     --user=501:20     --rm     --env=TMPDIR=/tmp     --env=HOME=/LhJbjY     biocontainers/fastqc:0.11.5    ls -la  /tmp/FastQC/

こんな感じでデバックすることもできるみたい。

解決策

biocontainers/fastqc:0.11.5 の Dockerfile を変更したら、問題は解決しそう。

biocontainers/fastqc:0.11.5 の代わりに、maxulysse/fastqc:latest を使ったら問題は解決した。

class: CommandLineTool
cwlVersion: v1.0
$namespaces:
  edam: 'http://edamontology.org/'
baseCommand: fastqc
inputs:
  - id: fastq
    type: File
    #format: edam:format_1930
    inputBinding:
      position: 2
    doc: FastQ file from next-generation sequencers
outputs:
  - id: qc
    type: File
    outputBinding:
      glob: $(inputs.fastq.nameroot)_fastqc.html
label: fastqc
arguments:
  - position: 1
    prefix: -o
    valueFrom: .
hints:
  - class: DockerRequirement
    dockerPull: 'maxulysse/fastqc:latest'

これで動いた。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?