生信学习笔记:测序数据质控

2024-04-29 01:58

本文主要是介绍生信学习笔记:测序数据质控,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 测序数据质控
    • 1.原始数据统计
    • 2.质控数据统计

测序数据质控

Illumina 测序属于第二代测序技术,单次运行能产生数十亿级的reads,如此海量的数据无法逐个展示每条read的质量情况;运用统计学的方法,对所测序列进行统计和质控,可以从宏观上直观地反映出样本的文库构建质量和测序质量。

1.原始数据统计

1)原始数据获得

Illumina 平台通过将测序图像信号经CASAVA碱基识别(Base Calling)转换成文字信号,并将其以 fastq 格式储存起来作为原始数据。根据index序列区分各个样本的数据,以便进行后续分析。在fastq文件中每条序列由4行数据组成,其中第一行和第三行为读段识别码(第一行以“@”开头,第三行以“+”开头),第二行为碱基序列,而第四行是第二行序列的各碱基所对应的测序质量值。

如下所示:

在这里插入图片描述

2)原始数据质控

对每一个样本的原始测序数据进行测序相关质量评估,包括:① 碱基质量分布统计; ② 碱基错误率分布统计;③ A/T/G/C碱基含量分布统计。

使用软件:fastx_toolkit_0.0.14。

① 碱基质量分布统计

测序的错误率与碱基的质量有关,受测序仪本身、测序试剂、样品等多个因素共同影响。通过公式计算,可以得出一个综合的值,即质量值(Q),用来评估测序的质量。随着测序的进行,酶的活性及其它物质的灵敏度也会下降,因此到达一定测序长度后,Q值也会随之下降。

② 碱基错误率分布统计

测序错误率会随着测序序列(Sequenced Reads)长度的增加而升高,这是由测序过程中化学试剂的消耗导致的,为Illumina高通量测序平台的共有特征;另外,前6个碱基的位置也会发生较高的测序错误率,而这个长度也正好等于在RNA-seq建库过程中反转录所需要的随机引物的长度。这部分碱基的测序错误率较高可能是由于随机引物与RNA模版的不完全结合导致。

③ A/T/G/C碱基含量分布统计

碱基含量分布一般用于检测有无AT、GC分离现象。对于RNA-seq来说,鉴于序列打断的随机性和G/C、A/T含量分别相等的原则,理论上每个测序循环中的GC含量相等、AT含量相等(如果是链特异性建库,可能会出现AT分离和/或GC分离),且在整个测序过程基本稳定不变,呈水平线。但在现有的高通量测序技术中,反转录合成 cDNA 时所用的6bp的随机引物会引起前几个位置的核苷酸组成存在一定的偏好性,这种波动属于正常情况。

2.质控数据统计

由于原始测序数据中会包含测序接头序列、低质量读段、N(N表示不确定碱基信息)率较高序列及长度过短序列,这将严重影响后续分析的质量。所以,在分析之前会先对原始测序数据进行质控,从而得到高质量的质控数据(clean data)以保证后续分析结果的准确性。

使用软件: SeqPrep 和 Sickle

具体步骤及顺序如下:

  1. 去除reads中的接头序列,去除由于接头自连等原因导致没有插入片段的reads;

  2. 将序列末端(3’端)低质量(质量值小于20)的碱基修剪掉,如剩余序列中仍然有质量值小于10的碱基,则将整条序列剔除,否则保留;

  3. 去除含N(模块碱基)的reads;

  4. 舍弃去adapter及质量修剪后长度小于30bp的序列。

数据质控完成后,对质控后的数据再次进行统计以及质量评估,同样包括:

① 碱基质量分布统计;

② 碱基错误率分布统计;

③ A/T/G/C碱基含量分布统计。

接头序列为:

5’: AGATCGGAAGAGCACACGTC

3’: AGATCGGAAGAGCGTCGTGT

参考资料:
美吉生物云

这篇关于生信学习笔记:测序数据质控的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/944826

相关文章

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

Redis的数据过期策略和数据淘汰策略

《Redis的数据过期策略和数据淘汰策略》本文主要介绍了Redis的数据过期策略和数据淘汰策略,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录一、数据过期策略1、惰性删除2、定期删除二、数据淘汰策略1、数据淘汰策略概念2、8种数据淘汰策略

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

Python给Excel写入数据的四种方法小结

《Python给Excel写入数据的四种方法小结》本文主要介绍了Python给Excel写入数据的四种方法小结,包含openpyxl库、xlsxwriter库、pandas库和win32com库,具有... 目录1. 使用 openpyxl 库2. 使用 xlsxwriter 库3. 使用 pandas 库

SpringBoot定制JSON响应数据的实现

《SpringBoot定制JSON响应数据的实现》本文主要介绍了SpringBoot定制JSON响应数据的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们... 目录前言一、如何使用@jsonView这个注解?二、应用场景三、实战案例注解方式编程方式总结 前言

使用Python在Excel中创建和取消数据分组

《使用Python在Excel中创建和取消数据分组》Excel中的分组是一种通过添加层级结构将相邻行或列组织在一起的功能,当分组完成后,用户可以通过折叠或展开数据组来简化数据视图,这篇博客将介绍如何使... 目录引言使用工具python在Excel中创建行和列分组Python在Excel中创建嵌套分组Pyt

在Rust中要用Struct和Enum组织数据的原因解析

《在Rust中要用Struct和Enum组织数据的原因解析》在Rust中,Struct和Enum是组织数据的核心工具,Struct用于将相关字段封装为单一实体,便于管理和扩展,Enum用于明确定义所有... 目录为什么在Rust中要用Struct和Enum组织数据?一、使用struct组织数据:将相关字段绑

在Mysql环境下对数据进行增删改查的操作方法

《在Mysql环境下对数据进行增删改查的操作方法》本文介绍了在MySQL环境下对数据进行增删改查的基本操作,包括插入数据、修改数据、删除数据、数据查询(基本查询、连接查询、聚合函数查询、子查询)等,并... 目录一、插入数据:二、修改数据:三、删除数据:1、delete from 表名;2、truncate

Java实现Elasticsearch查询当前索引全部数据的完整代码

《Java实现Elasticsearch查询当前索引全部数据的完整代码》:本文主要介绍如何在Java中实现查询Elasticsearch索引中指定条件下的全部数据,通过设置滚动查询参数(scrol... 目录需求背景通常情况Java 实现查询 Elasticsearch 全部数据写在最后需求背景通常情况下

Java中注解与元数据示例详解

《Java中注解与元数据示例详解》Java注解和元数据是编程中重要的概念,用于描述程序元素的属性和用途,:本文主要介绍Java中注解与元数据的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参... 目录一、引言二、元数据的概念2.1 定义2.2 作用三、Java 注解的基础3.1 注解的定义3.2 内