当前位置: 首页 > news >正文

转录组上游分析流程(三)

环境部署——数据下载——查看数据(非质控)——数据质控——数据过滤(过滤低质量数据)

测序得到的原始序列含有接头序列和低质量序列,为了保证信息分析的准确性,需要对原始数据进行质量控制,得到高质量序列(Clean Reads),原始序列质量控制的建议标准为:

  1. 接头:去除含接头的reads;

  2. 序列质量:过滤去除低质量值数据,确保数据质量;

  3. N碱基比例:去除含有N(无法确定碱基信息)的比例大于5%的reads

数据过滤的两个工具:Trim_Galore 和 Fastp

数据过滤—Trim_Galore

Trim_Galore是一个用于处理高通量测序数据的开源工具。它的主要功能是进行 质量控制 和 接头(adapter)去除,以便得到高质量的下游数据分析结果。

单样本:
  1. --phred33: 指定 Phred 质量得分编码为 Phred+33。这是默认值,也是常用的 Illumina 测序质量得分编码。如果测序质量分数使用的是 Phred+64 编码,需要使用 --phred64。

  2. -q 20: 设置 最低质量阈值。这里的 20 表示修剪掉质量分数低于 20 的碱基。Phred score 为 20 意味着测序错误率小于 1%,即碱基识别的准确率为 99%。

  3. --length 36: 设置最低序列长度。修剪后,保留长度至少为 36 个碱基的序列,短于 36bp 的序列将被丢弃。

  4. --stringency 3:接头匹配的严格度。指定修剪时对于接头序列的严格度。这里的 3 表示在序列的 末端至少有 3 个碱基与接头完全匹配 才会被识别为接头。

  5. --fastqc:在修剪前和修剪后对 数据质量 进行 FastQC 分析。会生成一个详细的 HTML 报告,以供用户检查数据质量。

  6. --paired: 指定输入的数据是 双端测序数据。Trim Galore 会同步处理配对的两个 FASTQ 文件,以确保配对关系不会在修剪过程中丢失。

  7. --max_n 3: 如果序列中有超过 3 个 未确定的碱基 (N),则该序列会被丢弃。这是为了避免包含大量不确定碱基的序列影响下游分析。

  8. -o ./trim_galore/: 指定 输出目录,修剪后的文件和报告会保存在 ./trim_galore/ 目录中。

  9. ./rawdata/SRR23881762_1.fastq.gz 和 ./rawdata/SRR23881762_2.fastq.gz输入的双端测序数据文件。SRR23881762_1.fastq.gz 是 第一端序列,SRR23881762_2.fastq.gz 是 第二端序列。

trim_galore参数有很多具体可以--help查看或者点击参考资料中的链接学习。

trim_galore --phred33 -q 20 --length 36    \
--stringency 3 --fastqc --paired --max_n 3 \
-o ./trim_galore/                          \
./rawdata/SRR23881762_1.fastq        \
./rawdata/SRR23881762_2.fastq
# check一下
ls ./trim_galore

多样本:
  1. ls ./rawdata/*_1.fastq.gz; 使用 ls 列出 ./rawdata/ 目录下所有以 _1.fastq.gz 结尾的文件。这通常是双端测序数据的 第一端 FASTQ 文件。例如:./rawdata/SRR23881762_1.fastq.gz、./rawdata/SRR23881763_1.fastq.gz。

  2. | cut -d"/" -f3; 使用 cut 命令来按 "/" 分隔符拆分路径,提取第 3 个字段。假设 ls 输出为 ./rawdata/SRR23881762_1.fastq.gz,分隔后的部分是 SRR23881762_1.fastq.gz。-f3 表示提取分割后的第三部分,这里就是文件名。

  3. | cut -d "" -f1; 再次使用 cut,这次是按 "" 分隔符拆分文件名,提取第 1 个字段。对 SRR23881762_1.fastq.gz,分割结果为 SRR23881762。-f1 表示提取第一部分,这里就是样本 ID。

  4. 使用 > 将前面命令的输出重定向到 sample.ID 文件中。每个样本 ID 会以新行的形式写入该文件。

ls ./rawdata/*_1.fastq.gz | cut -d"/" -f3 | cut -d "_" -f1 > sample.ID
$ cat sample.ID
SRR23881762
SRR23881763
SRR23881764
写入脚本
cat sample.ID | while read id
dotrim_galore --phred33 -q 20 --length 36    \--stringency 3 --fastqc --paired --max_n 3 \-o ./trim_galore/                          \./rawdata/${id}_1.fastq.gz             \./rawdata/${id}_2.fastq.gz
done
把命令提交到后台
  1. nohup:使用 nohup 运行命令可以使命令在后台持续运行,即使你关闭终端会话,命令也不会被中断。通常用于需要长时间运行的任务。

  2. bash trim_galore.sh:bash 用来执行脚本,trim_galore.sh 是要运行的脚本文件。trim_galore.sh 可能包含多个 trim_galore 命令或其他批处理命令。

  3. 1>trim_galore.log:1> 是将标准输出(即程序正常运行的信息)重定向到 trim_galore.log 文件。trim_galore.log 文件将保存所有的标准输出内容。

  4. 2>&1:2> 是将标准错误(即程序运行时的错误信息)重定向。2>&1 表示将标准错误(文件描述符 2)重定向到与标准输出相同的位置(文件描述符 1)。因此,所有的错误信息也会被记录在 trim_galore.log 文件中。

  5. &:& 用于将整个命令放到后台执行。

nohup  bash  trim_galore.sh  1>trim_galore.log  2>&1  &
数据过滤—fastp
单样本:

fastp 是一个快速且功能强大的质量控制(QC)工具,用于处理 FASTQ 格式的测序数据。

  1. -i ./rawdata/SRR23881762_1.fastq:-i 指定第一个FASTQ 文件的输入路径。这里指定了 ./rawdata/SRR23881762_1.fastq 作为第一个输入文件。

  2. -I ./rawdata/SRR23881762_2.fastq:-I 指定第二个FASTQ 文件的输入路径。这里指定了 ./rawdata/SRR23881762_2.fastq 作为第二个输入文件。这表示使用了双端测序的配对数据。

  3. -o ./fastp/SRR23881762_1.fastp.fq:-o 指定第一个(左端)输出文件的路径,用于保存质量控制和修剪后的数据。输出文件名为 SRR23881762_1.fastp.fq,保存在 ./fastp/ 目录下。

  4. -O ./fastp/SRR23881762_2.fastp.fq:-O 指定第二个(右端)输出文件的路径,用于保存质量控制和修剪后的数据。输出文件名为 SRR23881762_2.fastp.fq,保存在 ./fastp/ 目录下。

  5. -h ./fastp/SRR23881762.html:-h 指定一个 HTML 报告的输出路径,用于质量控制的可视化结果。报告保存为 SRR23881762.html,位于 ./fastp/ 目录中。

  6. -j ./fastp/SRR23881762.json:-j 指定一个 JSON 报告的输出路径,用于保存质量控制的详细统计信息。报告保存为 SRR23881762.json,位于 ./fastp/ 目录中。

  7. -l 36:-l 设置输出序列的最短长度阈值。低于 36 个碱基长度的序列将被过滤掉。这里指定了最短长度为 36。

  8. -q 20:-q 设置质量阈值(Phred 质量值)。低于 20 的碱基将被修剪。这意味着质量低于 20 的碱基被认为是低质量,会被修剪或丢弃。

  9. --compression=2:--compression 设置输出文件的压缩级别。这里使用了 2,表示中等压缩。范围一般为 0(无压缩)到 9(最大压缩)。

fastp -i ./rawdata/SRR23881762_1.fastq \-I ./rawdata/SRR23881762_2.fastq \-o ./fastp/SRR23881762_1.fastp.fq    \-O ./fastp/SRR23881762_2.fastp.fq    \-h ./fastp/SRR23881762.html             \-j ./fastp/SRR23881762.json             \-l 36 -q 20 --compression=2 
# check一下
ls ./fastp

多样本:
cat sample.ID | while read id
do
fastp -i ./rawdata/${id}_1.fastq.gz \-I ./rawdata/${id}_2.fastq.gz \-o ./fastp/${id}_1.fastp.fq.gz    \-O ./fastp/${id}_2.fastp.fq.gz    \-h ./fastp/${id}.html             \-j ./fastp/${id}.json             \-l 36 -q 20 --compression=2
done
nohup  bash  fastp.sh  1>fastp.log  2>&1  &
参考资料:
  1. Trim_galore:https://github.com/FelixKrueger/TrimGalore/blob/master/Docs/Trim_Galore_User_Guide.md

  2. fastp:https://github.com/OpenGene/fastp

  3. 生信技能树:https://mp.weixin.qq.com/s/dxoorMYHU-tlxMcICnTQTg

  4. 生信菜鸟团:https://mp.weixin.qq.com/s/Z5YNRkJ6tlY_tAeuUfL8SA

致谢:感谢曾老师/新叶老师以及生信技能树团队全体成员。

:若对内容有疑惑或者有发现明确错误的朋友,请联系后台(欢迎交流)。更多内容可关注公众号:生信方舟

- END -

相关文章:

转录组上游分析流程(三)

环境部署——数据下载——查看数据(非质控)——数据质控——数据过滤(过滤低质量数据) 测序得到的原始序列含有接头序列和低质量序列,为了保证信息分析的准确性,需要对原始数据进行质量控制,得到高质量序列(Clean Reads),原始序列…...

excel判断某一列(A列)中的数据是否在另一列(B列)中

如B列如果有7个元素,在A列右边的空白列中,输入如下公式: COUNTIF($B$1:$B$7,A1), 其中,$B$1:$B$7代表A列中的所有数据即绝对范围,A1代表B列中的一个单元格....

[环境配置]macOS上怎么查看vscode的commit id

macOS的commit id和windows上有点不一样,windows可以在帮助-关于查看 macOS则需要再左边第一个查看...

.net framework 3.5sp1组件安装进度条不动启动错误怎么解决

安装.NET Framework 3.5 SP1通常需要管理员权限。这是因为安装过程可能需要修改系统文件和注册表项,这些操作通常需要管理员权限才能执行。在Windows系统上,安装.NET Framework 3.5 SP1通常通过控制面板中的“启用或关闭Windows功能”选项进行&#xff0…...

学习threejs,利用THREE.ExtrudeGeometry拉伸几何体实现svg的拉伸

👨‍⚕️ 主页: gis分享者 👨‍⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍⚕️ 收录于专栏:threejs gis工程师 文章目录 一、🍀前言1.1 ☘️THREE.ExtrudeGeometry拉伸…...

大模型之三十二-语音合成TTS(coqui) 之二 fine-tune

在 大模型之三十-语音合成TTS(coqui)[shichaog CSDN]中提到了xttsv2的fine-tune。 数据情况: 我是从bilibili up主小Lin说提取了一些视频,然后进行了重新的fine-tune。 训练结果 如下图所示,上面波形幅度较大的是xttsv2原始模型的结果&am…...

JVM的内存模型是什么,每个区域的作用是什么,以及面试题(含答案)

JVM(Java 虚拟机)内存模型定义了 Java 程序在运行时如何分配、管理和优化内存。JVM 内存模型主要分为几个关键区域,每个区域有特定的作用: JVM 内存模型 堆内存(Heap): 作用:用于存…...

《设计模式三》Java代理模式实现

Java代理模式实现 静态代理实现 // Subject.java // 主题接口,定义了请求方法 public interface Subject {void request(); }// RealSubject.java // 真实主题实现类,实现了Subject接口 public class RealSubject implements Subject {Overridepublic …...

vue3中计算属性的用法以及使用场景

在 Vue 3 中,计算属性(computed properties)是一种基于依赖项动态计算并缓存的响应式数据。它与 Vue 2 中的计算属性类似,但在组合式 API 中使用 computed 函数来定义。计算属性的核心优势在于能够自动缓存计算结果,仅…...

pytorh学习笔记——cifar10(六)MobileNet V1网络结构

基础知识储备: 一、深度可分离卷积(Depthwise Separable Convolution) MobileNet的核心是深度可分离卷积(Depthwise Separable Convolution),深度可分离卷积是卷积神经网络(CNN&#xf…...

报表系统-连接数据库操作

本专栏用于解析自己开源的项目代码,作为复盘和学习使用。欢迎大家一起交流 本样例说明源码开源在: ruoyi-reoprt gitee仓库 ruoyi-report github仓库 欢迎大家到到项目中多给点star支持,对项目有建议或者有想要了解的欢迎一起讨论 连接数据库…...

[计算机网络] 常见端口号

前言 ​ 常见的端口号是指互联网协议(如TCP/IP)中预留给特定服务使用的数字范围。它们主要用于标识网络应用程序和服务,并帮助数据包在网络中找到正确的接收方。 按协议类型划分 TCP协议端口: 21:FTP文件传输协议2…...

Linux系统块存储子系统分析记录

1 Linux存储栈 通过网址Linux Storage Stack Diagram - Thomas-Krenn-Wiki-en,可以获取多个linux内核版本下的存储栈概略图,下面是kernel-4.0的存储栈概略图: 2 存储接口、传输速度 和 协议 2.1 硬盘 《深入浅出SSD:固态存储核心…...

大数据——本地威胁检测的全球方法

大数据似乎是众多专业人士关注的话题,从在自然灾害发生时帮助挽救生命,到帮助营销团队设计更有针对性的策略以接触新客户。 对于安全工程师来说,大数据分析被证明是抵御不断演变的网络入侵的有效防御手段,这得益于基于大量不同网…...

使用postman接口测试

一 、postman断言 1、什么是断言 postman 断言借助JavaScript -js 语言编写代码,自动判断预期结果与实际结果是否一致。 断言代码写在 Tests 的标签中。(新版本在Scripts标签中) 2、断言工作原理 3、常用断言 断言响应状态码 // 断言响应状态码 是否为 200 pm.…...

Ubuntu24.04双系统安装(Linux/windows共存一文打通)

他向远方望去,无法看到高山背后的矮山,只能看到一座座更高的山峰。 目录 ​编辑 一.前言 二.虚拟机和双系统比较 三.Windows/Linux双系统安装 1.Rufus-制作U盘启动盘系统工具安装 2.Ubuntu24.04下载 3.Ubuntu-u盘启动盘制作 4.压缩磁盘留足安装空…...

C++ - deque

博客主页:【夜泉_ly】 本文专栏:【C】 欢迎点赞👍收藏⭐关注❤️ 文章目录 💡双端队列简介1. 基本特性2. 与其他容器的比较与 vector与 list 3. 中控数组的设计4. 优缺点优点缺点 5. 应用场景6. 结论 💡双端队列简…...

国产!瑞芯微米尔RK357核心板革新AIoT设备,8核6T高算力

随着科技的快速发展,AIoT智能终端对嵌入式模块的末端计算能力、数据处理能力等要求日益提高。近日,米尔电子发布了一款基于瑞芯微RK3576核心板和开发板。核心板提供4GB/8GB LPDDR4X、32GB/64GB eMMC等多个型号供选择。瑞芯微RK3576核心优势主要包括高性能…...

中国人寿财险青岛市分公司践行绿色金融,助力可持续发展

中国人寿财险青岛市分公司积极响应国家绿色发展战略,大力推进绿色金融实践。在保险产品创新方面,推出一系列绿色保险产品。如新能源汽车保险,为新能源汽车产业发展提供风险保障,促进交通领域的节能减排。环境污染责任保险则助力企…...

ajax 读取文件

DOMException: Failed to read the responseXML property from XMLHttpRequest: The value is only accessible if the objects responseType is or document (was blob). at XMLHttpRequest.r ( $.ajax({ url: 未来之窗_服务, method: GET, …...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

K8S认证|CKS题库+答案| 11. AppArmor

目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...

k8s从入门到放弃之Ingress七层负载

k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

AI Agent与Agentic AI:原理、应用、挑战与未来展望

文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

MMaDA: Multimodal Large Diffusion Language Models

CODE : https://github.com/Gen-Verse/MMaDA Abstract 我们介绍了一种新型的多模态扩散基础模型MMaDA,它被设计用于在文本推理、多模态理解和文本到图像生成等不同领域实现卓越的性能。该方法的特点是三个关键创新:(i) MMaDA采用统一的扩散架构&#xf…...

linux arm系统烧录

1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...

C# 求圆面积的程序(Program to find area of a circle)

给定半径r,求圆的面积。圆的面积应精确到小数点后5位。 例子: 输入:r 5 输出:78.53982 解释:由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982,因为我们只保留小数点后 5 位数字。 输…...

动态 Web 开发技术入门篇

一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...

AirSim/Cosys-AirSim 游戏开发(四)外部固定位置监控相机

这个博客介绍了如何通过 settings.json 文件添加一个无人机外的 固定位置监控相机,因为在使用过程中发现 Airsim 对外部监控相机的描述模糊,而 Cosys-Airsim 在官方文档中没有提供外部监控相机设置,最后在源码示例中找到了,所以感…...