数据的质量控制软件----fastQC

一、前言

FastQC的基本介绍:

FastQC是一款基于Java的软件,它可以快速地对测序数据进行质量评估,其官网为:Babraham Bioinformatics - FastQC A Quality Control tool for High Throughput Sequence Data

  • 高通量测序数据的高级质控工具
  • 输入FastQ,SAM,BAM文件,输出对测序数据评估的网页报告

二、安装

这里需要安装Conda (这是一款用于安装多数生物信息分析软件的管理软件,重要的是可以解决软件依赖问题)

conda install fastqc

三、使用fastqc

1.介绍fastqc

我们在服务器上用命令行来运行fastQC:

fastqc -t 12 -o out_path sample1_1.fq sample1_2.fq

运行结束后生成两个文件一个.html网页文件,一个是.zip压缩文件。

 常用参数:

-o 用来指定输出文件的所在目录,生成的报告的文件名是根据输入来定的,注意是不能自动新建目录的。输出的结果是.zip文件,默认不解压缩,命令里加上--extract则压缩。

-f       用来强制指定输入文件格式,默认自动检测。支持fastq、bam、sam极相应的gz压缩格式

-c      污染物选项,输入的是一个文件,格式是Name[Tab] Sequence,#开头的行是注释,里面是可能的污染序列,如果有这个选项,FastQC会在计算时候评估污染的情况,并在统计的时候进行分析。

-q      会进入沉默模式,指定这个选项的时候,程序不会实时报告运行的状况,即不出现下面的提示:

1.参数大小写敏感

2.参数两种形式

• 长参数

• 短参数

【更详细的使用说明书可以看官网哦】

Index of /projects/fastqc/Helpicon-default.png?t=N7T8http://www.bioinformatics.babraham.ac.uk/projects/fastqc/Help/

 2.运行数据质控fastqc

目标:使用fastqc对原始数据进行质量评估

```bash
# 激活conda环境
conda activate rna# 连接数据到自己的文件夹
cd $HOME/project/Human-16-Asthma-Trans/data/rawdata
ln -s /home/t_rna/data/airway/fastq_raw25000/*gz  ./# 使用FastQC软件对单个fastq文件进行,结果输出到qc/文件夹下
nohup fastqc -t 6 -o ./ SRR*.fastq.gz >qc.log &# 使用MultiQc整合FastQC结果
# 使用绝对路径运行
multiqc=/home/t_rna/miniconda3/envs/rna/bin/multiqc
fastqc=/home/t_rna/miniconda3/envs/rna/bin/fastqc
fq_dir=$HOME/project/Human-16-Asthma-Trans/data/rawdata
outdir=$HOME/project/Human-16-Asthma-Trans/data/rawdata# 使用绝对路径运行
$fastqc -t 6 -o $outdir ${fq_dir}/SRR*.fastq.gz >${fq_dir}/qc.log# 报告整合
$multiqc $outdir/*.zip -o $outdir/ >${fq_dir}/multiqc.log
```

【上面的代码可以具体看看,然后在服务器上运行一下】 

【我的文件比较大,大家在实战的时候也会是这样的,运行的时间可能会稍微长一点】 

【运行成功的结果是这样的↑】 

(多了两种文件,一种是.html,另一种是.zip文件)

【然后就可以在本地浏览器上打开啦】

四、数据质控-fastqc运行

脚本后台运行:nohup &

• nohup:no hang up(不挂起),退出终端不会影响程序的运行

• &:后台运行

【注意:./ 后面是有个空格哦】 

五、 fastQC报告解读

1.Basic Statistics基本统计

【我使用的是真实数据,所以文件比较大一点】

【%GC 是我们需要重点关注的一个指标,这个值表示的是全部序列中的GC含量,这个数值一般是物种特异的,比如人类基因组就是42%左右。】

Encoding指测序平台的版本和相应的编码版本号,可推测是Phred 33 或是Phred 64 质量分数的编码方式。

Total Sequences输入文本的reads的数量。

Sequence length 测序的长度

注意:↓

 2.Per base sequence quality每个碱基序列的质量

这幅图展示的是fq文件中每一个位置上的所有read的碱基质量值的一个箱式图。 比如,我的fq有96612385个read,第一个位置上的base(碱基)就有96612385个质量值,这个值画成第一个箱 子,依此往后推。

用箱式图的方式展示数据质量,图中X轴每1个位置,都是该位置的所有序列的测序质量的统计。纵轴是质量得分,Q =-10*log10(p),p为测错的概率。所以一条reads某位置出错概率0.01时,其quality就是20。横轴是测序序列的位置。一般要求此图中,所有位置的10%分位数大于20,也就是常说的Q20过滤。

上面的须须和下面的须须分别表示10%和90%

盒子的界限为上分位数和下分位数

图中红线表示中值

图中蓝色的细线是各个位置的平均值的连线

  • 根据quality给出质量结果:正常区间(28 - 40),警告区间(20-28),错误区间(0-20)。
  • 比如,当read的某一位置的p=0.01,quality=20,那么它就处于错误区间。

所以上面的这个测序结果质量不好。如果任何碱基质量低于10,或者是任何中位数低于25报警,如果任何碱基质量低于5,或者是任何中位数低于20报错。

2.1为什么随着测序读长变长,碱基质量值下降?

随着测序读长变长,碱基质量值下降的原因主要有两个方面:

  1. 测序错误累积:在测序过程中,每个碱基都需要被准确地识别和记录。然而,随着读长的增加,测序错误的累积也会增加。这是因为在较长的读长中,测序机器可能会出现更多的错误,例如碱基识别错误、插入或删除错误等。这些错误会导致碱基质量值下降。

  2. 碱基信号衰减:在测序过程中,测序仪器会通过检测碱基发出的荧光信号来确定碱基的序列。然而,随着读长的增加,碱基发出的信号会逐渐衰减。这是因为荧光信号在传输过程中会受到衰减和干扰,导致信号强度减弱。因此,较长的读长会导致碱基信号变弱,进而影响到碱基质量值的准确性。

 3.Per tile sequence quality每个reads序列的质量

 这一模块是检查在测序平台上,reads中每一个碱基位置在不同的测序小孔之间的偏离度,偏离度越高,碱基质量越差。纵轴表示测序小孔,蓝色表示低于平均偏离度,越红则说明偏离平均质量方差越多,也就是说质量越差,本图中都是蓝色表明质量很好。如果出现质量问题可能是短暂的,如有气泡产生,也可能是长期的,如在某一小孔中存在杂质。偏离度小于平均值2以上报警,偏离度小于平均值5以上不合格。

 【Bad quality↑】

4.Per sequence quality scores每个序列的质量分数

这是为了检测一部分质量特别差的reads,如果有则会在图上出现多个峰,如在测序仪边缘的reads。纵轴是reads数目,横轴是质量分数,代表不同Phred值对应了多少的reads。

本图中,测序结果主要集中在高分中,证明测序质量良好。当峰值小于27(错误率0.2%)时警报,当峰值小于20(错误率1%)时不合格。

【我的这个样本测序质量不是很好,因为它的峰值小于27,所以它会出现警报】

5.Per base sequence content

统计reads每个位置ATCG四种碱基的分布:
横轴为碱基位置,纵轴为百分比。

因为随机的文库中,正常情况下所有位置出现某种碱基的概率是相近的,因此好的测序结果中四条线应该平行且接近

当部分位置碱基的比例出现bias时,即四条线在某些位置纷乱交织,往往提示我们有overrepresented sequence的污染。

当所有位置的碱基比例一致的表现出bias时,即四条线平行但分开,往往代表文库有bias (建库过程或本身特点),或者是测序中的系统误差。

当任一位置的A/T比例与G/C比例相差超过10%,报"WARN";
当任一位置的A/T比例与G/C比例相差超过20%,报"FAIL"。

6.Per sequence GC content每个序列GC含量

 每个碱基位置上:ATGC含量的分布图

横轴:各碱基位置;

纵轴:碱基百分比

统计reads的平均GC含量分布
红线是实际情况,蓝线是理论分布(正态分布,均值不一定在50%,而是由平均GC含量推断的)。 曲线形状的偏差往往是由于文库的污染或是部分reads构成的子集有偏差(overrepresented reads)。形状接近正态但偏离理论分布的情况提示我们可能有系统偏差。

偏离理论分布的reads超过15%时,报"WARN";偏离理论分布的reads超过30%时,报"FAIL"。

7.Per base N content每基N含量

统计reads每个位置N的比率
reads某个位置无法确定是何种碱基时,使用N代替;
正常情况下,N的比例是很小的,所以图上常常看到一条直线,但放大Y轴之后会发现还是有N的存在,这不算问题。当Y轴在0%-100%的范围内也能看到“鼓包”时,说明测序系统出了问题。
当任意位置的N的比例超过5%,报"WARN";
当任意位置的N的比例超过20%,报"FAIL"。

8.Sequence Length Distribution序列长度分布

reads长度分布
为了防止建库或者测序时有一些不规则长度的序列也被进行测序而进行的一个对长度的统计,当所有序列的长度不一样,fastqc就会警告。
当reads长度不一致时报"WARN";
当有长度为0的read时报“FAIL”。

【比如此图中,150bp是主要的,但是还是有少量的149和151bp的长度】

每次测序仪测出来的长度在理论上应该是完全相等的。

当测序的长度不同时,如果很严重,则表明测序仪在此次测序不成功

9.Sequence Duplication Levels序列重复级别

统计reads重复水平
测序本身就会产生重复reads,测序深度越高,reads重复数越大;如果重复出现峰值,就提示可能b存在偏差(如建库过程中的PCR duplication)。
横坐标是重复的次数,纵坐标是duplicated reads占unique reads种数百分比。

fastqc抽取reads文件前200,000条reads统计其重复情况。重复数目大于等于10的reads被合并统计,这也是为什么我们看到上图的最右侧略有上扬。大于75bp的reads只取50bp进行比较。由于reads越长错误率越高,所以其重复程度仍有可能被低估。
当非unique的reads占总数的比例大于20%时,报"WARN";
当非unique的reads占总数的比例大于50%时,报"FAIL“。

10.Overrepresented sequences代表性过高的序列

过度重复出现的序列的统计信息(此次没有)

11.Adapter Content

Adapter序列在reads中出现概率 

接头含量:接头序列统计,>5%时是Warning,>10%时是Failure。

表示序列中两端adapter的情况 软件内置了四种常用的测序接头序列, fastqc 有一个参 数-a可以自定义接头序列

12.质量好的样本vs质量不好的样本

作为初学者,也许你并不知道好的样本fastqc报告结果是怎样的,所以官网提供了对比例子。

Babraham Bioinformatics - FastQC A Quality Control tool for High Throughput Sequence Dataicon-default.png?t=N7T8http://www.bioinformatics.babraham.ac.uk/projects/fastqc/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/826444.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7. DAX 时间函数-- DATE 日期--TOTALMTD、TOTALQTD、TOTALYTD

函数名目的语法返回值TOTALMTD计算当前上下文中该月份至今的表达式的值 。TOTALMTD ( <表达式>, <日期列>, [<筛选器>] )标量 表示表达式的标量值&#xff0c;在“日期”中给定日期&#xff0c;计算当前月份至今的日期 。TOTALQTD计算当前上下文中该季度至今…

Github 2024-04-20 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量非开发语言项目2Python项目2Swift项目2HTML项目1CSS项目1Go项目1C项目1C++项目1Rust项目1编程面试大学:成为软件工程师的全面学习计划 创建周期…

【最新可用】Claude国内镜像,可上传图片,可用Claude3全系模型,包括Pro版本的Opus),亲测比GPT好用

Claude对话、上传图片的超详细教程来啦&#xff01; 近期&#xff0c;Claude 3 Opus的发布引发了网络上的广泛关注与热议&#xff0c;有观点认为其性能已经凌驾于GPT-4之上。虽然网络上已经出现了大量基于这两款先进AI技术的实际应用案例&#xff0c;但仍有许多人对在国内如何…

Java最新图形化界面开发技术——JavaFx教程(含UI控件用法介绍、属性绑定、事件监听、FXML)

文章目录 一、JavaFx介绍1、JavaFx简介2、可用性3、主要特征4、UI控件 二、JavaFx概述1、JavaFx结构图2、JavaFx组件&#xff08;1&#xff09;舞台&#xff08;2&#xff09;场景① 场景图② 节点 &#xff08;3&#xff09;控件&#xff08;4&#xff09;布局&#xff08;5&a…

Unity射击游戏开发教程:(2)实例化和销毁游戏对象

现在我们有了“飞船”,我们可以在屏幕上移动它,现在我们需要发射一些激光!与宇宙飞船一样,我们将让事情变得简单并使用 Unity 自己的基本形状。舱体的效果很好,所以我们来创建一个。 我们保存了有关位置、旋转和缩放的信息。我们想要缩小这个对象,假设每个轴上缩小到 0.2…

【声呐仿真】学习记录1-配置dave、uuv_simulator

【声呐仿真】学习记录1-配置dave、uuv_simulator 1.介绍2.配置3.一些场景 1.介绍 家|DAVE项目 — Home | Project DAVE 2.配置 参考官方教程安装|DAVE项目 — Installation | Project DAVE mkdir -p ~/uuv_ws/src cd ~/uuv_ws/src git clone https://github.com/Field-Robot…

二维图像的双线性插值

1. 原理 见下图,假设原图为单通道的灰度图,想求图像中某点Q(x,y)的灰度值。 2. 代码实现 #include <iostream> #include <stdio.h> #include <stdint.h> #include <string> #include<opencv2/opencv.hpp> #include<opencv2/core.hpp>…

踏上R语言之旅:解锁数据世界的神秘密码(二)

R语言学习 文章目录 R语言学习1.数据的R语言表示2.多元数据的R语言调用3.多元数据的简单R语言分析 总结 1.数据的R语言表示 数据框&#xff08;data frame) R语言中用函数data.frame()生成数据框&#xff0c;其句法是&#xff1a; data.frame(data1,data2,…)&#xff0c;例如…

OpenHarmony网络协议通信—kcp

kcp 是一种 ARQ 协议,可解决在网络拥堵情况下 tcp 协议的网络速度慢的问题 下载安装 直接在 OpenHarmony-SIG 仓中搜索 kcp 并下载。 使用说明 准备一套完整的 OpenHarmony 3.1 Beta 代码 库代码存放路径&#xff1a;./third_party/kcp 修改添加依赖的编译脚本 在/develo…

Bridge 2024(Br2024):革新文件管理,提升创意思维的卓越工具

Bridge 2024&#xff08;Br2024&#xff09;是一款专为Mac和Windows用户设计的数字媒体管理软件&#xff0c;以其出色的文件管理和项目管理功能&#xff0c;成为创意专业人士不可或缺的工作伙伴。这款软件不仅继承了Adobe Bridge一贯的直观界面和强大功能&#xff0c;更在多个方…

基于 LLM 大模型 Agent 的实践总结和困境分享

节前&#xff0c;我们组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学&#xff0c;针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 基于大模…

树莓派+Openwrt连接校园网,打破校园网设备限制

前言 因为本校学生校园网只允许最多三个设备登录&#xff0c;对于同时拥有多个联网设备的我十分不友好&#xff0c;而且大多单片机如esp32的wifi模块是只允许一般的WPA/WPA2认证的&#xff0c;是不支持校园网的portal认证。所以我决定搞一个路由器。 然后我上网买了一个TP-Li…

【ThinkPHP框架教程·Part-01】ThinkPHP6.x框架安装教程

文章目录 一、框架介绍1、框架简介和版本选择2、主要新特性 二、安装步骤1、下载并运行Composer-Setup.exe2、安装TP前切换镜像3、安装稳定版4、测试运行 一、框架介绍 1、框架简介和版本选择 Thinkphp是一种基于php的开源web应用程序开发框架ThinkPHP框架&#xff0c;是免费开…

基于注解配置bean

文章目录 1.基本使用1.基本介绍2.快速入门1.引入jar包2.MyComponent.java3.UserAction.java3.UserDao.java4.UserService.java5.beans05.xml6.断点查看bean对象是否创建7.测试 3.注意事项和细节 2.自己实现spring注解1.需求分析2.思路分析图3.编写自定义注解ComponentScan4.编写…

Mybaties入门

文章目录 介绍持久层框架Jdbc缺点Mybaties简化整体框架ORM方式 Mybaties快速入门(Mapper代理)核心配置文件映射文件配置编写会话工具类 介绍 Mybaties是一款优秀的持久层框架&#xff0c;用于简化JDBC开发 持久层 负责将数据保存到数据库的那一层代码JavaEE三层架构&#x…

【双曲几何】圆盘上的三角形概念

目录 一、说明二、对偶三角形概念2.1 反演关系2.2 对偶关系2.3 找出三角形的对偶三角形 三、正交三角形概念3.1 通过对偶三角形&#xff0c;找到垂心3.2 正交三角形的概念3.3 中心射影点的概念 四、后记 一、说明 本文对双曲空间的三角形进行分析&#xff0c;本篇首先给出&am…

漆包线行业你了解多少?专业漆包线行业MES生产管理系统

今天就说说漆包线行业&#xff0c;漆包线是工业电机&#xff08;包括电动机和发电机&#xff09;、变压器、电工仪表、电力及电子元器件、电动工具、家用电器、汽车电器等用来绕制电磁线圈的主要材料。 漆包线上游是铜杆行业&#xff0c;下游是各种消费终端&#xff0c;主要是电…

代码优化实践之税率计算问题

开篇 今天的问题来自于《编程珠玑》第三章【数据决定程序结构】&#xff0c;这里提出了几条代码优化相关的原则&#xff0c;受益不浅。下面是提到的几条原则&#xff1a; 使用数组重新编写重复代码。冗长的相似代码往往可以使用最简单的数据结构——数组来更好的表述&#xff1…

C++入门之类和对象(中)

C入门之类和对象(中) 文章目录 C入门之类和对象(中)1. 类的6个默认对象2. 构造函数2.1 概念2.2 特性2.3 补丁 3. 析构函数3.1 概念3.2 特性3.3 总结 4. 拷贝构造函数4.1 概念4.2 特性4.3 总结 1. 类的6个默认对象 如果一个类中什么都没有&#xff0c;那么这个类就是一个空类。…

什么是代理IP?如何正确使用代理IP?

代理IP&#xff08;Proxy IP&#xff09;是一种网络技术&#xff0c;它允许用户通过一个中介服务器&#xff08;即代理服务器&#xff09;来访问互联网。具体来说&#xff0c;代理IP隐藏了用户的真实IP地址&#xff0c;使用第三方的IP地址进行网络访问。当用户发起网络请求时&a…