java queue GATK_gatk4使用总结

java queue GATK_gatk4使用总结昨天看了 gatk 的官网 从 2018 年发布正式版的 4 0 0 开始 到现在已经更新到 4 1 8 在速度和准确度上都有了大幅的提升 gatk4 除了整合 picard 软件之外 在使用上与 gatk3 基本相同 只不过是在命令运行 功能划分及运行速度上进行了调整 gatk4 软件的安装及使用 网上有很多帖子 可以自行查阅 今天主要给大家介绍 gatk4 与 gatk3 明显不同的地方 这些使得 gatk4 的应用更加方便 1

昨天看了gatk的官网,从2018年发布正式版的4.0.0开始,到现在已经更新到4.1.8,在速度和准确度上都有了大幅的提升。gatk4除了整合picard软件之外,在使用上与gatk3基本相同,只不过是在命令运行、功能划分及运行速度上进行了调整。gatk4软件的安装及使用,网上有很多帖子,可以自行查阅。今天主要给大家介绍gatk4与gatk3明显不同的地方,这些使得gatk4的应用更加方便。

1. 输入文件的变化

变异数据是从比对结果中获得的,gatk之前就已经支持cram的输入,但是数据去重部分的picard软件并不支持,运行时会报错。至于cram文件,也是一种比对结果文件,只不过文件体积更小,即对于存储受限的分析人员里说是一个值得考虑的方向,具体的信息可查看公众号文章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之后对其进行了优化(猜测,具体是不是整合前picrad进行了更新不清楚,有兴趣的可以去测测看),现在是支持cram的输入和去重的。

需要注意的是,软件运行结果是bam文件,而不是cram文件。

2. gatk4变异检测模块调整

使用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主要应用在群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包的运行模式,命令行相对简单。当然,对于非常熟悉gatk3运行并且不喜欢gatk4的分析人员来说,也可以直接使用安装包下面的jar包来运行程序,使用方法与GATK3基本相同。

3. 群call策略

群call的最终目的是获得所有样本的分型结果,最终会使用GenotypeGVCFs模块转化为vcf,但是由于输入文件个数的限制,需要先使用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中新出现的,GenomicsDBImport,该方法先对gvcf文件进行处理,输出一个类似于数据库的目录,后面可以直接使用该数据目录作为输入文件进行变异检测。

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参数指定数据库的输出路径,该路径在运行之前不能被创建,否则会报错。合并完成之后可以进行位点变异的检测。

gatk GenotypeGVCFs \

-R data/ref/ref.fasta \

-V gendb://my_database \

-G StandardAnnotation -newQual \

-O test_output.vcf

群call最大的优势在于我们可以添加样本后重新分析,获取群体的变异位点。如果使用GenomicsDBImport进行分析,若要添加新样本的变异数据,只要将新样本的gvcf信息添加到已有的数据库中即可。

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

数据库中含有的文件是二进制的文件,若想要多的数据库中存在的染色体信息,或者想要提取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和准确度的优势,特别是大样本量的差异分析,gatk的优势还是很明显的。

4. 参考资料

#如有侵权,请告知删除#

#如有错误,欢迎指正#

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/221996.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 下午4:48
下一篇 2026年3月17日 下午4:48


相关推荐

  • 火眼金睛审核 一键轻松处理[通俗易懂]

    火眼金睛审核 一键轻松处理——学籍助手简介学籍助手是专为河北省义务教育学籍管理系统区县端开发的一款辅助工具(图)。该工具不影响原系统正常使用,只是扩充了一些实用功能,只是让学籍管理变得异常轻松简单(如您不是区县学籍管理员,请勿下载)。学籍助手具有严格的入库审核、强大的批量处理和轻松的数据对接功能,犹如为原学籍管理系统赋予一双慧眼、插上一对翅膀,从容处理繁杂的学籍变…

    2022年4月13日
    52
  • Linux安装Redis(图文解说详细版)「建议收藏」

    Linux安装Redis(图文解说详细版)「建议收藏」最近开个新坑,就是在linux环境中操作开发环境,带大家玩转Linux,会整理出一篇Linux的专栏,欢迎大家订阅!!富贵同学linux环境为CentOS7.8版本。这次说一下Redis的安装第一步,下载安装包https://redis.io/download第二步,上传安装包到/opt下(老规矩了,安装包在opt下)第三步,解压安装包tar-zxvfredis-6.2.6.tar.gz第四步,编译进入到reidis-6.2.6中输入make进行编译第五步,安装进入s

    2022年6月20日
    37
  • 搭建Hadoop开发环境(全过程)

    搭建Hadoop开发环境(全过程)Hadoop 环境搭建一 VMware 环境准备 1 安装 VMware 在官网下载安装包安装好 VMware 输入密钥激活软件 密钥可以在网上可以在网上搜索 新建虚拟机选择 Linux 操作系统和 centos7 版本给虚拟机命名配置虚拟机磁盘设置虚拟机最大磁盘大小 20GB 在自定义硬件中给虚拟机安装 centos 7 x86 64 minimal 1708 ios 映像文件查看虚拟机信息完成安装 开始安装 centos 配置虚拟机设置 root 密码创建用户完成安装输入刚刚设置的用户名密码就可以登录了

    2026年3月16日
    2
  • Midjourney手机版

    Midjourney手机版

    2026年3月15日
    1
  • 模仿学习对比强化学习「建议收藏」

    模仿学习对比强化学习「建议收藏」模仿学习介绍模仿学习是将专家经验作为样本进行强监督学习的一种方法。模仿学习对比强化学系模仿学习优点:1.简单、稳定的监督学习过程缺点:1.需要提供榜样行为数据2.需要处理多解型行为(例如绕过障碍物,可以从左边或者右边,但是专家数据不一定覆盖所有行为,可以用多元高斯分布去等方法去处理)3.不能超越人类水平强化学习优点:1.可以超越人类水平缺点:1.需要设置奖励函数2.必须解决策略探索性问题3.训练可能不收敛、不稳定结合模仿学习和强化学习:Pretrain&Finetune

    2026年1月21日
    4
  • jsplumb 绘制页面链接线

    jsplumb 绘制页面链接线最近公司打算实现通用的流程设计 对比之前公司有一套源码 发现它采用的是 FlowDesign 来实现的 但从晚上查找之后发现它实际上是采用了 jsplumb 来实现流程绘制的 这也不难理解 毕竟 jsplumb 是通用的程序 FlowDesign 只能算是 jsplumb 的具体使用 FlowDesign 的地址是 http flowdesign leipi org Jsplumb 官网 https

    2025年11月2日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号