GATK的BaseRecalibration程序在无标准SNP数据库情况下,是否还能进行BaseRecalibration?

GATK(Genome Analysis Toolkit)是美国Broad Institute研发的一套检测SNP(SNP calling)的流程。测序后的碱基质量由于测序过程中的物理化学反应和测序仪的瑕疵会导致碱基质量偏离真实情况,为了矫正碱基质量,BaseRecalibrator程序被开发出来。在碱基质量矫正过程中,已知的标准SNP数据库是非常重要的输入文件,例如人类的dbSNP数据库。但如果研究的基因组是一个比较新的物种,没有标准的SNP数据库的话,对碱基指令进行校正是否还可行?答案是仍有必要,这时应该利用现有数据模拟出一个标准SNP数据库来。下面转发GATK网站上的相关描述(原网址:https://software.broadinstitute.org/gatk/documentation/article?id=44)。

I‘m working on a genome that doesn‘t really have a good SNP database yet. I‘m wondering if it still makes sense to run base quality score recalibration without known SNPs.

The base quality score recalibrator treats every reference mismatch as indicative of machine error. True polymorphisms are legitimate mismatches to the reference and shouldn‘t be counted against the quality of a base. We use a database of known polymorphisms to skip over most polymorphic sites. Unfortunately without this information the data becomes almost completely unusable since the quality of the bases will be inferred to be much much lower than it actually is as a result of the reference-mismatching SNP sites.

However, all is not lost if you are willing to experiment a bit. You can bootstrap a database of known SNPs. Here‘s how it works:

  • First do an initial round of SNP calling on your original, unrecalibrated data.
  • Then take the SNPs that you have the highest confidence in and use that set as the database of known SNPs by feeding it as a VCF file to the base quality score recalibrator.
  • Finally, do a real round of SNP calling with the recalibrated data. These steps could be repeated several times until convergence.

问题:我现在正在研究的基因组还没有一个好的SNP数据库,我想知道在没有已知的SNP的数据库的情况下还能否进行碱基质量矫正?

回答:碱基质量分数矫正器会将每个与参考基因组错配的碱基都视为机器错误。真的多态性位点是合法的错配,因此不应该被算作是碱基质量的错误导致的错配。我们用已知的多态性位点数据库来跳过大部分的多态性位点。不幸的是,如果没有这个信息,数据将会变得完全不可使用,因为碱基的质量分数会被推测为远低于它作为一个与参考基因组错配的SNP位点实际应有的质量分数。

然而,如果你愿意进行一个实验,碱基质量仍然能够被校正。你可以自己建立一个已知的SNP数据库。步骤如下:

1.首先对你原始的、没有进行校正的数据进行一遍SNP calling.

2. 然后选择那些你最有把握的SNP位点作为一个已知的SNP数据库,将其以VCF文件的形式传给碱基质量分数矫正器。

3.最后,进行一次使用校正数据的、真正的SNP calling。这些步骤可以重复几次直到结果收敛。

时间: 2024-08-06 01:58:55

GATK的BaseRecalibration程序在无标准SNP数据库情况下,是否还能进行BaseRecalibration?的相关文章

java web 程序---jsp连接mysql数据库的实例基础+表格显示

<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <body> <center>JSP连接mysql数据库</

Windows下Java程序实现对Mysql数据库的插入,删除,修改和查询

运行环境:Windows7,Eclipse,MySql,JDK1.7,mysql-connector-java-5.1.17-bin.jar 1 //import java.io.*; 2 import java.util.*; 3 import java.sql.*; 4 5 /** 6 * 7 * @date 2014-05-20 8 * @author asif 9 * @作用 java实现对mysql数据库的增减删查 10 * @bug 插入,删除,更新的时候异常停止 11 * 12 *

在 Android 应用程序中使用 SQLite 数据库以及怎么用

part one : android SQLite 简单介绍 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库.它支持 SQL 语言,而且仅仅利用非常少的内存就有非常好的性能.此外它还是开源的,不论什么人都能够使用它.很多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由下面几个组件组成:SQL 编译器.内核.后端以及附件.SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE).使调试.改动和扩展 SQLite 的内核变得更加方便. 图

通过assets像安卓程序目录中导入数据库文件出现错误的解决办法

错误提示如下,下面的错误信息 08-13 07:36:31.396: W/System.err(9814): java.io.IOException 08-13 07:36:31.416: W/System.err(9814):  at android.content.res.AssetManager.readAsset(Native Method) 08-13 07:36:31.416: W/System.err(9814):  at android.content.res.AssetMana

Java嵌入式数据库H2学习总结(二)——在Web应用程序中使用H2数据库

一.搭建测试环境和项目 1.1.搭建JavaWeb测试项目 创建一个[H2DBTest]JavaWeb项目,找到H2数据库的jar文件,如下图所示: H2数据库就一个jar文件,这个Jar文件里面包含了使用JDBC方式连接H2数据库时使用的驱动类,将"h2-1.4.183.jar"加入到[H2DBTest]项目中,如下图所示: 1.2.开启H2数据库 进入到h2\bin目录,如下图所示: 确保H2数据库使用的8082端口没有被其他应用程序占用,正常启动之后输入"http://

C#应用程序中读取Oracle数据库

前言 最近的任务就是开发了一个功能,要从供应商那边读取数据,然后拿过来,处理以后放到我们自己的数据库中.供应商那边是Oracle数据库,其实不管什么数据我想都差不多,于是我就开始了.由于在家里写的博客,那些截图都放在公司电脑了,希望能通过文字让大家明白,多有不周还请原谅. 过程 第一种方法:一开始我是用的.net里面自带的那个System.Data.OracleClient;引用.然后把Oracle客户端装了,结果不行.Oracle客户端装的是及时版本.执行后不断的报错,什么无法标示了,版本得多

Dapper.Contrib 开发.net core程序,兼容多种数据库

Dapper.Contrib 开发.net core程序,兼容多种数据库 https://www.cnblogs.com/wuhuacong/p/9952900.html 使用Dapper.Contrib 开发.net core程序,兼容多种数据库 关于Dapper的介绍,我想很多人都对它有一定的了解,这个类似一个轻型的ORM框架是目前应用非常火的一个东西,据说各方面的性能都不错,而且可以支持多种数据库,在开始介绍这个文章之前,我花了不少功夫来学习了Dapper 的相关使用.Dapper.Con

WPF应用程序防止关闭LiteDB数据库文件加载事件

在WPF应用程序的主窗口和它的Window.Loaded事件我得到一些数据从LiteDB数据库文件. var groupViewModel = new GroupsViewModel();ComboBoxGroupsName.ItemsSource = groupViewModel.GetGroups();的GetGroups方法是这样的: IEnumerable<GroupModel> groups;using (var db = new LiteDatabase(DbFilePath)){

小程序云开发向数据库中新增数据

小程序云开发向数据库中新增数据,基本操作在新建完一个云项目后都有了,右键上传部署login云函数后,就可以在模拟器中简单地操作数据库了 这是databaseGuide.js生成时就给出的代码,增删改查都需要先将相关部分的代码去掉注释. // pages/databaseGuide/databaseGuide.js const app = getApp() Page({ data: { step: 1, counterId: '', openid: '', count: null, queryRe