Home - ncc-gap/GCATWorkflow GitHub Wiki

Welcome to the GCATWorkflow wiki!

はじめに

このページでは G-CAT Workflow について、 G-CAT Workflow の将来の開発者に対する使い方とワークフローの作成方法を記述するものです。

G-CAT Workflow とは

以下特徴を持つゲノム解析パイプラインです。

  • 各ステージは singularity イメージを使用します。
  • ワークフロー制御に snakemake を使用しています。
  • parabricks 環境下では pbrun が使用可能です。(germline, somatic パイプラインのみ)

G-CAT Workflow のワークフロー

2020/12/23 現在、G-CAT Workflow には以下3つのワークフローが実装されています。

  1. rna ワークフロー
    GenomonPipeline の fusionsufion および SRA iravプロジェクトで使用していた STAR(2.7.3a, SRA irav の STAR は 2.7.2b) と expression, iravnet を搭載しています。
    入力にシングルリードを許可していることが特徴です。

入力として [sra_fastq_dump] に対応しています。

  1. germline ワークフロー
    parabrics 互換スクリプト を使用したワークフローです。
    アラインメントステージで cram を作成します。
    parabricks が使用可能な環境ではparabricks が使用可能になりました。(2020.05.22)

  1. somatic ワークフロー parabrics 互換スクリプト を使用したワークフローです。
    アラインメントステージで cram を作成します。

使い方

インストール方法

shirokane もしくは DDBJ スパコンで動作させることを想定していますが、 dryrun だけならローカルマシンにインストールすることも可能です。

DRMAA_LIBRARY_PATH を設定しておく (drmaaを使用する場合)

shirokaneの例

export DRMAA_LIBRARY_PATH=/geadmin/N1GE/lib/lx-amd64/libdrmaa.so.1.0

python3でインストール

git clone https://github.com/ncc-ccat-gap/GCATWorkflow.git
cd GCATWorkflow
python setup.py install

サンプルシート (.csv) の記入方法

基本的には GenomonPipeline と同じです。
解析ステージは各ワークフローによって多少異なります。

※ サンプルは管理者までお問い合わせください。

設定ファイル (.cfg) の記入方法

GenomonPipeline よりは GenomonPipeline_cloud に近いです。

※ サンプルは管理者までお問い合わせください。

  1. parabricks との対応

GCATWorkflowはparabricksに対応していますが、parabricksが無いときはGATKのコマンドを使用するように設計しています。
サンプルシートとconfigファイルの [section] の対応は以下です。

※ 記載外のセクションは parabricks モード無し

実行方法

1.必要なコンテナイメージを singularity pull しておきます。
2.必要なライブラリを用意します。
3.必要なシーケンスデータを用意します。
4.サンプルシートと設定ファイルを作成します。
5.gcat_workflow コマンドを実行します。

gcat_workflow {germline | somatic | rna} /path/to/samplesheet.csv ${output_dir} /path/to/configure.cfg

※ 現在は configure の役割しか果たしません。
ワークフローを実行するためには次の snakemake コマンドを実行する必要があります。

--runner オプションについて

ジョブ管理ツールを以下より選択することができます。

  • DRMAA (デフォルト)
  • qsub
  • slurm
  • bash (v3.1.16以降)

6.出力先ディレクトリに移動して snakemake コマンドを実行します。

※途中からやり直すときも同じコマンドです。成功したジョブは自動で飛ばします。

cd ${output_dir}
# 10並列での実行例
snakemake --cores 10 -k

dry-run するとき

snakemake -n

再実行するとき(最初からすべてやり直す)

snakemake --forceall

※ より詳しいオプションは snakemake 公式 を参照してください。

再実行時に実行されるジョブ

No 内容 手順1(configure) 手順2(make) 結果
1 初回実行 gcat_workflow command snakemake 全実行
2 1の後、再実行 --- snakemake 実行なし
3 1の後、再実行 (forceall) --- snakemake --forceall 全実行
4 1の後、再度configure gcat_workflow command snakemake 実行なし
5 1の後、ファイルを消して再実行 rm join/all.txt sv/5929_tumor/5929_tumor.txt snakemake 削除分のみ実行
6 1の後、サンプル追加後、再configure サンプルシートの [bam_import] と [qc] に新しいサンプルを追記してから、 gcat_workflow command snakemake 追加分のみ実行

snakemake 実行中にCtrl-C で中断するか?

Ctrl-Cで止まるが、ジョブは止まらないので、手動で消すか終了するのを待つ。 再実行は以下どちらかで可能

  • --forceallをつけて実行
  • 再度configure

snakemakeのエラーメッセージがでたら指示に従う

Building DAG of jobs... 
IncompleteFilesException: The files below seem to be incomplete. If you are sure that certain files are not incomplete, mark them as complete with

snakemake --cleanup-metadata <filenames>
To re-generate the files rerun your command with the --rerun-incomplete flag. 
Incomplete files: star/MCF-7_fq/MCF-7_fq.Aligned.sortedByCoord.out.bam

この場合、以下を実行する

snakemake --cleanup-metadata star/MCF-7_fq/MCF-7_fq.Aligned.sortedByCoord.out.bam
⚠️ **GitHub.com Fallback** ⚠️