Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >GATK最佳实践之数据预处理SnakeMake流程

GATK最佳实践之数据预处理SnakeMake流程

原创
作者头像
生信探索
发布于 2023-05-27 01:02:06
发布于 2023-05-27 01:02:06
4500
举报
文章被收录于专栏:生信探索生信探索

写的数据预处理snakemake流程其实包括在每个单独的分析中比如种系遗传变异和肿瘤变异流程中,这里单独拿出来做演示用,因为数据预处理是通用的,在call变异之前需要处理好数据。

数据预处理过程包括,从fastq文件去接头、比对到基因组、去除重复、碱基质量校正,最后得到处理好的BAM或CRAM文件。

fastq去接头

fastq产生的报告json可以用multiqc汇总成一份报告

代码语言:Python
AI代码解释
复制
if config["fastq"].get("pe"):
    rule fastp_pe:
        input:
            sample=get_fastq
        output:
            trimmed=[temp("results/trimmed/{s}{u}.1.fastq.gz"), temp("results/trimmed/{s}{u}.2.fastq.gz")],
            html=temp("report/{s}{u}.fastp.html"),
            json=temp("report/{s}{u}.fastp.json"),
        log:
            "logs/trim/{s}{u}.log"
        threads: 32
        wrapper:
            config["warpper_mirror"]+"bio/fastp"
else:
    rule fastp_se:
        input:
            sample=get_fastq
        output:
            trimmed=temp("results/trimmed/{s}{u}.fastq.gz"),
            html=temp("report/{s}{u}.fastp.html"),
            json=temp("report/{s}{u}.fastp.json"),
        log:
            "logs/trim/{s}{u}.log"
        threads: 32
        wrapper:
            config["warpper_mirror"]+"bio/fastp"

BWA-mem2 比对+去重+排序

mem2的速度更快,所以采用。

sambaster的去除重复速度比MarkDuplicat快,所以采用。

最后用picard按照coordinate对比对结果排序。

输出的格式是CRAM,不是BAM,因为CRAM压缩效率更高,所以采用。

代码语言:Python
AI代码解释
复制
rule bwa_mem2:
    input:
        reads=get_trimmed_fastq,
        reference=gatk_dict["ref"],
        idx=multiext(gatk_dict["ref"], ".0123", ".amb", ".bwt.2bit.64", ".ann",".pac"),
    output:
        temp("results/prepared/{s}{u}.aligned.cram") # Output can be .cram, .bam, or .sam
    log:
        "logs/prepare/bwa_mem2/{s}{u}.log"
    params:
        bwa="bwa-mem2", # Can be 'bwa-mem, bwa-mem2 or bwa-meme.
        extra=get_read_group,
        sort="picard",
        sort_order="coordinate",
        dedup=config['fastq'].get('duplicates',"remove"), # Can be 'mark' or 'remove'.
        dedup_extra=get_dedup_extra(),
        exceed_thread_limit=True,
        embed_ref=True,
    threads: 32
    wrapper:
        config["warpper_mirror"]+"bio/bwa-memx/mem"

碱基质量校正

GATK说碱基的质量分数对call变异很重要,所以需要校正。

BaseRecalibrator计算怎么校正,ApplyBQSR更具BaseRecalibrator结果去校正。

代码语言:Python
AI代码解释
复制
rule BaseRecalibrator:
    input:
        bam="results/prepared/{s}{u}.aligned.cram",
        ref=gatk_dict["ref"],
        dict=gatk_dict["dict"],
        known=gatk_dict["dbsnp"],  # optional known sites - single or a list
    output:
        recal_table=temp("results/prepared/{s}{u}.grp")
    log:
        "logs/prepare/BaseRecalibrator/{s}{u}.log"
    resources:
        mem_mb=1024
    params:
        # extra=get_intervals(),  # optional
    wrapper:
        config["warpper_mirror"]+"bio/gatk/baserecalibrator"

rule ApplyBQSR:
    input:
        bam="results/prepared/{s}{u}.aligned.cram",
        ref=gatk_dict["ref"],
        dict=gatk_dict["dict"],
        recal_table="results/prepared/{s}{u}.grp",
    output:
        bam="results/prepared/{s}{u}.cram"
    log:
        "logs/prepare/ApplyBQSR/{s}{u}.log"
    params:
        embed_ref=True  # embed the reference in cram output
    resources:
        mem_mb=2048
    wrapper:
        config["warpper_mirror"]+"bio/gatk/applybqsr"

索引

最后对CRAM构建所以,之后可能用得到。

代码语言:Python
AI代码解释
复制
rule samtools_index:
    input:
        "results/prepared/{s}{u}.cram"
    output:
        "results/prepared/{s}{u}.cram.crai"
    log:
        "logs/prepare/samtools_index/{s}{u}.log"
    threads: 32
    params:
        extra="-c"
    wrapper:
        config["warpper_mirror"]+"bio/samtools/index"

Reference

代码语言:Python
AI代码解释
复制
https://gatk.broadinstitute.org/hc/en-us/articles/360035535912-Data-pre-processing-for-variant-discovery

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
01.GATK肿瘤基因变异最佳实践SnakeMake流程:WorkFlow简介
GATK best practices workflow Pipeline summary
生信探索
2023/05/29
3490
01.GATK人种系变异最佳实践SnakeMake流程:WorkFlow简介
学习的第一个GATK找变异流程,人的种系变异的短序列变异,包括SNP和INDEL。写了一个SnakeMake分析流程,从fastq文件到最后的vep注释后的VCF文件,关于VCF的介绍可以参考上一篇推文基因序列变异信息VCF (Variant Call Format)
生信探索
2023/05/26
4840
使用snakemake编写生信分析流程
The Snakemake workflow management system is a tool to create reproducible and scalable data analyses. Workflows are described via a human readable, Python based language. They can be seamlessly scaled to server, cluster, grid and cloud environments, without the need to modify the workflow definition. Finally, Snakemake workflows can entail a description of required software, which will be automatically deployed to any execution environment.
生信探索
2023/05/23
8960
GATK4最佳实践-数据预处理篇
GATK4 官方针对不同的变异类型,给出了好几套用于参考的pipeline。所有的pipeline有一个共同点,就是数据预处理部分。数据预处理的目的,是将原始的fastq或者ubam 文件,经过一系列处理,得到用于变异识别的bam文件,具体的示意图如下:
生信修炼手册
2020/05/11
2K0
一步一步用Snakemake搭建gatk4生成正常样本的germline突变数据库的流程
这是使用gatk4生成正常样本的germline突变数据库的流程图,整个流程是用Snakemake写的,这个图片也是Snakemake生成的。然后就被jimmy大佬点名了,受宠若惊,所以就有了本文。我是2016年从转录组学习小分队开始正式接触生信技能树,并走上了生信工程师的道路,我被jimmy大佬无私奉献的精神所折服,借此机会表示对jimmy大佬和生信技能树由衷的感谢!如果你也想从转录组开启你的生物信息学学习之旅,不妨考虑一下生信技能树的爆款入门:生信爆款入门-全球听(买一得五)(第4期),你的生物信息学入门课!
生信技能树
2020/04/27
3.2K0
GATK变异检测
准备的已知变异集作为训练集,可以是 Hapmap、OMNI,1000G,dbsnp,瓶中基因组计划等这些国际性项目的数据,然后利用训练集对每一个位点进行过滤。利用 VariantRecalibrator工具进行机器学习,ApplyVQSR 工具进行处理。VQSR 过滤 SNP 和 InDel 分别进行,首先处理 SNP,得到结果后,再进行 InDel 处理。
生信喵实验柴
2023/09/04
5730
GATK变异检测
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/wesprojec
Y大宽
2019/06/13
6.7K0
开箱即用版本 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(2024-04-30更新)
测试数据来自2017年卫计委室间质评提供的bed文件(pipeline会自动下载)和测试数据,修改命名以匹配pipeline输入端,也可以替换为自己的数据文件,因为室间质评目前参考基因组还停留在hg19版本,所以本流程仍然使用hg19(GRCH37),如果要切换到hg38,可以将version_reference变量值设置为hg38,project_bed设置为Illumina_pt2_hg38.bed。pipeline会使用hg38(GRCH38)版本和对应的bed文件。
SliverWorkspace
2023/10/07
1.3K0
开箱即用版本 满分室间质评之GATK Somatic SNV+Indel+CNV+SV(2024-04-30更新)
workflow05-snakemake的进阶操作一
如bwa 等软件,我们可以分配多线程以提高任务的执行速度的。同样,我们可以把线程的信息配置在规则中:
北野茶缸子
2022/07/07
9900
GATK Germline_SNP_INDEL_2.0 分析遗传病(耳聋)
备注:docker运行的操作系统,推荐为Linux,windows,macOS系统改下docker可能部分功能(网络)不能正常运行
SliverWorkspace
2022/12/12
8260
GATK Germline_SNP_INDEL_2.0 分析遗传病(耳聋)
满分室间质评之GATK Somatic SNVs + Indels+CNV+SV
3. 本文用到的原始文件,用fastqc查看质量状态是clean data,Q值均高于30,这里就不需要去接头和QC了。
SliverWorkspace
2020/07/31
1.8K0
满分室间质评之GATK  Somatic SNVs + Indels+CNV+SV
GATK RNA-Seq Snps Indel 分析
这是GATK Best Practice系列学习文章中的一篇,本文尝试使用: Gatk RNA -Seq Germline spns-indels Pipeline 来分析鼻咽癌(NPT) 分析流程如
SliverWorkspace
2020/09/21
1.7K0
GATK RNA-Seq Snps Indel 分析
RNA-seq数据分析完全指北-10:gatk找突变
如果有读者仔细看过RNA-seq结题报告,就会发现在定量分析以外通常还会有SNP和INDEL分析。目前,对人类测序数据找突变最常用的软件是GATK,除了速度慢以外,没有其他明显缺点(可以通过部署Spark提高速度;当然,如果有钱,可以购买Sentieon,快了15-20倍)。
生信菜鸟团
2021/07/29
3.2K0
满分室间质评之GATK Somatic SNV+Indel+CNV+SV(下)性能优化
#此处是原先Manta分析SV的步骤一,生成runWorkflow.py,因为这一不步速度很快,所以串行执行 rm -f ${result}/${sn}/runWorkflow.py python ${tools.manta} \ --normalBam ${result}/${sn}NC_marked.bam \ --tumorBam ${result}/${sn}_marked.bam \ --referenceFasta ${refs.hum} \ --exome \ --callRegions /opt/ref/projects/Illumina_pt2.bed.zip \ --runDir ${result}/${sn} # 对bam文件碱基质量校正的第二步,Normal & Tumor并行处理 ${tools.gatk} ApplyBQSR \ --bqsr-recal-file ${result}/${sn}_recal.table \ -L ${refs.interval} \ -R ${refs.hum} \ -I ${result}/${sn}_marked.bam \ -O ${result}/${sn}_bqsr.bam & ​ ​ ${tools.gatk} ApplyBQSR \ --bqsr-recal-file ${result}/${sn}NC_recal.table \ -L ${refs.interval} \ -R ${refs.hum} \ -I ${result}/${sn}NC_marked.bam \ -O ${result}/${sn}NC_bqsr.bam & ​ #原先QC步骤,获取insert size,Normal & Tumor并行 ${tools.gatk} CollectInsertSizeMetrics \ -I ${result}/${sn}_marked.bam \ -O ${result}/${sn}_insertsize_metrics.txt \ -H ${result}/${sn}_insertsize_histogram.pdf & ​ ​ ${tools.gatk} CollectInsertSizeMetrics \ -I ${result}/${sn}NC_marked.bam \ -O ${result}/${sn}NC_insertsize_metrics.txt \ -H ${result}/${sn}NC_insertsize_histogram.pdf & ​ # 运行manta SV分析 python ${result}/${sn}/runWorkflow.py -m local -j ${envis.threads} & ​ # 运行cnvkit CNV分析 ${tools.cnvkit} batch \ ${result}/${sn}_marked.bam \ --normal ${result}/${sn}NC_marked.bam \ --method hybrid \ --targets ${refs.bed} \ --annotate /opt/ref/refFlat.txt \ --output-reference ${result}/${sn}_reference.cnn \ --output-dir ${result}/ \ --diagram \ -p 0 & ​ #samtools统计测序深度 ${tools.samtools} depth -b ${refs.bed} ${result}/${sn}_marked.bam > ${result}/${sn}_marked.depth & ${tools.samtools} depth -b ${refs.bed} ${result}/${sn}NC_marked.bam > ${result}/${sn}NC_marked.depth & #samtools统计比对信息 ${tools.samtools} flagstat --threads ${envis.threads} ${result}/${sn}_marked.bam > ${result}/$
SliverWorkspace
2020/08/04
2K0
RNA-seq 检测变异之 GATK 最佳实践流程
RNA-seq 序列比对 对 RNA-seq 产出的数据进行变异检测分析,与常规重测序的主要区别就在序列比对这一步,因为 RNA-seq 的数据是来自转录本的,比对到参考基因组需要跨越转录剪切位点,所以 RNA-seq 进行变异检测的重点就在于跨剪切位点的精确序列比对。 文献 systematic evaluation of spliced alignment programs for RNA-seq data 中对 RNA-seq 数据常用的 11 款比对软件进行了详细测试,包括 STAR 2-pass,
生信技能树
2018/03/08
3.1K0
RNA-seq 检测变异之 GATK 最佳实践流程
GATK流程_diskeeper怎么用
一、使用GATK前须知事项: (1)对GATK的测试主要使用的是人类全基因组和外显子组的测序数据,而且全部是基于illumina数据格式,目前还没有提供其他格式文件(如Ion Torrent)或者实验设计(RNA-Seq)的分析方法。 (2)GATK是一个应用于前沿科学研究的软件,不断在更新和修正,因此,在使用GATK进行变异检测时,最好是下载最新的版本,目前的版本是2.8.1(2014-02-25)。下载网站:http://www.broadinstitute.org/gatk/download。 (3)在GATK使用过程中(见下面图),有些步骤需要用到已知变异信息,对于这些已知变异,GATK只提供了人类的已知变异信息,可以在GATK的FTP站点下载(GATK resource bundle)。如果要研究的不是人类基因组,需要自行构建已知变异,GATK提供了详细的构建方法。
全栈程序员站长
2022/11/01
1.1K0
靶向分析流程(Pipeline)中的数据质控
从输出文件${sn}_fastp.json文件中获取过滤前后Q20,Q30比例,总的reads
SliverWorkspace
2022/08/28
7790
靶向分析流程(Pipeline)中的数据质控
使用Gatk Germline spns-indels Pipeline分析遗传病(耳聋)
这是GATK Best Practice系列学习文章中的一篇,本文尝试使用Gatk Germline spns-indels Pipeline来分析遗传病(耳聋) 数据 这次没有拿到遗传病的室间质评的
SliverWorkspace
2020/09/11
1.2K0
使用Gatk Germline spns-indels Pipeline分析遗传病(耳聋)
WES,WGS等DNA测序数据找变异流程服务
肿瘤或者家系的WES,WGS等DNA测序样品的fastq数据,需要比对到参考基因组并且找变异并且注释,我们仅仅是收取一个计算机资源的费用,800-8000元人民币(根据样品数量不同收费不一样)即可,并且提供全套代码。不管是公共数据集还是你自己的实验测序数据,一样的费用!我们会代替你跑如下所示的流程:
生信技能树
2021/10/21
2.5K0
WES,WGS等DNA测序数据找变异流程服务
流程管理工具snakemake学习笔记杂记
这里rule all的作用还是没有搞明白,看有的文档说是最终保留的文件 ,我这里rule all 只写了了最终的html和json,但是最终的结果里是有过滤后的fastq文件的
用户7010445
2022/05/23
9500
流程管理工具snakemake学习笔记杂记
推荐阅读
相关推荐
01.GATK肿瘤基因变异最佳实践SnakeMake流程:WorkFlow简介
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文