gatk4使用總結(jié)

昨天看了gatk的官網(wǎng),從2018年發(fā)布正式版的4.0.0開始,到現(xiàn)在已經(jīng)更新到4.1.8幽七,在速度和準(zhǔn)確度上都有了大幅的提升。gatk4除了整合picard軟件之外溅呢,在使用上與gatk3基本相同澡屡,只不過是在命令運行、功能劃分及運行速度上進行了調(diào)整咐旧。gatk4軟件的安裝及使用驶鹉,網(wǎng)上有很多帖子,可以自行查閱铣墨。今天主要給大家介紹gatk4與gatk3明顯不同的地方梁厉,這些使得gatk4的應(yīng)用更加方便。

1. 輸入文件的變化

變異數(shù)據(jù)是從比對結(jié)果中獲得的踏兜,gatk之前就已經(jīng)支持cram的輸入词顾,但是數(shù)據(jù)去重部分的picard軟件并不支持,運行時會報錯碱妆。至于cram文件肉盹,也是一種比對結(jié)果文件,只不過文件體積更小疹尾,即對于存儲受限的分析人員里說是一個值得考慮的方向上忍,具體的信息可查看公眾號文章cram輸出及使用

picard原裝軟件使用cram運行時報錯信息纳本。

Exception in thread "main" java.lang.IllegalStateException: A valid CRAM reference was not supplied and one cannot be acquired via the property settings reference_fasta or use_cram_ref_download
    at htsjdk.samtools.cram.ref.ReferenceSource.getDefaultCRAMReferenceSource(ReferenceSource.java:105)
    at htsjdk.samtools.SamReaderFactory$SamReaderFactoryImpl.open(SamReaderFactory.java:406)
    at picard.sam.markduplicates.util.AbstractMarkDuplicatesCommandLineProgram.openInputs(AbstractMarkDuplicatesCommandLineProgram.java:220)
    at picard.sam.markduplicates.MarkDuplicates.buildSortedReadEndLists(MarkDuplicates.java:535)
    at picard.sam.markduplicates.MarkDuplicates.doWork(MarkDuplicates.java:264)
    at picard.cmdline.CommandLineProgram.instanceMain(CommandLineProgram.java:295)
    at picard.cmdline.PicardCommandLine.instanceMain(PicardCommandLine.java:103)
    at picard.cmdline.PicardCommandLine.main(PicardCommandLine.java:113)

不能給定基因組窍蓝,就意味著不能使用cram文件。而gatk4在整合了picard之后對其進行了優(yōu)化(猜測繁成,具體是不是整合前picrad進行了更新不清楚吓笙,有興趣的可以去測測看),現(xiàn)在是支持cram的輸入和去重的巾腕。

需要注意的是面睛,軟件運行結(jié)果是bam文件,而不是cram文件尊搬。

2. gatk4變異檢測模塊調(diào)整

使用gatk4進行變異檢測時叁鉴,主要包括以下5個模塊

Name Summary
CombineGVCFs Merges one or more HaplotypeCaller GVCF files into a single GVCF with appropriate annotations
GenomicsDBImport Import VCFs to GenomicsDB
GenotypeGVCFs Perform joint genotyping on one or more samples pre-called with HaplotypeCaller
HaplotypeCaller Call germline SNPs and indels via local re-assembly of haplotypes
Mutect2 Call somatic SNVs and indels via local assembly of haplotypes

一般的變異使用HaplotypeCaller進行檢測,輸出格式可以是vcf佛寿,也可以是gvcf

# GVCF輸出
gatk --java-options "-Xmx4g" HaplotypeCaller  \
   -R Homo_sapiens_assembly38.fasta \
   -I input.bam \
   -O output.g.vcf.gz \
   -ERC GVCF
# VCF輸出
gatk --java-options "-Xmx4g" HaplotypeCaller  \
   -R Homo_sapiens_assembly38.fasta \
   -I input.bam \
   -O output.vcf.gz \
   -bamout bamout.bam

vcf適合單樣本變異檢測幌墓,GVCF主要應(yīng)用在群call變異檢測上。對于gvcf文件的處理冀泻,可以使用GenotypeGVCFs模塊輸出變異位點的信息常侣。

gatk --java-options "-Xmx4g" GenotypeGVCFs \
   -R Homo_sapiens_assembly38.fasta \
   -V input.g.vcf.gz \
   -O output.vcf.gz

該方法在使用上有限制,只能輸入一個gvcf文件腔长,對于多個樣本群call的方式袭祟,需要使用另外兩個軟件對gvcf文件進行處理。

另外還有一點捞附,gatk4在命令上有很大的改進巾乳,棄用了直接使用java包的運行模式,命令行相對簡單鸟召。當(dāng)然胆绊,對于非常熟悉gatk3運行并且不喜歡gatk4的分析人員來說,也可以直接使用安裝包下面的jar包來運行程序欧募,使用方法與GATK3基本相同压状。

3. 群call策略

群call的最終目的是獲得所有樣本的分型結(jié)果,最終會使用GenotypeGVCFs模塊轉(zhuǎn)化為vcf,但是由于輸入文件個數(shù)的限制种冬,需要先使用GenomicsDBImport和GenotypeGVCFs2個模塊處理镣丑。

CombineGVCFs模塊是用來合并多個gvcf文件。

 gatk CombineGVCFs \
   -R reference.fasta \
   --variant sample1.g.vcf.gz \
   --variant sample2.g.vcf.gz \
   -O cohort.g.vcf.gz

另外一種可以合并gvcf方式是gatk4中新出現(xiàn)的娱两,GenomicsDBImport莺匠,該方法先對gvcf文件進行處理,輸出一個類似于數(shù)據(jù)庫的目錄十兢,后面可以直接使用該數(shù)據(jù)目錄作為輸入文件進行變異檢測趣竣。

gatk --java-options "-Xmx4g -Xms4g" GenomicsDBImport \
      -V data/gvcfs/mother.g.vcf.gz \
      -V data/gvcfs/father.g.vcf.gz \
      -V data/gvcfs/son.g.vcf.gz \
      --genomicsdb-workspace-path my_database \
      --tmp-dir=/path/to/large/tmp \
      -L 20

--genomicsdb-workspace-path參數(shù)指定數(shù)據(jù)庫的輸出路徑,該路徑在運行之前不能被創(chuàng)建旱物,否則會報錯遥缕。合并完成之后可以進行位點變異的檢測。

gatk GenotypeGVCFs \
    -R data/ref/ref.fasta \
    -V gendb://my_database \
    -G StandardAnnotation -newQual \
    -O test_output.vcf

群call最大的優(yōu)勢在于我們可以添加樣本后重新分析宵呛,獲取群體的變異位點单匣。如果使用GenomicsDBImport進行分析,若要添加新樣本的變異數(shù)據(jù)烤蜕,只要將新樣本的gvcf信息添加到已有的數(shù)據(jù)庫中即可封孙。

gatk GenomicsDBImport \
    -V data/gvcfs/mother.g.vcf \
    -V data/gvcfs/father.g.vcf \
    -V data/gvcfs/son.g.vcf \
    --genomicsdb-update-workspace-path existing_database

數(shù)據(jù)庫中含有的文件是二進制的文件,若想要多的數(shù)據(jù)庫中存在的染色體信息讽营,或者想要提取gvcf文件虎忌,可以使用如下命令

# 提取gvcf文件
gatk SelectVariants \
    -R data/ref/ref.fasta \
    -V gendb://my_database \
    -O combined.g.vcf
# 提取interval信息
gatk GenomicsDBImport \
    --genomicsdb-update-workspace-path existing_database
    --output-interval-list-to-file /path/to/output/file

總體來說,gatk4更新之后還是很好用的橱鹏,相比于gatk3膜蠢,只要選擇合適的分析流程和策略,時間上也會大幅縮短莉兰。不過相比于samtools這些軟件挑围,gatk分析時間還是最大的問題,不過如果考慮到群call和準(zhǔn)確度的優(yōu)勢糖荒,特別是大樣本量的差異分析杉辙,gatk的優(yōu)勢還是很明顯的。

4. 參考資料

[1] https://gatk.broadinstitute.org/hc/en-us/articles/360036712151-HaplotypeCaller
[2] https://gatk.broadinstitute.org/hc/en-us/articles/360042914991-GenotypeGVCFs
[3] https://gatk.broadinstitute.org/hc/en-us/articles/360036713211-CombineGVCFs
[4] https://gatk.broadinstitute.org/hc/en-us/articles/360036712071-GenomicsDBImport
[5] https://gatk.broadinstitute.org/hc/en-us/articles/360035891051-genomicsdb

#如有侵權(quán)捶朵,請告知刪除#
#如有錯誤蜘矢,歡迎指正#

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市综看,隨后出現(xiàn)的幾起案子品腹,更是在濱河造成了極大的恐慌,老刑警劉巖红碑,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舞吭,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機羡鸥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進店門蔑穴,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人兄春,你說我怎么就攤上這事澎剥。” “怎么了赶舆?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長祭饭。 經(jīng)常有香客問我芜茵,道長,這世上最難降的妖魔是什么倡蝙? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任九串,我火速辦了婚禮,結(jié)果婚禮上寺鸥,老公的妹妹穿的比我還像新娘猪钮。我一直安慰自己,他們只是感情好胆建,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布烤低。 她就那樣靜靜地躺著,像睡著了一般笆载。 火紅的嫁衣襯著肌膚如雪扑馁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天凉驻,我揣著相機與錄音腻要,去河邊找鬼。 笑死涝登,一個胖子當(dāng)著我的面吹牛雄家,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播胀滚,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蛛淋!你這毒婦竟也來了咙好?” 一聲冷哼從身側(cè)響起褐荷,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤勾效,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體层宫,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡杨伙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了萌腿。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片限匣。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖毁菱,靈堂內(nèi)的尸體忽然破棺而出米死,到底是詐尸還是另有隱情,我是刑警寧澤贮庞,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布峦筒,位于F島的核電站,受9級特大地震影響窗慎,放射性物質(zhì)發(fā)生泄漏物喷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一遮斥、第九天 我趴在偏房一處隱蔽的房頂上張望峦失。 院中可真熱鬧,春花似錦术吗、人聲如沸尉辑。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽材蹬。三九已至,卻和暖如春吝镣,著一層夾襖步出監(jiān)牢的瞬間堤器,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工末贾, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留闸溃,地道東北人。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓拱撵,卻偏偏與公主長得像辉川,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子拴测,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353