高通量测序数据下机后得到了fastq的raw_data,通常测序公司在将数据返还给客户之前会做“clean”处理,即得到clean_data。然而,这些clean_data是否真的“clean”呢?
首先,我们应该做一下质控。如果质控不合格,就需要一些处理,比如去接头、去除量的reads。

(1)去除测序数据中的接头(用到的是fastx_toolkit里面的fastx_clipper工具):

Usage: fastx_clipper [-h] [-a ADAPTER] [-D] [-l N] [-n] [-d N] [-c] [-C] [-o] [-v] [-z] [-i INFILE] [-o OUTFILE]  #去掉接头序列

[-a ADAPTER] =接头序列(默认为CCTTAAGG)

[-l N]       = 忽略那些碱基数目少于N的reads,默认为5

[-d N]       = 保留接头序列后的N个碱基默认  -d 0

[-c]         = 放弃那些没有接头的序列.

[-C]         = 只保留没有接头的序列.

[-k]         = 报告只有接头的序列.

[-n]         = 保留有N多序列,默认不保留

[-v]         =详细-报告序列编号

[-z]         =压缩输出.

[-D]       = 输出调试结果.

[-M N]   =要求最小能匹配到接头的长度N,如果和接头匹配的长度小于N不修剪

[-i INFILE]  = 输入文件

[-o OUTFILE] = 输出文件

Example: fastx_clipper -a AGATCGGAAGAGCACACG -l 25 -d 0 -Q 33 -i SRR306394_1.fastq -o SRR306394_1_trimmed.fastq
(注:-l参数,即忽略那些碱基数目少于N的reads。默认的是5,而对于tophat来说,如果reads长度小于20,就会发出警告。因此,考虑到充分利用这些测序数据同时不损失比对的特异性,这里-l参数,取值为25。-Q参数,对于illumina测序来说,这个参数也是必须要加的,因为illumina测序在给单个碱基作质量打分的时候,加上了33,然后才转成的ASC II, 因此在这里需要加 -Q 33. 否则就会报这样的错误“fastx_clipper: Invalid quality score value (char '#' ord 35 quality value -29) on line 4.”)

(2)去除测序数据中的低质量reads(用到的是fastx_toolkit里面的fastq_quality_filter工具):
Usage:fastq_quality_filter [-h] [-v] [-q N] [-p N] [-z] [-i INFILE] [-o OUTFILE]过滤低质量序列

[-q N]       = 最小的需要留下的质量值

[-p N]       = 每个reads中最少有百分之多少的碱基需要有-q的质量值

[-z]         =压缩输出

[-v]       =详细-报告序列编号,如果使用了-o则报告会直接在STDOUT,如果没有则输入到STDERR

Example: fastq_quality_filter -q 20 -p 80 -Q 33 -i SRR306394_1.fastq -o SRR306394_1_filtered.fastq
(注:-q参数,即是指最小需要留下的质量值,这里需要保留Q20(99.99%)以上的,所以对应的是20。-p参数,即是指每个reads中最少有百分之多少的碱基需要有-q的质量值,这里我们要求的是一条reads中最少有80%以上的碱基质量值达到Q20我们才作保留,因此对应的是80. -Q参数,对于illumina测序来说,这个参数也是必须要加的,因为illumina测序在给单个碱基作质量打分的时候,加上了33,然后才转成的ASC II, 因此在这里需要加 -Q 33. 否则就会报这样的错误“fastx_clipper: Invalid quality score value (char '#' ord 35 quality value -29) on line 4.”)
(注:如果在做fastq_quality_filter之后,QC结果仍然可以看到reads的尾部有低质量的reads,此时可以将-p参数调大,比如调至90或者99)。

转载本文请联系原作者获取授权,同时请注明本文来自熊朝亮科学网博客。
链接地址:http://blog.sciencenet.cn/blog-1509670-914439.html

fastx_toolkit去除测序数据中的接头和低质量的reads的更多相关文章

  1. JSON—去除JSON数据中的所有HTML标…

    package com.linoer.utils; import java.util.ArrayList; import java.util.List; import java.util.regex. ...

  2. 去除测序reads中的接头:adaptor

    之前用c写过一个程序,查找reads中是否包含了adaptor,如果检测到的话就过滤掉含有adaptor的reads,这次在过滤完数据之后发现接头序列比较多,为了提升组装效果,又不能很大地影响数据量, ...

  3. Dynamics CRM EntityCollection 根据实体中的某个字段为依据去除重复数据

    CRM中通过QueryExpression查询出了一个EntityCollection集,但有时会存在重复数据,QueryExpression中有个属性distinct,只要设置为true就能过滤 ...

  4. Next generation sequencing (NGS)二代测序数据预处理与分析

    二代测序原理: 1.DNA待测文库构建. 超声波把DNA打断成小片段,一般200--500bp,两端加上不同的接头2.Flowcell.一个flowcell,8个channel,很多接头3.桥式PCR ...

  5. 测序数据质控-FastQC

    通常我们下机得到的数据是raw reads,但是公司通常会质控一份给我们,所以到很多人手上就是clean data了.我们再次使用fastqc来进行测序数据质量查看以及结果分析. fastqc的操作: ...

  6. 【转录组入门】3:了解fastq测序数据

    操作:需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量 作业:理解测序reads,GC含量,质量值,接头,index,fastqc ...

  7. 去除list集合中重复项的几种方法

    因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List<string> li1 = new List<string> { "8&quo ...

  8. Android 去除list集合中重复项的几种方法

    因为用到list,要去除重复数据,尝试了几种方法.记录于此... 测试数据: List<"}; List<string> li2 = new List<string& ...

  9. 去除List列表中反复值(稍作调整,也适合于List&lt;T&gt; 和 List&lt;?&gt;)

    方法一 循环元素删除 [c-sharp] view plaincopy public static void removeDuplicate(List list) { for ( int i = 0  ...

随机推荐

  1. Java 6.15习题

    1.定义一个ClassName接口,接口中只有一个抽象方法getClassName();设计一个类Company,该类实现接口ClassName中的方法getClassName(),功能是获取该类的类 ...

  2. SRS(simple-rtmp-server)

     1.Push h.264 to rtmp server from tcp.

  3. C# 实现 Snowflake算法 ID生成

    http://blog.csdn.net/w200221626/article/details/52064976 C# 实现 Snowflake算法 /// <summary> /// 动 ...

  4. Asp.NET的Trace追踪

    http://m.blog.csdn.net/article/details?id=7026402 当我们扑捉程序错误时,调试器是开发者们最得力的助手.然而,ASP.NET的跟踪,在调试时是一个很棒的 ...

  5. git高级命令

    git reflog 显示所有branch的commit,包括commit和reset,以及已删除的commit.而git log只显示当前branch的commit,不包括已删除的commit gi ...

  6. Orchard源码分析(7.1):Routing(路由)相关

    概述 关于ASP.NET MVC中路由有两个基本核心作用,一是通过Http请求中的Url参数等信息获取路由数据(RouteData),路由数据包含了area.controller.action的名称等 ...

  7. 关于http请求

    response的Head值:  200 : 请求已成功,请求所希望的响应头或数据体将随此响应返回  304 : Not Modified 客户端有缓冲的文档并发出了一个条件性的请求,原来缓冲的文档还 ...

  8. PHP访问MSSQL数据库(实例代码)

     本例子只作为简单的引导,实现一个简单的查询: <!DOCTYPE HTML> <html lang="en-US"> <head> <t ...

  9. spring 后置处理器BeanFactoryPostProcessor和BeanPostProcessor的用法和区别

    主要区别就是: BeanFactoryPostProcessor可以修改BEAN的配置信息而BeanPostProcessor不能,下面举个例子说明 BEAN类: package com.spring ...

  10. linux的bash 终端操作快捷键

    bash中的快捷键操作: 分为两大类, 一是移动, 另一个是删除 一. 移动 1. 按字符移动: ctrl+f, ctrl+b 3. 按行移动: ctrl+a, ctrl+e 二. 删除: 1. 按字 ...