6 GATK4完整流程

0定义变量

source activate wes
#GATK=~/biosoft/gatk/gatk-4.1.2.0/gatk
ref=/mnt/f/kelly/bioTree/server/wesproject/hg38/Homo_sapiens_assembly38.fasta
snp=/mnt/f/kelly/bioTree/server/wesproject/hg38/dbsnp_146.hg38.vcf.gz
indel=/mnt/f/kelly/bioTree/server/wesproject/hg38/Mills_and_1000G_gold_standard.indels.hg38.vcf.gz

1 标记PCR重复reads

sample=SRR7696207
echo $sample
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" MarkDuplicates -I $sample.bam -O ${sample}_marked.bam -M $sample.metrics 1>log.mark 2>&1

运行结束后的文件如下

├── [ 17K]  log.mark
├── [3.8G]  SRR7696207.bam
├── [5.0G]  SRR7696207_marked.bam
├── [3.3K]  SRR7696207.metrics

2 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

这样就得到marked_fixed.bam文件。
接着进行index

samtools index ${sample}_marked_fixed.bam

3 BaseRecalibrator 碱基矫正

gatk --java-options "-Xmx20G -Djava.io.tmpdir=./"  BaseRecalibrator     -R $ref      -I ${sample}_marked_fixed.bam      --known-sites $snp     --known-sites $indel     -O ${sample}_recal.table     1>${sample}_log.recal 2>&1
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./"   ApplyBQSR     -R $ref      -I ${sample}_marked_fixed.bam      -bqsr ${sample}_recal.table     -O ${sample}_bqsr.bam     1>${sample}_log.ApplyBQSR  2>&1

此时文件结构如下

├── [7.2M]  SRR7696207_bqsr.bai
├── [8.1G]  SRR7696207_bqsr.bam
├── [ 13K]  SRR7696207_log.ApplyBQSR
├── [  24]  SRR7696207_log.fix
├── [ 30K]  SRR7696207_log.HC
├── [ 39K]  SRR7696207_log.recal
├── [5.0G]  SRR7696207_marked.bam
├── [5.0G]  SRR7696207_marked_fixed.bam
├── [3.3M]  SRR7696207_marked_fixed.bam.bai
├── [3.3K]  SRR7696207.metrics
├── [246K]  SRR7696207_recal.table

这里同样包含了两个步骤:
第一步,BaseRecalibrator,这里计算出了所有需要进行重校正的read和特征值,然后把这些信息输出为一份校准表文件(sample_name.recal_data.table)
第二步,PrintReads,这一步利用第一步得到的校准表文件(sample_name.recal_data.table)重新调整原来BAM文件中的碱基质量值,并使用这个新的质量值重新输出一份新的BAM文件。
注意,因为BQSR实际上是为了(尽可能)校正测序过程中的系统性错误,因此,在执行的时候是按照不同的测序lane或者测序文库来进行的,这个时候@RG信息(BWA比对时所设置的)就显得很重要了,算法就是通过@RG中的ID来识别各个独立的测序过程,这也是我开始强调其重要性的原因。

第4节构建WGS主流程

4 HaplotypeCaller命令

gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" HaplotypeCaller      -R $ref       -I ${sample}_bqsr.bam       --dbsnp $snp       -O ${sample}_raw.vcf       1>${sample}_log.HC 2>&1
......
13:37:48.966 INFO  ProgressMeter - Starting traversal
13:37:48.966 INFO  ProgressMeter -        Current Locus  Elapsed Minutes     Regions Processed   Regions/Minute
13:37:58.966 INFO  ProgressMeter -         chr1:1221125              0.2                  5110          30660.0
13:38:09.200 INFO  ProgressMeter -         chr1:1705254              0.3                  7670          22743.9
13:38:19.204 INFO  ProgressMeter -         chr1:2899974              0.5                 13300          26390.6
13:38:29.224 INFO  ProgressMeter -         chr1:3950942              0.7                 18600          27721.2
13:38:39.236 INFO  ProgressMeter -         chr1:5289141              0.8                 25380          30292.4
13:38:49.236 INFO  ProgressMeter -         chr1:6707838              1.0                 32080          31936.3
13:38:59.241 INFO  ProgressMeter -         chr1:8292545              1.2                 39780          33963.7
13:39:09.243 INFO  ProgressMeter -         chr1:9939444              1.3                 47690          35644.1
13:39:19.261 INFO  ProgressMeter -        chr1:11517156              1.5                 55250          36713.0
13:39:29.284 INFO  ProgressMeter -        chr1:12845200              1.7                 61470          36765.1
13:39:39.418 INFO  ProgressMeter -        chr1:13371271              1.8                 63630          34565.2
13:39:49.440 INFO  ProgressMeter -        chr1:15196274              2.0                 72310          36013.0
13:39:59.443 INFO  ProgressMeter -        chr1:16167558              2.2                 77060          35436.1
......

这样就得到vcf文件

以上可以批量进行

#设置环境和变量
source activate wes
#如果把gatk加到了环境变量 就直接按下面走,否则
#gatk=~/biosoft/gatk/gatk-4.1.2.0/gatk
#下面gatk改为$gatk
#下面都设置为你自己的路径
ref=/mnt/f/kelly/bioTree/server/wesproject/hg38/Homo_sapiens_assembly38.fasta
snp=/mnt/f/kelly/bioTree/server/wesproject/hg38/dbsnp_146.hg38.vcf.gz
indel=/mnt/f/kelly/bioTree/server/wesproject/hg38/Mills_and_1000G_gold_standard.indels.hg38.vcf.gz  ```

for sample in {file1.sam,file2.sam,file3.sam...}
do
echo $sample
#mark dupulicates
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" MarkDuplicates -I $sample.bam -O ${sample}_marked.bam -M $sample.metrics 1>log.mark 2>&1
#fixmateinformation
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" FixMateInformation -I ${sample}_marked.bam -O ${sample}_marked_fixed.bam -SO coordinate 1>log.fix 2>&1
#index
samtools index ${sample}_marked_fixed.bam
#baserecalibrator
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./"  BaseRecalibrator     -R $ref      -I ${sample}_marked_fixed.bam      --known-sites $snp     --known-sites $indel     -O ${sample}_recal.table     1>${sample}_log.recal 2>&1 

gatk --java-options "-Xmx20G -Djava.io.tmpdir=./"   ApplyBQSR     -R $ref      -I ${sample}_marked_fixed.bam      -bqsr ${sample}_recal.table     -O ${sample}_bqsr.bam     1>${sample}_log.ApplyBQSR  2>&1 

## 使用GATK的HaplotypeCaller命令
gatk --java-options "-Xmx20G -Djava.io.tmpdir=./" HaplotypeCaller      -R $ref       -I ${sample}_bqsr.bam       --dbsnp $snp       -O ${sample}_raw.vcf       1>${sample}_log.HC 2>&1
done

可以把上面内容写入脚本,比如

cat gatk4.sh

然后运行就可以了

(0)

相关推荐

  • 天真的我准备把全部流程迁移到GATK4

    GATK4的gvcf流程 GATK4的CNV流程-hg38 你以为的可能不是你以为的 新鲜出炉的GATK4培训教材全套PPT,赶快下载学习吧 曾老湿最新私已:GATK4实战教程 本着尽量使用最新版软件 ...

  • 肿瘤全外显子测序数据分析流程大放送

    这个一个肿瘤外显子项目的文章发表并且公布的公共数据,我这里给出全套分析流程代码.只需要你肯实践,就可以运行成功. PS:有些后起之秀自己运营公众号或者博客喜欢批评我们这些老人,一味的堆砌代码不给解释, ...

  • 单细胞基因组拷贝数变异流程

    主要是上游流程,读文章拿到数据后走标准的比对流程,计算覆盖度测序深度,文章是(2020年4月份)第16周(总第112周 )- 单细胞基因组测序表明TNBC的CNV发展是爆发式的  http://www ...

  • 一步一步用Snakemake搭建gatk4生成正常样本的germline突变数据库的流程

    echo "START" 大家好,我是熊猫. 事情是这样的,前些天我在朋友圈发了一张图片: Snakemake展现gatk4生成正常样本的germline突变数据库流程图 这是使用 ...

  • GATK的FilterMutectCalls如何才能成功呢

    因为有粉丝求助,他学习前面我分享的GATK的Mutect2流程都快奔溃了,总是各种报错.为了证明我教程没有错,所以我赶紧检查了代码,自己走了一遍,重新写了教程,了:最新最全的mutect2教程,提到了 ...

  • CNS图表复现11—RNA-seq数据可不只是表达量矩阵结果

    前言 前面我们提到了:CNS图表复现10-表达矩阵是如何得到的,有粉丝提问,既然都开始走RNA-seq数据的上游分析了,到Linux服务器操作了,难道仅仅是为了拿到表达矩阵文件吗?RNA-seq数据分 ...

  • 明码标价之WES等DNA测序数据找变异

    最近有粉丝在我们<生信技能树>公众号后台付费求助,想重新分析一下某肿瘤队列文献的数据,需要下载几个T的fq数据走比对流程,然后找SNV和CNV等变异. 因为他的课题是保密的,我这里不方便提 ...

  • 使用MuSE软件找somatic mutation

    MuSE软件发表在2016年8月的Genome Biology  杂志,文章标题是:<MuSE: accounting for tumor heterogeneity using a sampl ...

  • 找寻gvcf失败的原因(java啊java,配置啊配置)

    最近走我整理和搭建好的:最新版针对RNA-seq数据的GATK找变异流程, 如果样本样品是正常运行,会输出: 920M Nov  9 02:07 SRR2016956_gatk.gvcf  12M N ...

  • 如何对多个转录组测序数据找变异呢

    以前生信技能树发过这个教程: RNA-seq 检测变异之 GATK 最佳实践流程 第一次对参考基因组建索引 然后进行第一次序列比对 之后根据第一次比对得到的所有剪切位点,重新对参考基因组建立索引 再进 ...

  • GATK4的gvcf流程

    走GVCF肯定是多个样本,比如我这里有50个病人的正常组织及肿瘤组织的WES测序数据. 得到了它们的bam文件,也是走的GATK流程,这里就不多说了.本教程首发于生信技能树VIP论坛:https:// ...

  • 使用GATK合并比较多个vcf文件

    这不是简单的坐标合并,多个样本的vcf文件里面都只会记录对应样本的变异位点信息,但是因为样本检测手段不一致,可能是WGS或者WES,或者不会测序,意味着基因组某些区域可能是根本就没有被测序到,也就无从 ...

  • 根据比对后的bam文件来计算外显子的RPKM

    bam2rpkm by bedtools 比对好的bam文件一般需要根据gtf文件来根据 genomic features 进行计数,但是htseq-counts或者featureCounts这样的软 ...

  • GATK4的mutect2流程

    往期GATK4教程目录: GATK4的gvcf流程 你以为的可能不是你以为的 新鲜出炉的GATK4培训教材全套PPT,赶快下载学习吧 曾老湿最新私已:GATK4实战教程 GATK4的CNV流程-hg3 ...