美文网首页暑期培训生信分析流程
GATK Best Practices — step2 胚系突变

GATK Best Practices — step2 胚系突变

作者: 小灰灰不会飞那又怎样 | 来源:发表于2019-05-14 18:27 被阅读65次
    一、胚系突变 SNP/INDEL(Germline SNPs + Indels)的介绍

    胚系突变又叫生殖细胞突变,是来源于精子或卵子这些生殖细胞的突变,因此通常身上所有细胞都带有突变。胚系突变可以遗传,一般用于分析遗传病。当胚系突变发生在BRCA1,BRCA2等基因上的时候,就可能导致肿瘤的风险大大升高。这一步介绍的是GATK call 胚系突变的SNP和INDEL。

    单个基因组是孤立的,通常并不能得出什么变异是致病性变异。一般要求家系或者群体数据,可以发现稀有变异,de novo变异,以及种族背景信息。这一步测试用到的是N/T单个样品分别进行分析。

    GATK官网介绍:Germline short variant discovery (SNPs + Indels)

    官方提供了六个流程:
    Prod* germline short variant per-sample calling
    Prod* germline short variant joint genotyping
    $5 Genome Analysis Pipeline
    Generic germline short variant per-sample calling
    Generic germline short variant joint genotyping
    Intel germline short variant per-sample calling

    选取第四个流程(Generic germline short variant per-sample calling)进行学习
    git地址:https://github.com/gatk-workflows/gatk4-germline-snps-indels

    git clone https://github.com/gatk-workflows/gatk4-germline-snps-indels
    

    下载后如下:
    README.md
    LICENSE
    generic.google-papi.options.json
    haplotypecaller-gvcf-gatk4.wdl(下面用到的)
    haplotypecaller-gvcf-gatk4-nio.wdl
    haplotypecaller-gvcf-gatk4.hg38.wgs.inputs.json
    joint-discovery-gatk4-local.hg38.wgs.inputs.json
    joint-discovery-gatk4-fc.wdl
    joint-discovery-gatk4-local.wdl
    joint-discovery-gatk4.hg38.wgs.inputs.json
    joint-discovery-gatk4.wdl(下面用到的)

    二、WDL中各个task的介绍

    学习以上两个wdl,把这两个文件中的命令拆分出来。
    主要是看task中的command。里面共包含了16个task(haplotypecaller-gvcf-gatk4.wdl包含了3个task/joint-discovery-gatk4.wdl包含了13个task),一一来看一下功能及命令:

    haplotypecaller-gvcf-gatk4.wdl(3个):
    1. CramToBamTask

    这一步可以省略,输入的bam直接采用数据预处理后的bam即可。如果输入是CRAM格式,才需要用到这一步。

    2. HaplotypeCaller

    HaplotypeCaller官网介绍

    gatk --java-options "-Xmx6G -XX:GCTimeLimit=50 -XX:GCHeapFreeLimit=10" \
    HaplotypeCaller \
    -R ref_fasta \
    -I input_bam \
    -L bed \
    -O output_filename.vcf \
    -contamination 0  \
    --dbsnp dbsnp_138.hg19.vcf  (-ERC GVCF)
    

    --dbsnp 这个参数加上,结果中第三列ID会显示对应的RS号 GATK3如何选择选择known sites数据库。如果没有这个参数,第三列ID为.

    -ERC GVCF是输出GVCF格式,默认是输出VCF格式。GVCF格式对于群体call突变比较适用,这里只是一个样品,所以用不到-ERC GVCF这个参数。

    GVCF输出格式的一些介绍见官网:
    What is a GVCF and how is it different from a 'regular' VCF?
    HaplotypeCaller Reference Confidence Model (GVCF mode)

    3. MergeGVCFs

    功能:Merge GVCFs generated per-interval for the same sample

    joint-discovery-gatk4.wdl(13个):
    1. GetNumberOfSamples

    单个样品 用不到 忽略

    2. ImportGVCFs

    单个样品 用不到 忽略

    3. GenotypeGVCFs

    功能:合并每个样本的突变信息到单一vcf文件来方便进行下一步的过滤分析。
    参考:http://www.php-master.com/post/326294.html
    单个样品 用不到 忽略

    4. HardFilterAndMakeSitesOnlyVcf

    这一步包含了两步,其中一步是:

    gatk --java-options "-Xmx3g -Xms3g" VariantFiltration  \
    --filter-expression "ExcessHet >54.69" --filter-name ExcessHet  \
    -O samplename_N.HaplotypeCaller.Filter.vcf  \
    -V samplename_T.HaplotypeCaller.vcf
    

    这一步的作用是给VCF第七列FILTER增加PASS或者Filter,如果没有这一步,FILTER列会是.
    运行完这一步,不满足条件的记录也会出现在最终生成的vcf文件中, 只不过对应的Filter字段的信息不是PASS。

    --filter-expression是筛选条件 过滤掉ExcessHet > ${excess_het_threshold}的行。

    但是经过测试,发现用了这一步以后,结果反而不准确,所以忽略这一步。(IGV核对)
    参考:
    https://www.jianshu.com/p/6f3198b7a070
    https://www.plob.org/article/7023.html

    5. IndelsVariantRecalibrator

    建模,用于之后的VQSR

    6. SNPsVariantRecalibratorCreateModel

    建模,用于之后的VQSR

    7. SNPsVariantRecalibrator

    建模,用于之后的VQSR

    8. GatherTranches
    9. ApplyRecalibration

    功能:Train on high-confidence known sites to determine the probability that other sites are true or false

    样本数量较少的WES/非全基因组测序无法使用VQSR进行质控(https://blog.csdn.net/hanli1992/article/details/83652352),所以这一步在我的测试中省略。

    官网对于VQSR介绍:Variant Quality Score Recalibration (VQSR)

    10. GatherVcfs
    11. CollectVariantCallingMetrics
    12. GatherMetrics
    13. DynamicallyCombineIntervals
    三、执行命令

    这一步对于单样品来讲比较简单,只需要运行HaplotypeCaller一步,再用SelectVariants筛选出SNP和INDEL即可。

    实际运行命令(以normal为例):

    time gatk  \
    --java-options "-Xmx6G -XX:GCTimeLimit=50 -XX:GCHeapFreeLimit=10"  \
    HaplotypeCaller  \
    -R ref_hg19/ucsc.hg19.fasta -I samplename_N.recal.bam  \
    -L Covered.bed -O samplename_N.HaplotypeCaller.vcf  \
    -contamination 0 --dbsnp dbsnp_138.hg19.vcf
    time gatk SelectVariants -V samplename_N.HaplotypeCaller.vcf -O samplename_N.Snp.Filter.vcf -select-type SNP
    time gatk SelectVariants -V samplename_N.HaplotypeCaller.vcf -O samplename_N.Indel.Filter.vcf -select-type INDEL
    

    normal所用时间:
    13m0.890s
    1m8.137s
    1m8.058s

    得到:
    samplename_N.HaplotypeCaller.vcf
    samplename_N.HaplotypeCaller.vcf.idx
    samplename_N.Snp.Filter.vcf
    samplename_N.Snp.Filter.vcf.idx
    samplename_N.Indel.Filter.vcf
    samplename_N.Indel.Filter.vcf.idx

    对应的tumour所用时间:
    7m53.815s
    1m8.085s
    1m10.476s

    这一步的学习基本完成。
    下一个step是对体细胞突变 SNV/INDEL(Somatic SNVs + Indels)的学习

    相关文章

      网友评论

        本文标题:GATK Best Practices — step2 胚系突变

        本文链接:https://www.haomeiwen.com/subject/bpeeaqtx.html