热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

fastq质量值_fastq格式文件处理大全(四)

计算机的角度来说,生物的序列属于一种字符串,也是一种文本,因此生物信息分析属于文本处理范畴。文本存储为固定格式文件,生物信息

计算机的角度来说,生物的序列属于一种字符串,也是一种文本,因此生物信息分析属于文本处理范畴。文本存储为固定格式文件,生物信息的工作就是各种文本文件之间格式的转换,例如通过序列拼接将fastq转换为fasta,通过短序列比对将fastq与fasta合并为bam,通过变异检测将bam中突变位点提取出来转换为vcf。因此,我们可以通过总结每一种生物数据文件格式的处理方法来学习生物信息,这样当拿到固定格式的文件之后,就知道该如何来处理了。

fastq格式文件处理大全(一)

fastq格式文件处理大全(二)

fastq格式文件处理大全(三)

去除接头adapter

接头adapter主要是指illumina测序时加入的P7接头与P5接头,理论上来说测序从测序引物开始,是测序不到接头的,但是由于部分打断片段果断或者由于adapter空载,会导致adpter自身连接,以上两种情况都会导致测序reads中包含adapter序列。adapter序列非基因组本身的序列,会干扰分析,因此需要去除掉。主要是illumina测序中包含adapter。去除adapter主要是采用两种方式,一种是直接给定adapter序列,与reads比对,比对上的就把整条reads去掉,另外一种是测序完成之后,给定一个adater list文件,其中包含了含有adapter序列的reads ID列表,给定一个阈值将这些reads去除掉。cutadapt可以根据给定的adapter序列进行过滤。

cutadapt -g AACMGGATTAGATACCCKG -a GGAAGGTGGGGATGACGT  -o output1.fastq -p output2.fastq SRR8651554_1.fastq.gz SRR8651554_2.fastq.gz

去除低质量

低质量主要是指去除测序质量错误率较高的位点,一般以Q20作为标准,如果一个碱基质量值低于Q20,则认为一个低质量,如果一条序列中低质量碱基达到一定比例,例如达到40%以上,则过滤掉此条序列。是过滤数据主要处理指标。seqtk工具seq功能通过-q,-n可以将低质量碱基进行标记,例如替换为小写字母或者其他字符,但是不进行过滤,有专门的数据过滤工具。

#将小于Q20的替换为小写字母
seqtk seq -q 20   SRR8651554_1.fastq.gz |less -S

去除N碱基

如果测序仪无法准确判断出测序碱基的类型,则选择输出N,N碱基无法进行各种分析,因此需要去除掉序列中包含过多N碱基的数据。去除N碱基并不是讲N碱基切除,而且去除包含N碱基过多的整条数据,例如N碱基含量达到10%以上,则过滤掉数据,有些程序按照连续N碱基比率进行过滤。

去除Duplication

duplication是指一对完全一样的测序数据,是由于打断不随机或者PCR过程中导致的,duplication会干扰序列拼接,还会影响变异检查,因此去要去除掉。但是RNAseq和宏基因组测序由于本身序列短,并且丰度不同,因此不能去除duplication。去除dupilication 数据可以只保留一对数据,去除多余一致的测序片段,但是在变异检测过程中采取的是在bam文件中对比对到同一位置的duplication片段进行标记的方法,称为Mark Duplication。因为比较reads是否为duplication比较消耗资源,而采用标记的方法更加快速。一般duplication与其他过滤条件一起过滤,或者采用比对之后标记的方式。fastx-toolkit工具中可以去除duplicantion,但只能处理单端,因此用处不大。

fastx_collapser -v -i BC54.trimmed.fa -o BC54.collapsed.fa

截取头尾

illumina测序一般头部有些波动,尾部质量较差,如果想取出尾部,或者截取部分区域,可以使用seqtk trim功能,例如去除头部15bp,尾部15bp,可以使用-b 15 -e15。b为begin的意思,e为end的意思。

seqtk trimfq -b 15 -e 15 -Q SRR8651554_1.fastq.gz | head

数据过滤

有很多软件可以一次性完成数据过滤工作,包括去除adapter,去除低质量,去除N碱基,去除duplication,截取reads,常用的包括fastp,trimmomatic,SOAPnuke等,不过这些软件都各有优缺点,SOAPnuke很好用,但是去除adapter需要提供一个adapter reads ID的列表,从网上下载的数据没有这个,fastp利用固定adapter序列,但是不能去除duplication,trimmomatic选项参数太长,而且也不是很好用。这里推荐使用fastp。

fastp -i SRR8651554_1.fastq.gz -I SRR8651554_2.fastq.gz -o clean.1.fq.gz -O clean.2.fq.gz -z 4 -q 20 -u 40 -n 10 -f 15 -t 15 -F 15 -T 15 -h fastp.html

---------- END ----------

ea2b44addb6aa8429864e9063f06d59e.png

(添加作者微信,请注明单位姓名)

您可能还会感兴趣的生物信息暑期班(北京站)开始报名
基因学苑文章列表(201906)
上传数据,直接分析,1T内存服务器来了手把手教你生信分析平台搭建专栏合集生物信息重要资源站点合集不会编程,如何进行批量操作一个人全基因组完整数据分析脚本一个细菌基因组完整分析脚本如何在Linux下优雅的装X


推荐阅读
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 在服务器虚拟化领域,用户面临多种选择,尤其是来自同一供应商的不同产品。正确评估这些选项对于项目的成功至关重要。本文将深入探讨VMware提供的两款主要虚拟化平台——免费的VMware Server和付费的ESX Server之间的区别,旨在为决策提供专业指导。 ... [详细]
  • JMeter使用指南与性能测试实践
    本文详细介绍了JMeter的功能特点及应用场景,包括其作为开源、免费且基于Java开发的压力测试工具的优势。文章还涵盖了JMeter的安装配置过程以及如何进行简单的性能测试,旨在帮助初学者快速掌握JMeter的使用。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • CMake跨平台开发实践
    本文介绍如何使用CMake支持不同平台的代码编译。通过一个简单的示例,我们将展示如何编写CMakeLists.txt以适应Linux和Windows平台,并实现跨平台的函数调用。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 深入解析Serverless架构模式
    本文将详细介绍Serverless架构模式的核心概念、工作原理及其优势。通过对比传统架构,探讨Serverless如何简化应用开发与运维流程,并介绍当前主流的Serverless平台。 ... [详细]
  • 本文探讨了在iOS平台上开发BLE(蓝牙低功耗)应用程序时遇到的挑战,特别是如何实现应用在后台模式下仍能持续扫描并连接蓝牙设备。文章提供了具体的配置方法和常见的问题解决方案。 ... [详细]
  • 下面根据配置文件,来说明一些底层与webservices的关系:回顾一下servlet的映射模式。我们知道,servlet是从javax.servlet.http.HttpServ ... [详细]
  • 无脚本 JSP 的 Web 页面设计
    探讨了Web页面设计人员是否需要掌握Java技能,以及他们如何快速学习表达式语言(EL)。虽然EL的应用前景尚不明朗,但本文将重点介绍如何通过JSP的include指令有效整合页面元素。 ... [详细]
  • 本文探讨了Java异常处理的本质,提出了设计模式以优化异常处理,并分析了在AOP模型中异常处理的应用。文章强调了正确使用Java异常对于提升代码质量和维护性的关键作用。 ... [详细]
  • 本文介绍了如何利用X_CORBA实现远程对象调用,并通过多个示例程序展示了其功能与应用,包括基础的Hello World示例、文件传输工具以及一个完整的聊天系统。 ... [详细]
author-avatar
欣荣_75229
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有