Genomonでは解析を実施するのに主に5つのスクリプトを実行します.
Links inside this page:
WRITING THE SETUP CONFIGURATION FILE
Execute
1.PUTTING FASTQ FILES IN THE TARGET DIRECTORY (1 min ~1 hour)
2.ALIGNMENT & GENERATE SUMMARY TABLE (about 4.5 hours)
3.MERGE MAPPED BAM (about 3 hours)
4.REALIGNMENT (about 4 hours)
5.MUTATION CALLING & ANNOTATION (about 3 hours)
6.COPY NUMBER DATA ANALYSIS (about 3 hours)
HOW TO READ THE RESULT FILE
HOW TO READ THE SUMMARY FILE
HOW TO READ THE LOG FILE
genomon/script/exon_pipeline.configの設定ファイルを書き換えます.基本的にはユーザ名の部分をスパコンの各ユーザ名に変更すれば完了です.
PCRアダプタ配列の除去を行うときは[adapter]項目の,read1,read2に除去するアダプタを記載してください.read1はペアエンドのRead1のシークエンスプライマから読んだリードのFASTQファイル,read2はペアエンドのRead2のシークエンスプライマから読んだリードのFASTQファイルを対象とします.2種類以上のアダプタの除去が必要な場合はカンマ(,)区切りでアダプタを記載してください.
インストールしたソフトウェアのバージョンが異なる場合は書き換えてください.
exon_pipeline.config
1
2 [user-info]
3 name=USER_NAME ←USER_NAMEをスパコンのユーザ名に変更してください
4
5 [directory-path]
6 project=/home/USER_NAME/genomon ←USER_NAMEをスパコンのユーザ名に変更してください
7 script=script
8 ref=ref
9 input=data/input
10 output=data/output
11 result=data/result
12 db=db
13 sys=sys
14 tmp=tmp
15 log=log
16 inhousedata=
17 summarydata=
18
19 [data-file]
20 hg19fasta=ref/hg19_bwa-0.5.10/hg19.fasta
21 dbsnprod=
22
23 [adapter] ↓使用しているアダプタで間違いないですか?異なる場合は変更してください
24 read1=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
25 read2=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
26 #read1=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
27 #read2=NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN
28
29 [bin] ↓インストールしたソフトウェアのバージョンが異なる場合は変更してください
30 bwa=bin/bwa-0.5.10/bwa
31 picard=bin/picard-tools-1.39
32 samtools=bin/samtools-0.1.15/samtools
33 bedtools=bin/BEDTools-Version-2.14.3/bin
34 cutadapt=bin/cutadapt-1.0/cutadapt
35 annovar=bin/annovar
36 javatools=
37 python2.6=/usr/local/package/python2.6/2.6.5/bin/python
38 java6=/usr/local/package/java/current6/bin/java
39 maq=/usr/local/bin/maq
40 R=/usr/local/bin/R
41 gatk=bin/GenomeAnalysisTK-1.4-21-g30b937d
42 gatk1_0=
43
44 [db]
45 inhouseflg=0
46 inhouse_version=v1
47 cosmicflg=0
48 cosmic_version=v57
49
50 [ngsdb]
51 dbname=
52 hostname=
53 port=
54 user=
55 password=
56
57
マッピング機能を動かすためのディレクトリにFASTQファイルを配置するためのツールです.FASTQファイルの保存の方法がユーザさんで異なっているのでこのツールで吸収します.Genomonでは,FASTQファイルで保存しているパターンとCASAVA1.8で出力されたディレクトリ単位でFASTQファイルを保存しているパターンの2種類に対応しています.
先ずはFASTQファイルで保存している場合のツールの起動方法を説明します.
解析するFASTQファイルをgenomon/data/input_orgに配置しましょう.このときinput_orgディレクトリに直接FASTQファイルを配置するのではなくinput_org内に「サンプル名_RUN日」のディレクトリを作成することをお奨めします.そこにペアエンドのファイルを置くとこのようになります.
用意ができたところでツールをたたいてみましょう.このツールはファイル1つに対して1回実行します.
genomon/script ディレクトリ内で実行してください!
qsub putFastqFile.sh 引数1 引数2 引数3 引数4 引数5 引数6 引数7
引数1:インプットファイル(パス+ファイル名)
引数2:サンプル名
引数3:RUN日(シーケンサをRUNした日.同じサンプルを複数回シークエンスすることがあるので入れましょう.)
引数4:サンプルタイプ(normal tumor TAM AMKL CR …自由です.)
引数5:レーン番号(1~8を指定してください.)
引数6:ペア(1or2を指定してください.)
1 : ペアエンドのRead1のシークエンスプライマから読んだリードのFASTQファイル
2 : ペアエンドのRead2のシークエンスプライマから読んだリードのFASTQファイル
options
-f フィルタが必要であれば"-f"を記述します.このoptionに対する引数はいりません.
インプットFASTQファイルにcasava1.8がフィルタするべきとしているreadが存在する場合に"-f"を使用してください.
e.g. (コマンド)
qsub putFastqFile.sh -f ../data/input_org/sample01_120405/s_1_1_sequence.txt sample01 120405 tumor 1 1
qsub putFastqFile.sh -f ../data/input_org/sample01_120405/s_1_2_sequence.txt sample01 120405 tumor 1 2
qsub putFastqFile.sh -f ../data/input_org/sample01_120405/s_2_1_sequence.txt sample01 120405 normal 2 1
qsub putFastqFile.sh -f ../data/input_org/sample01_120405/s_2_2_sequence.txt sample01 120405 normal 2 2
e.g. (このコマンド結果 FASTQ file)
../data/input/sample01/120405/tumor/1/sample01_tumor_R1.fastq
../data/input/sample01/120405/tumor/1/sample01_tumor_R2.fastq
../data/input/sample01/120405/normal/2/sample01_tumor_R1.fastq
../data/input/sample01/120405/normal/2/sample01_tumor_R2.fastq
※putFastqDir.sh と同じディレクトリ構成&ファイル名でFASTQファイルが配置されます.
CASAVA1.8で出力されたディレクトリ単位でFASTQファイルを保存している場合のツールの起動方法を説明します.
解析するFASTQファイルをgenomon/data/input_orgに配置しましょう.このときinput_orgディレクトリに直接FASTQが格納されたディレクトリを配置するのではなくinput_org内に「サンプル名_RUN日」のディレクトリを作成することをお奨めします.そこにFASTQが入ったディレクトリを置くとこのようになります.
用意ができたところでツールをたたいてみましょう.このツールはディレクトリ1つに対して1回実行します.
genomon/script ディレクトリ内で実行してください!
qsub putFastqDir.sh [options] 引数1 引数2 引数3 引数4
引数1:インプットディレクトリ名(絶対パス)
引数2:サンプル名
引数3:RUN日(シーケンサをRUNした日.同じサンプルを複数回シークエンスすることがあるので入れましょう.)
引数4:サンプルタイプ(normal tumor TAM AMKL CR …自由です.)
options
-f フィルタが必要であれば"-f"を記述します.このoptionに対する引数はいりません.
インプットFASTQファイルにcasava1.8がフィルタするべきとしているreadが存在する場合に"-f"を使用してください.
e.g. (コマンド)
qsub putFastqDir.sh -f /home/genomon/data/input_org/sample01_120402/SampleT sample01 120405 tumor
qsub putFastqDir.sh -f /home/genomon/data/input_org/sample01_120402/SampleN sample01 120405 normal
e.g. (このコマンド結果 FASTQ file)
../data/input/sample01/120405/tumor/1/sample01_tumor_R1.fastq
../data/input/sample01/120405/tumor/1/sample01_tumor_R2.fastq
../data/input/sample01/120405/normal/2/sample01_tumor_R1.fastq
../data/input/sample01/120405/normal/2/sample01_tumor_R2.fastq
※putFastqFile.sh と同じディレクトリ構成&ファイル名でFASTQファイルが配置されます.
以上でFASTQファイルの配置は完成です.
ディレクトリ構成やファイル名はプログラムで読み取るので変更しないでください.
マッピングを実施します. マッピング率やカバレージの情報を出力します.
genomon/script ディレクトリ内で実行してください!
qsub map_bwa.sh [ options ] 引数1 引数2 引数3
引数1:サンプル名
引数2:run日(同じサンプルを複数回シークエンスすることがあるので入れましょう.)
引数3:キャプチャーした範囲が記載されているファイル名 (ディレクトリパス、拡張子(.bed)はいりません。installページの項番11.でアップロードしたファイルです.)
options
-j {s|m|l デフォルト:m}
スーパーコンピュータで使用するジョブを選択できます.s=sjob,m=mjob,l=ljob
-s {デフォルト:False -s を指定することによりTrueになります.}
FASTQファイルのQualityスコアがsangerのQualityスコアになっていない場合には,このオプションを指定してsangerのQualityスコアに変換してください.
-a {デフォルト:False -a を指定することによりTrueになります.}
FASTQ ファイルからアダプタ配列を除去したいときには,このオプションを指定してください.exon_pipeline.configファイルのアダプタ項目に記載をしてください.
e.g. (コマンド)
qsub map_bwa.sh sample01 120405 SureSelect50M -a -s
e.g. (このコマンド結果 BAMファイル)
../data/output/sample01/120405/map_bwa/tumor/ga.bam
../data/output/sample01/120405/map_bwa/normal/ga.bam
e.g. (このコマンド結果 マッピング率等の計算結果)
../data/output/sample01/120405/summary/tumor/
../data/output/sample01/120405/summary/normal/
e.g. (マッピング率等の計算結果レーンごと. TYPE(tumor,normalなどの)ディレクトリ以下のレーンディレクトリが1つしかない場合は,TYPEディレクトリ配下にできた結果とレーンディレクトリ配下にできた結果は同じになります.)
../data/output/sample01/120405/summary/tumor/1/
../data/output/sample01/120405/summary/normal/2/
qsubでジョブを起動したらjobIdが画面に表示されるのでメモしておきましょう.後でログを見るときに必要です.
もし,同じサンプル,同じサンプルタイプ(normal tumorが同じ)で異なるrun日のBAMファイルがある場合はこのタイミングでマージしましょう. 例えばdepthが足りなくて再度シークエンスして,マッピングしたbamファイルを作った時などこのタイミングで過去のbamファイルとマージします. 結果はrun日がmergeディレクトリとして作成されます.
genomon/script ディレクトリ内で実行してください!
qsub merge_bamfiles.sh [ options ] 引数1 引数2 引数3
引数1:マージするbamファイル(,カンマ区切りで複数指定する.絶対パスで記述)
引数2:サンプル名
引数3:サンプルタイプ (normal tumor など)
options
-j {s|m|l デフォルト:m}
スーパーコンピュータで使用するジョブを選択できます.s=sjob,m=mjob,l=ljob
-t {RUN日 デフォルト:merge}
bamファイルを出力するディレクトリの下の赤字の部分(merge)を指定.通常はデフォルトで問題ありません.
genomon/data/output/${引数1:サンプル名}/${RUN日}/${bam_directory}/${bam_file_name}
-g {Bamファイル出力ディレクトリ デフォルト: map_bwa}
bamファイルを出力するディレクトリの下の赤字の部分(map_bwa)を指定.通常はデフォルトで問題ありません.
genomon/data/output/${引数1:サンプル名}/${RUN日}/${bam_directory}/${bam_file_name}
-f {Bamファイル デフォルト:ga.bam}
bamファイル(赤字の部分)がデフォルト(ga) を指定.通常はデフォルトで問題ありません.
genomon/data/output/${引数1:サンプル名}/{RUN日}/${bam_directory}/${bam_file_name}
e.g. (コマンド)
qsub merge_bamfiles.sh /home/testuser/genomon/data/output/sample01/120405/map_bwa/tumor/ga.bam,
home/testuser/genomon/data/output/sample01/110415/map_bwa/tumor/ga.bam sample01 tumor
※1行で書いてください.画面横サイズにコマンドが収まらなかっただけです.
e.g. (このコマンド結果 BAMファイル)
../data/output/sample01/merge/map_bwa/tumor/ga.bam
qsubでジョブを起動したらjobIdが画面に表示されるのでメモしておきましょう.後でログを見るときに必要です.
リアライメントを実施します.
初回だけ単独(qsub1回)で動かしてください.
『Install 項番12. GATK(The Genome Analysis Toolkit) のrealignmentを実行するのに必要なhg19.dictファイルを作成します.』を実施することによりこの制約が解消されました.初回からでも複数のqsubを投げることができます.
genomon/script ディレクトリ内で実行してください!
qsub realign_gatk.sh [ options ] 引数1 引数2 引数3 [引数4] [引数5]
引数1:サンプル名
引数2:run日(項番3のMERGE MAPPED BAMでmergeディレクトリにBamファイルが作成されたときは、run日=merge となります.)
引数3:サンプルタイプ (normal tumor を比較するときはこちらにnormal type を記載してください.)
引数4:サンプルタイプ (引数3のnormal type と比較します.)
引数5:サンプルタイプ (引数3のnormal type と比較します.tumorが2種類ある場合は指定.任意の引数です.)
options
-j {s|m|l デフォルト:m}
スーパーコンピュータで使用するジョブを選択できます.s=sjob,m=mjob,l=ljob
-i {インターバルリスト デフォルト:interval_list_hg19_nogap}
BAMファイルを分割する(処理の並列化)ために必要なファイルを格納しているディレクトリを指定します.
e.g. (コマンド)
qsub realign_gatk.sh sample01 120405 normal tumor
e.g. (このコマンド結果 BAMファイル)
../data/output/sample01/120405/realign_gatk/tumor/realigned.bam
../data/output/sample01/120405/realign_gatk/normal/realigned.bam
qsubでジョブを起動したらjobIdが画面に表示されるのでメモしておきましょう.後でログを見るときに必要です.
データ解析を実施します.
genomon/script ディレクトリ内で実行してください!
qsub fisher_test.sh [ options ] 引数1 引数2 引数3 引数4 [引数5]
引数1:サンプル名
引数2:データ解析実施日 これはRUN日ではありません.RUN日を指定するときはオプション -tを使用してください.同じサンプルのBAMファイルを複数回 Mutation Callする(Mapping_Quality,Base_Quality,Max_Indelを調整する)ことを見越して引数になってます.
引数3:サンプルタイプ (normal tumor を比較するときはこちらにnormal type を記載してください)
引数4:サンプルタイプ (引数3のnormal type と比較します)
引数5:サンプルタイプ (引数3のnormal type と比較します.tumorが2種類ある場合は指定.任意の引数です.)
options
-j {s|m|l デフォルト:m}
スーパーコンピュータで使用するジョブを選択できます.s=sjob,m=mjob,l=ljob
-m {Mapping_Quality デフォルト:30}
Fisher検定を行うときに指定した以下のマッピングクオリティーを除外します.
-b {Base_Quality デフォルト:15}
Fisher検定を行うときに指定した以下のベースクオリティーを除外します.
-x {Max_Indel デフォルト:2}
検定を行うときに1リード内のインデルの数が指定した数以上である場合は除外します.
-i {インターバルリスト デフォルト:interval_list_hg19_nogap}
BAMファイルを分割する(処理の並列化)ために必要なファイルを格納しているディレクトリを指定します.
-t {RUN日 デフォルト:merge}
bamファイルが格納されているディレクトリの下の赤字の部分がデフォルト(merge) と異なる場合は,このオプションを指定し対象を変更してください.項番4 REALIGNMENT の引数2に"merge"以外を指定した方はこのオプションが必須になります.-t RUN日 を必ず指定してください.
genomon/data/output/${引数1:サンプル名}/${RUN日}/${bam_directory}/${bam_file_name}
-g {Bamファイル格納ディレクトリ デフォルト:realign_gatk}
bamファイルが格納されているディレクトリの下の赤字の部分がデフォルト(realign_gatk) と異なる場合は,このオプションを指定し対象を変更してください.このオプションにより、リアライメントしていないBamファイルを指定することができます.
genomon/data/output/${引数1:サンプル名}/${RUN日}/${bam_directory}/${bam_file_name}
-f {Bamファイル デフォルト:realigned.bam}
bamファイル(赤字の部分)がデフォルト(realigned) と異なる場合は,このオプションを指定し対象を変更してください.
genomon/data/output/${引数1:サンプル名}/{RUN日}/${bam_directory}/${bam_file_name} 拡張子まで必要です.
e.g. (コマンド)
qsub fisher_test.sh sample01 120430 normal tumor
e.g. (このコマンド結果 データ解析結果ファイル)
../data/result/sample01_120405/fisher_test/sum_sample01_120430_tumor.exome.result.txt
genome.result.txt からexome領域のみを抜きとって一覧にしたものです。メインの結果ファイルです.
../data/result/sample01_120405/fisher_test/sum_sample01_120430_tumor.genome.result.txt
genome全体のデータ解析結果です.
e.g. (結果が失敗しているときに確認したいファイルです.問い合わせされる時などに有益です.とりあえず残しておいてください.)
../data/result/sample01_120405/fisher_test/output.tumor_normal.anno
../data/result/sample01_120405/fisher_test/output.tumor.anno
../data/result/sample01_120405/fisher_test/output.normal.anno
../data/result/sample01_120405/fisher_test/enpty_tmp_file.list
e.g. (いらないファイルたち、中間ファイルです。すみません。次回リリースで削除します)
../data/result/sample01_120405/fisher_test/sum_sample01_120430_tumor.exome_summary.txt
../data/result/sample01_120405/fisher_test/sum_sample01_120430_tumor.genome_summary.txt
qsubでジョブを起動したらjobIdが画面に表示されるのでメモしておきましょう.後でログを見るときに必要です.
Copy Number Data 解析を実施します.
genomon/script ディレクトリ内で実行してください!
qsub copy_num.sh [ options ] 引数1 引数2 引数3 引数4 引数5
引数1:サンプル名
引数2:run日
引数3:キャプチャーした範囲が記載されているファイル名 (ディレクトリパス、拡張子(.bed)はいりません。installページの項番11.でアップロードしたファイルです.)
引数4:サンプルタイプ (normal type を記載してください.)
引数5:サンプルタイプ (引数3のnormal type と比較するtumor type を指定してください.)
options
-j {s|m|l デフォルト:m}
スーパーコンピュータで使用するジョブを選択できます.s=sjob,m=mjob,l=ljob
-i {インターバルリスト デフォルト:interval_list_hg19_nogap}
BAMファイルを分割する(処理の並列化)ために必要なファイルを格納しているディレクトリを指定します.
e.g. (コマンド)
qsub copy_num.sh sample01 120430 SureSelect50M normal tumor
e.g. (このコマンド結果 Copy Numberデータ解析結果ファイル)
../data/output/sample01/120430/copyNum/sample01.tumor_as.pdf
../data/output/sample01/120430/copyNum/sample01.tumor_total.pdf
qsubでジョブを起動したらjobIdが画面に表示されるのでメモしておきましょう.後でログを見るときに必要です.
ここでは結果ファイルの読み方の説明をします.
結果ファイルとは「5. MUTATION CALLING & ANNOTATION」で出力されたファイルを指します.
sum_${サンプル名}_${データ解析実施日}_${サンプルタイプ}.exome.result.txt をローカルにダウンロードしてExcelで開いてください.
各カラム名の説明を記載しました.AnnovarがつけたAnnotationについては ANNOVARのホームページ をご覧ください.
exome.result.txt(結果ファイル)の例です.
定番のフィルタ
ここではサマリーファイルの読み方の説明をします.
サマリーファイルとは「2. ALIGNMENT & GENERATE SUMMARY TABLE」で出力するマッピング率やカバレージの情報が載っているファイルを指します.
genomon/data/output/${サンプル名}/${RUN日}/summary/ ディレクトリをローカルにダウンロードしてください.最低限見ておいた方が良い情報を載せておきます.
AlignmentSummaryMetrics.txt 項目の詳細を知りたい場合は Picardのjavadoc(Class AlignmentSummaryMetrics) で確認してください.
AlignmentSummaryMetrics.txt
ga.metrics
GcBiasDetailMetrics.pdf
GcBiasDetailMetrics.txt
GcBiasSummaryMetrics.txt
InsertSizeMetrics.pdf
InsertSizeMetrics.txt
MeanQualityByCycle.pdf
MeanQualityByCycle.txt
QualityScoreDistribution.pdf
QualityScoreDistribution.txt
ここではログファイルの読み方の説明をします.全てのジョブで共通したログファイルの出力先ディレクトリになります.
実行したジョブのログの出力先ディレクトリ genomon/logログファイルの中身(e.g. map_bwa.sh.o0000000)
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
Cleaning up started.
Mon Apr 9 22:32:54 2012
Cleaning up in progress.
Waiting for submitted jobs to be finished.
job id : 33394 failed =0 exit_status=0
job id : 33393 failed =0 exit_status=0
job id : 33392 failed =0 exit_status=0
job id : 33391 failed =0 exit_status=0
Cleaning up finished.
Mon Apr 9 22:37:20 2012
ログはメインシェル(map_bwa.sh, realign_gatk.sh, fisher_test.sh など) が内部でqsub したスクリプトとその戻り値が記載されます. 上のログではqsubしたrm.shが4つ,そしてその実行結果が4つとも”failed=0 exit_status=0”で正常終了しているため,メインシェルが正しく終了したことがわかります.
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
['qsub', '-e', 'log/sample_100422', '-o', 'log/sample_100422', 'script/rm.sh']
Cleaning up st arted.
Mon Apr 9 22:32:54 2012
Cleaning up in progress.
Waiting for submitted jobs to be finished.
job id : 33394 failed =0 exit_status=0
job id : 33393 failed =1 exit_status=125
Cleaning up finished.
Mon Apr 9 22:37:20 2012
上のログではqsubしたrm.shが4つ,そしてその実行結果のうちの1つが ”failed=1 exit_status=125”で異常終了しています.異常終了するとメインシェルがエラー終了します(エラーとなった時点で処理が終了します)
こんな時はメインシェルが内部でqsubしたログを確認してみましょう.
出力先ディレクトリ : genomon/log/${SAMPLE}_${RUN日}
ログファイル : rm.sh.o33393
エラーログファイル : rm.sh.e33393
原因がわからなかったら,もう一度メインシェルを投げなおしてみましょう.スーパーコンピュータの調子が悪いため,異常終了してしまうというケースがあるためです.
メインシェルのログ
・マッピングを実施したときに出力されるログです.※0000000は実行したジョブIDが入ります.