Running kallisto via CWL

Common Workflow Language(CWL)を使ってkallistoを実行する

このエントリは、Shizuoka.ngs#2で行われたワークショップの上級者用コンテンツです。

生命科学データ解析を支える情報技術」の 「第2章 解析環境の構築」の 「2.8 遺伝子発現データ解析の実際」にあるkallistoを実行する手順をCommon Workflow Language (CWL)を使って動かしてみよう。

実行に必要な配列セット(1. queryの配列(FASTQ形式)、2. 検索対象のtranscriptome配列セット(FASTA形式))はすでにあるものとする。 ここでは例として以下の配列セットを用いる。

  1. 生命科学データ解析を支える情報技術」p48にあるSRR7300567(タモキシフェン投与したMCF-7細胞株)
  2. transcriptome配列セットとしては(上記のMCF-7はヒト由来の細胞株であるので)EnsemblのhumanのTranscript sequences ftp://ftp.ensembl.org/pub/release-96/fasta/homo_sapiens/cdna/Homo_sapiens.GRCh38.cdna.all.fa.gz

これらの2種類のデータをあらかじめダウンロードして用意しておく。

各種install

Install freeとはいえ、DockerとCWLを動かすためのcwltoolは前もってインストールしておく必要がある。

Docker

Docker Desktop for Macをインストール。

インストールできたら、設定を変更してメモリの割り当てを増やしておく

cwltool

manabuishiirbさんによるqiitaの記事を参考に。

1
2
3
#! /bin/sh
# pipによるcwltoolのinstall
pip install cwltool

なお、condaでもcwltoolが入る模様。

pitagora-networkのpitagora-cwlをgit clone

1
2
3
4
5
#! /bin/sh
# downloadするためのdirectoryに移動
cd ~/Downloads
# pitagora-cwlをgit clone
git clone https://github.com/pitagora-network/pitagora-cwl

RNA-seqデータ解析

上で準備したツールを用いて、RNA-seqデータ解析。

SRAをFASTQに変換

まずは、データの加工から。 SRAのRUNのファイル(通称:SRAファイル)は、~/Downloads/ にあるものとする。以下の例

1
2
3
4
5
6
7
8
#! /bin/sh
# 作業するためのdirectoryに移動
cd ~/Downloads
# pitagora-cwlを使ってfasterq-dumpを手元のマシンにインストールすることなく実行
cwltool pitagora-cwl/tools/fasterq-dump/fasterq-dump.cwl \
--srafile SRR7300567.sra
# pigzで生成されたFASTQファイルを圧縮
pigz SRR7300567.sra*.fastq

pigz(並列版gzip)がインストールされていない場合は、この際入れておく。

1
2
3
#! /bin/sh
# condaでpigzをinstall
conda install pigz

fasterq-dumpを使うとデータの種類(paired-end(PE) or single-end(SE))は自動認識のため、この変換の際に指定しないですむ。 しかしながらこの後の計算に使うCWLのファイルが異なってくるため、ここで生成されたファイルを見てどちらだったかを把握しておく必要がある。

トリミングと呼ばれるQualityが低いところを削る作業をこのタイミングでする。

kallisto index作成

1
2
3
4
5
6
7
#! /bin/sh
# 作業するためのdirectoryに移動
cd ~/Downloads
# pitagora-cwlを使ってkallistoを手元のマシンにインストールすることなく実行
cwltool pitagora-cwl/tools/kallisto/index/kallisto_index.cwl \
--fasta_files Homo_sapiens.GRCh38.cdna.all.fa.gz \
--index_name Human

エラーなく終了し、current directoryにHumanという名前の、サイズの巨大なファイルができていれば実行はうまくいっている。

1
2
3
#! /bin/sh
# 出力結果の確認
ls -l Human

kallisto quant実行(paired-end)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#! /bin/sh
# 作業するためのdirectoryに移動
cd ~/Downloads
# pitagora-cwlを使ってkallistoを手元のマシンにインストールすることなく実行
cwltool pitagora-cwl/tools/kallisto/quant/paired_end/kallisto_quant_pe.cwl \
--index_file Human \
--fq1 SRR7300567.sra_1.fastq.gz \
--fq2 SRR7300567.sra_2.fastq.gz \
--nthreads 2 \
--bootstrap_samples 100 \
--out_dir_name kallisto_output_SRR7300567

current directoryにkallisto_output_SRR7300567ができて、その中にabundance.tsvファイルに定量結果があればうまく実行できている。

1
2
3
4
#! /bin/sh
# 出力結果の確認
ls -l kallisto_output_SRR7300567
less -x 18 kallisto_output_SRR7300567/abundance.tsv

早く終わってしまった人へ

Shizuoka.ngs#1のハンズオン資料にある

  • DRR100656(低酸素状態のCell line, RCC4-EV)
  • DRR100657(低酸素状態をレスキューしたサンプル、RCC4-VHL)

で同じ計算をやってみよう。 配列の取得はDBCLS SRAから可能。


Written by Hidemasa Bono in misc on 土 22 6月 2019.