Repository navigation
Developer
このページの内容は開発者向けです。
GCATWorkflow パッケージは scripts/ と tests/ ディレクトリから構成されています。
scripts/ にはソースコードが、tests/ にはテストコードおよびサンプルシート、設定ファイルサンプルが入っています。
各ワークフローのソースコードは scripts/genomon_pipeline/ 配下のディレクトリにワークフロー名のディレクトリに配置されています。

- data/snakefile.txt ... ワークフローの本体です。configure のとき、出力ディレクトリに snakefile としてコピーされます。
- resource/xx.py ... 各ステージの実行スクリプトを作成します。
- configure.py ... congiure のとき、config.yml を作成します。 (出力ディレクトリの作成や bam と fastq のリンク作成も行います)
- sample_conf.py ... サンプルシート解読を行います。
scripts/genomon_pipeline/cores ディレクトリ配下は共通関数です。
編集するときは十分ご注意ください。
1.各タスクは "genomon_runner" で実行します。
各ステージ (resourceディレクトリ配下) ではこの "genomon_runner" に入力するための shell_xx.sh, singularity_xx.sh, conf_xx.yml を作成します。
まずは手動で shell_xx.sh, singularity_xx.sh, conf_x.yml 3点セットを作成し、 "genomon_runner" で正しく動作することを確認したのち、ソースコードの編集を行うのが良いでしょう。
2.実際のワークフローは snakefile と config.yml で制御します。
各ワークフローの config.py では config.yml を生成しています。
まずは snakefile と config.yml を手動で編集したのち "snakemake -n" コマンドで正しく動作させて、snakefile, config.yml の完成形を把握してから、ソースコードの編集を行うのが良いでしょう。
前述のとおり、各ステージは scripts/genomon_pipeline/resource/xx.py にあります。
適宜変更してください。
1.scripts/genomon_pipeline/xx/sample_conf.py を編集します。
ステージに合わせて変更します。
よほどのことがない限り [bam_import] [bam_tofastq] [fastq] を編集する必要はないでしょう。
analysis stage をステージに合わせて編集します。
2.scripts/genomon_pipeline/xx/configure.py を編集します。
mutation や qc ステージなど既存のステージを参考に、追加するステージをコールするよう変更します。
ペアのノーマルサンプルやコントロールパネルがない場合は、rna/expression をもとにするのが良いでしょう。
※ dna/qc は bamstats と coverage に分岐したのち、merge する 3 ステップですので、すなおなルートではありません。
3.scripts/genomon_pipeline/xx/resource 配下にステージを追加します。
上述の「既存のステージを仕様変更する」を参照してください。
4.scripts/genomon_pipeline/xx/data/snakemake.txt を編集します。
mutation や qc など既存ステージを参考にステージを追加します。
1.ワークフローのサブコマンド名を決める
→ここでは somatic とします。
2.scripts/genomon_pipeline/ ディレクトリ配下に somatic ディレクトリを作成し、既存のワークフローディレクトリの中身を一式コピーする。
コピーする元は作成するワークフローの特徴によって決めるとよいでしょう。
- DNA でペアリード固定、出力は bam → dna/ ディレクトリ
- DNA でペアリード固定、出力は cram → germ/ ディレクトリ
- RNA でシングルリードもある。 → rna/ ディレクトリ
→ここではdnaディレクトリをコピーするものとします。
3.scripts/genomon_pipeline/somatic/sample_conf.py を編集します。
ステージに合わせて変更します。 上述の「既存のワークフローに対し新しいステージを追加する」を参照してください。
4.scripts/genomon_pipeline/somatic/configure.py を編集します。
"genomon_pipeline.dna" を "genomon_pipeline.somatic" に変更します。
さらに、ステージに合わせて変更します。 上述の「既存のワークフローに対し新しいステージを追加する」を参照してください。
5.scripts/genomon_pipeline/somatic/resource 配下にステージを追加します。
上述の「既存のステージを仕様変更する」を参照してください。
6.scripts/genomon_pipeline/somatic/data/snakemake.txt を編集します。
上述の「既存のワークフローに対し新しいステージを追加する」を参照してください。
7.scripts/genomon_pipeline/configure_if.py を編集します。
somatic ルートを追加します。
8.genomon_pipeline を編集します。
'analysis_type' に 'somatic' を追加します。
※ 将来的には snakemake コマンドを genomon_pipeline コマンドに入れ込むことも可能です。 詳しいオプションは snakemake 公式 を参照してください。
Pythonソースコード例
import snakemake
success = snakemake.snakemake(wdir + '/snakefile', workdir = wdir, dryrun = True)