NGS 测序深度和覆盖度—Depth、Coverage

article/2025/10/23 10:26:01

文章目录

    • 前言
    • 这是比较基本的两个概念:
    • 二者的关系:
    • 例子:
      • 使用**bamdst**计算覆盖度
        • 安装
      • 使用
        • 参考:

前言

温故而知新,刚入门的时候没有好好记笔记,现在补上😑
公众号:猪猪的乌托邦

这是比较基本的两个概念:

  • 覆盖度(Coverage):测序获得的序列占整个基因组的比例。即基因组上至少被检测到一次的区域,占整个基因组的比例。一般为「百分比」

  • 深度(Depth):一般用1× 、2×、3×……表示。测序的得到的总碱基数与待测基因组大小的比值,即基因组中每个碱基被测到的平均次数,简而言之,测序的数据量比上参考基因组或者转录组的值。

PS:这两个概念在很多文章中的表述都不一样,具体要根据描述,是哪种概念

如图所示,两个概念在两个“维度”,描述了测序的情况(横向:覆盖度Coverage;纵向:深度Depth)
图片来源:https://www.youtube.com/watch?v=3oNCSRyHWO8
二者一定程度上决定了特定碱基位置发现的变异是否具有某种水平的可信度,如果有较高的深度和覆盖度,每个碱基被较多的Reads覆盖,因此碱基也有着较高的可信度。

对二者的要求因事而异:

测序方法推荐深度
全基因组测序(WGS)人类全基因组测序为30×~50×(具体取决于应用和统计模型)
全外显子组测序100 ×
RNA测序检测罕见表达基因时,需要更高覆盖度和深度。
ChIP-Seq100 ×

更多NGS的Depth和Coverage建议参考:https://genohub.com/recommended-sequencing-coverage-by-application/

假设基因组大小为N,每次测序都可以在基因组的任意位置随即检测一个碱基,那么对于基因组上的一个固定位置的碱基,在一次测序中,该碱基被测到的概率是P(P=1/N),其他部分的概率为1-P,该碱基对于深度的分布,就是检测到n次的概率,服从泊松分布,由于概率极低,检测次数极大,该分布又接近于正态分布。

一般使用直方图呈现整个数据集测序情况。直方图通过显示不同深度下Mapped Reads所覆盖的参考碱基数量来表明整体覆盖度分布.

在这里插入图片描述

理想情况下,该图形状应类似泊松分布并且标准偏差较小,如左图所示。该分布有效的前提是:Reads随机分布于整个基因组,并且整个测序运行期间对Reads间真实重叠的检测能力不变。但出于各种原因,实际覆盖度直方图可能会很宽(即深度区间宽)或呈非泊松分布,如欠佳测序覆盖度直方图示例(右图)所示。

评估NGS测序的常用指标

  • 四分位数间距(IQR):IQR是直方图中75与25百分位数之间的Depth差。该值用于衡量统计学变异性,可反映数据集范围内的不均一程度。在上述直方图示例中,左侧的直方图中IQR更低,表明其测序深度均一性优于右侧直方图。
  • 平均Mapped Reads深度,是各参考碱基位置上Mapped reads深度的总和除以参考中已知碱基的数量得到的值。表示特定参考碱基位置上可能匹配的平均Reads数。
  • 原始Read深度,该值是仪器所产生的序列数据总量(比对前)除以参考基因组大小得到的值。虽然测序仪器供应商通常会在性能参数中给出原始read深度,但该深度并未考虑到比对过程的效率。如果比对过程中有大部分原始测序Read剔除,则比对后得到的Mapped Reads深度会远小于原始Read深度。

二者的关系:

在这里插入图片描述

例子:

测序公司使用Illumina PE150的测序平台,双端测序技术,生成150 bp的reads,单端Reads数目为3300000,测序的基因组大小为760 Mb,那么:(1G=1024Mb;1Mb=1024kb;1kb=1000bp)

  • D e p t h = 150 × 2 × 3300000 760 × 1024 × 1000 = 0.127 Depth = \frac{150 × 2 × 3300000}{760×1024×1000} = 0.127 Depth=760×1024×1000150×2×3300000=0.127

如果测1G的数据量,那么:

  • D e p t h = 1 × 1024 × 1024 × 1000 760 × 1024 × 1000 = 1.347 Depth = \frac{1×1024×1024×1000}{760×1024×1000} = 1.347 Depth=760×1024×10001×1024×1024×1000=1.347

使用bamdst计算覆盖度

安装

cd ~/tools && git clone https://github.com/shiquan/bamdst.git && cd bamdst
make
./bamdst -h

在这里插入图片描述

使用

#需要一个bed文件
cat test.bed 
# chr01  2983  10815
mkdir ~/t
./bamdst -p test.bed -o ~/t test.bam
#输出:
ls ~/t
#chromosomes.report  depth_distribution.plot  insertsize.plot  uncover.bed
#coverage.report     depth.tsv.gz             region.tsv.gz
cat ~/t/chromosomes.report
#Chromosome     DATA(%)   Avg depth      Median   Coverage%    Cov 4x %   Cov 10x %   Cov 30x %  Cov 100x %
#      chr01    100.00      4.23        3.0     95.77     44.34      6.83      0.00      0.00

参考:

  1. https://www.illumina.com/science/technology/next-generation-sequencing/plan-experiments/coverage.html
  2. https://www.youtube.com/watch?v=3oNCSRyHWO8
  3. https://genohub.com/recommended-sequencing-coverage-by-application/
  4. https://www.jieandze1314.com/post/cnposts/239/
  5. http://www.im.cas.cn/kytjpt/jsjl/201412/P020141208537486451133.pdf

http://chatgpt.dhexx.cn/article/pf4rg80Z.shtml

相关文章

idea插件Coverage(用例覆盖率)使用

idea插件Coverage(用例覆盖率)使用 选择测试用例中要执行的包、类或方法,右键选择Run …with Coverage。 执行结束后可在右侧查看覆盖率结果。可以点击导出按钮导出覆盖率报告。注意:若只执行了包中的某个类或方法,则…

浅谈coverage

背景描述: 公司需要对测试用例的对工程代码的覆盖率做统计,因此需要用到coverage,这里有个特殊的点,公司的工程运行时要在容器中进行的。 实际应用: 1. 首先,需要下载coverage: pip3 install…

Python代码覆盖率分析工具Coverage

目录 简介 安装 命令行中使用 调用API使用 简介 Coverage是一个Python代码覆盖率分析工具,它可以用于衡量Python测试代码的质量。通过给代码执行带来的覆盖率数据,Coverage可以帮助开发人员找出被回归测试代码中的漏洞,并且指明哪些代码…

coverage 测试代码覆盖率

测试覆盖率,简单的说,就是评价测试活动覆盖产品代码的指标。测试的目的,是确认产品代码按照预期一样工作,也可以看作是产品代码工作方式的说明文档。进一步考虑,测试覆盖率可以看作是产品代码质量的间接指标&#xff0…

GIS原理篇 Coverage

一、什么是 Coverage Coverage 是一种用于存储矢量数据的地理相关数据模型,它包含地理要素的空间(位置)数据和属性(描述性)数据。Coverage 使用一组要素类来表示地理要素。每个要素类存储一组点、线(弧&am…

Python:代码覆盖率工具coverage

简介:覆盖率测量通常用于衡量测试的有效性。它可以显示您的代码的哪些部分正在被测试执行,哪些不是。coverage是一个测量 Python 程序代码覆盖率的工具。它监视您的程序,注意代码的哪些部分已被执行,然后分析源代码以识别可能已执…

configure--prefix

本文主要说明--prefix参数的作用,其主要用在编译安装源代码应用中的./configure环节。 ./configure --help 查看详细的说明帮助 1、源码安装一般包括几个步骤:配置(configure),编译(make)&…

路由策略 匹配工具 IP-Prefix

⦁ p-prefix-name:指定地址前缀列表的名称。字符串形式,长度范围是1~169,不支持空格,区分大小写。 ⦁ index index-number:指定本匹配项在地址前缀列表中的序号。整数形式,取值范围是1&am…

CondaValueError: The target prefix is the base prefix. Aborting.

报错截图 错误原因 conda命令错误 正确做法 conda create -n py38 python3.8

zuul 里面的 prefix 和 strip-prefix 怎么使用

首先两个是配置路由前缀的, 下面是我网上找的一段话: prefix :前缀,当请求匹配前缀时会进行代理strip-prefix :代理前缀默认会从请求路径中移除,通过该设置关闭移除功能, 当 stripPrefixtrue …

Trie树(Prefix Tree)介绍

本文用尽量简洁的语言介绍一种树形数据结构 —— Trie树。 一、什么是Trie树 Trie树,又叫字典树、前缀树(Prefix Tree)、单词查找树 或 键树,是一种多叉树结构。如下图: 上图是一棵Trie树,表示了关键字集…

configure --prefix=/的作用和用法

非root用户安装python和gcc的时候,总是需要设定这个,只知道是个路径,具体是什么路径,代表什么不清楚。 不明白就百度: configure --prefix/是干啥用的?这个路径代表了什么? Configure是一个可…

前缀和(Prefix Sum)

前缀和指一个数组的某下标之前的所有数组元素的和(包含其自身)。前缀和分为一维前缀和,以及二维前缀和。前缀和是一种重要的预处理,能够降低算法的时间复杂度,可以在 O ( 1 ) O(1) O(1)的时间复杂度内求出区间和。 一…

CMAKE_INSTALL_PREFIX

一、定义 CMAKE_INSTALL_PREFIX为cmake的内置变量,用于指定cmake执行install命令时,安装的路径前缀。Linux下的默认路径是/usr/local ,Windows下默认路径是 C:/Program Files/${PROJECT_NAME} 二、用…

IP-Prefix List

地址前缀列表 一、IP-Prefix List二、语法及匹配规则1、语法2、匹配规则 三、配置案例1、拓扑2、分析ACL实现IP-Prefix List实现 四、IE考试题思考题 在进行配置案例前先了解一下基础知识 一、IP-Prefix List IP-Prefix List:能够同时匹配网络号和前缀长度 性能及可…

【脚本】更新依赖库pkgconfig文件中的prefix设置

在本地编译和安装了某个库后,如果其lib目录下存在pkgconfig子目录,则子目录下会存在若干.pc文件,文件中会有prefix的配置(该配置标识当前库的安装路径),当要把该库拷贝到其他机器上时,如果库的路…

Elasticsearch学习--查询(prefix、wildcard、regexp、fuzzy)

一、前缀搜索 prefix 不计算相关度评分性能较差前缀搜索匹配的是分词后的词项前缀搜索没有缓存前缀搜索尽可能把前缀长度设置的更长 GET product/_search {"query": {"fuzzy": {"name": {"value": "product1"}}} } index…

bgp 使用route-map设置Local perference(本地优先属性)配置与详解

实验目的: 1、掌握基于route-map的本地优先配置方法。 2、使用route-map配置可以定置基于目标网络的本地优先。 实验拓扑: 接口IP配置及bgp基础配置详见 CSDNhttps://mp.csdn.net/mp_blog/creation/editor?spm1001.2014.3001.5352 查看R3与R4的路由…

使用route-map 配置BGP本地优先级

一、实验目的: 1、掌握基于route-map的本地优先配置方法。 2、使用route-map配置可以定置基于目标网络的本地优先级。 二、拓扑图: 三、配置BGP基本的配置: 1、配置各路由器的IP地址和BGP协议。配置完之后,查看一下R3和R4的路由表…

Cisco route-map 源地址路由配置

拓朴图: 案例: 公司内部使用的是一条拨号光纤和一条固定专线光纤,默认是指向拨号光纤出口那个网关出去,现在2网段有两台服务器(WEB、Mail)映射到公网,让外部来访问。 办公区因工作需要&#xf…