GATK4+mutect2 call somatic mutation

最近看了GATK的網(wǎng)站滞谢,以前經(jīng)常用GATK call somatic mutation串稀, 但是用的版本太老了,另外服務(wù)器最近換了盤狮杨,很多代碼路徑都變了母截,網(wǎng)上關(guān)于GATK4的教程比較少,不想做伸手黨橄教,于是嘗試自己寫代碼試一試清寇。

1 Getting start with GATK

GATK是Genome AnalysisToolkit的縮寫,它搜集了一系列分析高通量測(cè)序數(shù)據(jù)的工具护蝶,主要目的是在于發(fā)現(xiàn)變異华烟,這個(gè)工具可以單獨(dú)的用,但是也可以和其他的workflow合在一起持灰。

contents:

1. 安裝GATK

GATK 工具具有相當(dāng)簡單的軟件需求: 一個(gè)Unix-style OS 以及java 1.8 版本以上盔夜,其他的工具需要額外的R和python的依賴。 可以在這個(gè)網(wǎng)址下載: https://github.com/broadinstitute/gatk/releases堤魁,
最新版本的GATK可以按照如下命令下載:

   wget https://github.com/broadinstitute/gatk/releases/download/4.1.9.0/gatk-4.1.9.0.zip

如果需要其他版本喂链,可以自行在在這個(gè)網(wǎng)址下載。 一旦你下載了解壓這個(gè)文件夾妥泉,里面一般會(huì)有這四個(gè)文件:

gatk
gatk-package-[version]-local.jar
gatk-package-[version]-spark.jar
README.md

這個(gè)時(shí)候你可能會(huì)問椭微,為什么會(huì)有兩個(gè)jar, 就像名字里一樣盲链,gatk-package-[version]-spark.jar 是在Spark cluster上專門跑Spark tools 設(shè)計(jì)的蝇率。
而 gatk-package-[version]-local.jar是為了跑其他的設(shè)計(jì)的。那么這是否意味著你必須每次跑程序時(shí)指定你要跑哪一個(gè)匈仗,大可不必瓢剿,在文件夾中有g(shù)atk這個(gè)參數(shù),這是一個(gè)可執(zhí)行的腳本將會(huì)根據(jù)你的命令行選擇適當(dāng)?shù)膉ar悠轩,如果你想的話,當(dāng)然可以用一個(gè)specific的jar攻泼,但是用gatk會(huì)簡單一些火架。 它會(huì)根據(jù)你的情況幫你設(shè)置一些你需要的參數(shù)。

2. 是否安裝成功

為了測(cè)試你是否成功的安裝了GATK忙菠,在你的終端跑下面的命令行何鸡,

./gatk -- help 

3.跑GATK和picard 的命令行

 gatk [--java-options "jvm args like -Xmx4G go here"] ToolName [GATK args go here]

比如說:

gatk --java-options "-Xmx8G" HaplotypeCaller -R reference.fasta -I input.bam -O output.vcf

4.GATK Best Practices

GATK的輸入文件需要做一些預(yù)處理。

(1)數(shù)據(jù)預(yù)處理

在所有call 點(diǎn)突變的步驟前必須的一個(gè)階段牛欢,數(shù)據(jù)的預(yù)處理骡男。 他包括處理原始的測(cè)序數(shù)據(jù)(FASTQ或者uBAM格式)去產(chǎn)生可以分析的BAM文件。 這些步驟包含了比對(duì)到reference 基因組上傍睹,以及一些數(shù)據(jù)清理的操作隔盛,矯正技術(shù)偏差犹菱,將數(shù)據(jù)更加合適分析。

輸入格式

希望輸入的read data的格式是unmapped BAM (uBAM) 格式吮炕。 轉(zhuǎn)換工具可以將數(shù)據(jù)從FASTQ轉(zhuǎn)換到uBAM腊脱。

(2)主要步驟

首先,我們把這個(gè)測(cè)序reads reads 比對(duì)到ref 基因組上去產(chǎn)生一個(gè)SAM/BAM格式的文件龙亲,這個(gè)SAM/BAM格式的數(shù)據(jù)根據(jù)坐標(biāo)順序排列陕凹。下一步,我們標(biāo)記了重復(fù)序列為了減輕由于數(shù)據(jù)產(chǎn)出步驟而帶來的誤差(PCR擴(kuò)增)鳄炉。 最后我們矯正了堿基的質(zhì)量得分杜耙,因?yàn)閏all 突變的算法嚴(yán)重依賴每條測(cè)序read中每個(gè)堿基的質(zhì)量得分。

1 比對(duì)

在這里需要用到的工具是BWA

$RG_string="@RG ID:H0164.2  PL:illumina PU:H0164ALXX140820.2    LB:Solexa-272222    PI:0    DT:2014-08-20T00:00:00-0400 SM:NA12878  CN:BI"
$RG_LB="sample_name"
bwa mem -t 16 -M -R "$RG_string"  fq.1.gz fq.2.gz -o $RG_LB.sam"
2 mark duplicates (標(biāo)記重復(fù))
gatk --java-options "-Xmx20G" MarkDuplicatesSpark
-I $sample.bam -O ${sample}_marked.bam \
-M $sample.metrics \
1>log.mark 2>&1
3 FixMateInformation
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" FixMateInformation \
    -I ${sample}_marked.bam \
    -O ${sample}_marked_fixed.bam \
    -SO coordinate \
    1>${sample}_log.fix 2>&1 
4 GATK堿基質(zhì)量重矯正(BQSR):

下載所需要的參考基因組

wget ftp://gsapubftp-anonymous@ftp.broadinstitute.org/bundle/hg38/*

此時(shí)會(huì)下載如下文件

1000G_phase1.snps.high_confidence.hg38.vcf
dbsnp_146.hg38.vcf
Mills_and_1000G_gold_standard.indels.hg38.vcf

然后對(duì)堿基進(jìn)行矯正

gatk --java-options "-Xmx20G" BaseRecalibrator \
   -I ${sample}_marked_fixed.bam \
   -R reference.fasta \
   --known-sites 1000G_phase1.snps.high_confidence.hg38.vcf\
   --known-sites dbsnp_146.hg38.vcf\
   --known-sites Mills_and_1000G_gold_standard.indels.hg38.vcf\
   -O recal_data.table1

gatk  --java-options "-Xmx20G" ApplyBQSR \
   -R reference.fasta \
   -I ${sample}_marked_fixed.bam \
   --bqsr-recal-file  recal_data.table1 \
   -O ${sample}_marked_fixed_BQSR.bam

gatk --java-options "-Xmx20G" BaseRecalibrator \
   -I ${sample}_marked_fixed_BQSR.bam \
   -R reference.fasta \
   --known-sites 1000G_phase1.snps.high_confidence.hg38.vcf\
   --known-sites dbsnp_146.hg38.vcf\
   --known-sites Mills_and_1000G_gold_standard.indels.hg38.vcf\
   -O recal_data.table2

gatk --java-options "-Xmx20G" AnalyzeCovariates \
     -before recal_data.table1 \
     -after recal_data.table2 \
     -plots AnalyzeCovariates.pdf

5. 用mutect2 call點(diǎn)突變

目前mutect2 v4.1.0.0是支持多個(gè)樣本的綜合分析的拂盯。 里面有三種模式(1)tumor-normal mode佑女。 (2) tumor-only mode。 (3) mitochondrial mode磕仅。

a 在v4.1珊豹,不再需要用-tumor 這個(gè)參數(shù)去特異的設(shè)置tumor 樣本。 僅僅是需要用-normal 這個(gè)參數(shù)去設(shè)置正常樣本榕订,如果你有正常樣本的話店茶。
b 在4.0.4.0 開始,GATK提倡使用默認(rèn)參數(shù)--af-of-alleles-not-in-resource劫恒, 工具中不同的模型的參數(shù)設(shè)置不同贩幻。 tumor-only calling 設(shè)置默認(rèn)的是5e-8. tumor-normal calling 設(shè)置的是1e-6。 以及mitochondrial mode設(shè)置的是4e-3两嘴。 在以前的版本里丛楚,默認(rèn)這是的是0.001, 這個(gè)是人類的平均異質(zhì)性憔辫。 關(guān)于其他的物種趣些,把--af-of-alleles-not-in-resource 改成1。

在這里贰您,假設(shè)你已經(jīng)有了normal.bam和tumor.bam, 參考文件是ref.fasta, 目標(biāo)區(qū)域文件是intervals.interval.list .
(0) 構(gòu)建normal panel
如果你有多個(gè)normal.bam做對(duì)照坏平,在開始之前,可以利用這些normal bam構(gòu)建normal panel作為第二步的原始候選變異檢測(cè)輸入集锦亦。

gatk Mutect2 -R ref.fasta  -I normal1.bam -max-mnp-distance 0 -O normal1.vcf.gz

gatk GenomicsDBImport \
-R reference.fasta \
-L intervals.interval_list \
--genomicsdb-workspace-path pon_db \
-V normal1.vcf.gz

gatk CreateSomaticPanelOfNormals \
-R reference.fasta \
-V gendb://pon_db \
-O pon.vcf.gz

(I)Tumor with matched normal
如果有一個(gè)匹配的normal舶替, mutect2是被設(shè)計(jì)僅僅是用來call somatic mutation的。這個(gè)工具可以自動(dòng)的跳過那些已知的存在于germline中的突變杠园。 這樣可以避免一些計(jì)算資源的浪費(fèi)顾瞪。 如果一個(gè)突變處于germline的邊緣。mutect2會(huì)把這個(gè)變量放到callset數(shù)據(jù)集中,被FilterMutectCalls用來做進(jìn)一步的過濾陈醒,或者review惕橙。

 gatk --java-options "-Xmx20G" Mutect2 \
     -R reference.fa \
     -I tumor.bam \
     -I normal.bam \
     -normal normal_sample_name \
     --germline-resource af-only-gnomad.vcf.gz \
     --panel-of-normals pon.vcf.gz \
     --f1r2-tar-gz f1r2.tar.gz \
     -O somatic.vcf.gz

這個(gè)命令產(chǎn)生的輸出文件還需要用FiterMutectCalls過濾。
同時(shí)在mutect2的v4.1還支持來自于同一個(gè)人的多個(gè)腫瘤和正常樣本孵延。 但是必須要設(shè)置這個(gè)-I和-normal參數(shù)吕漂。

gatk --java-options "-Xmx20G" Mutect2 \
     -R reference.fa \
     -I tumor1.bam \
     -I tumor2.bam \
     -I normal1.bam \
     -I normal2.bam \
     -normal normal1_sample_name \
     -normal normal2_sample_name \
     --germline-resource af-only-gnomad.vcf.gz \
     --panel-of-normals pon.vcf.gz \
     -O somatic.vcf.gz

估計(jì)配對(duì)樣本的交叉污染估計(jì)

gatk Pileup \
-R reference.fasta \
-L intervals.interval_list \
-I normal.bam \
-O normal-pileups.table

gatk Pileup \   
-R reference.fasta \   
-L intervals.interval_list \   
-I tumor.bam \   
-O tumor-pileups.table

gatk CalculateContamination \   
-I tumor-pileups.table \   
-matched normal-pileups.table \   
-O contamination.table

測(cè)序偏好矯正以及過濾

gatk LearnReadOrientationModel \
-I f1r2.tar.gz \
-O read-orientation-model.tar.gz

gatk FilterMutectCalls \
-R reference.fasta \
-V somatic.vcf.gz \
--contamination-table contamination.table \
--ob-priors read-orientation-model.tar.gz \
-O filtered.vcf.gz\

最后得到的filtered.vcf.gz就是過濾好的結(jié)果啦,vep注釋起來尘应,發(fā)現(xiàn)GATK4.1也提供了一個(gè)注釋的工具Funcotator惶凝,有興趣也可以嘗試一下。
(ii)Tumor-only mode
這個(gè)模型是針對(duì)一個(gè)樣本犬钢。

 gatk --java-options "-Xmx20G"  Mutect2 \
   -R reference.fa \
   -I sample.bam \
   -O single_sample.vcf.gz

(iii) Mitochondrial mode

 gatk Mutect2 \
  -R reference.fa \
  -L chrM \
  --mitochondria-mode \
  -I mitochondria.bam \
  -O mitochondria.vcf.gz
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苍鲜,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子玷犹,更是在濱河造成了極大的恐慌混滔,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,013評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡抓韩,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,205評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門领跛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撤奸,你說我怎么就攤上這事吠昭。” “怎么了胧瓜?”我有些...
    開封第一講書人閱讀 152,370評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵矢棚,是天一觀的道長。 經(jīng)常有香客問我府喳,道長蒲肋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,168評(píng)論 1 278
  • 正文 為了忘掉前任钝满,我火速辦了婚禮肉津,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘舱沧。我一直安慰自己,他們只是感情好偶洋,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,153評(píng)論 5 371
  • 文/花漫 我一把揭開白布熟吏。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪牵寺。 梳的紋絲不亂的頭發(fā)上悍引,一...
    開封第一講書人閱讀 48,954評(píng)論 1 283
  • 那天,我揣著相機(jī)與錄音帽氓,去河邊找鬼趣斤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛黎休,可吹牛的內(nèi)容都是我干的浓领。 我是一名探鬼主播,決...
    沈念sama閱讀 38,271評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼势腮,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼联贩!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起捎拯,我...
    開封第一講書人閱讀 36,916評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤泪幌,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后署照,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體祸泪,經(jīng)...
    沈念sama閱讀 43,382評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,877評(píng)論 2 323
  • 正文 我和宋清朗相戀三年建芙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了没隘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 37,989評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡岁钓,死狀恐怖升略,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情屡限,我是刑警寧澤品嚣,帶...
    沈念sama閱讀 33,624評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站钧大,受9級(jí)特大地震影響翰撑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜啊央,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,209評(píng)論 3 307
  • 文/蒙蒙 一眶诈、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧瓜饥,春花似錦逝撬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,199評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽溯警。三九已至,卻和暖如春狡相,著一層夾襖步出監(jiān)牢的瞬間梯轻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,418評(píng)論 1 260
  • 我被黑心中介騙來泰國打工尽棕, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留喳挑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,401評(píng)論 2 352
  • 正文 我出身青樓滔悉,卻偏偏與公主長得像伊诵,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子氧敢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,700評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容