谁能告诉我,这数据测毁了么?
作者往期投稿: 高通量数据下载还能这样操作?
本次目的与任务:了解fastq测序数据
需要用安装好的sratoolkit把sra文件转换为fastq格式的测序文件,并且用fastqc软件测试测序文件的质量。
作业:理解测序reads,GC含量,质量值,接头,index,fastqc的全部报告,搜索中文教程,并发在论坛上面。
SRA文件转换为fastq文件
用sratoolkit将NCBI上下载的sra文件转换成fastq文件,以便进行下一步的QC。该工具的安装与介绍在转录组入门1中已经有所介绍。这里我再回顾一下sratoolkit的使用:
阅读官方文档
https://trace.ncbi.nlm.nih.gov/Traces/sra/sra.cgi?view=toolkit_doc ,我们的目的是把测序sra文件转换为fastq文件,因此点击“fastq-dump”进一步阅读。
查看本地帮助
从进入的这个页面我们能大概了解到fastq-dump命令的基本用法。
然后我在本地的CentOS上又运行了帮助命令 来查看本地版的命令说明。
fastq-dump -h #显示帮助
显然,本地的帮助说明更详细一点。
先看用法:fastq-dump [各种参数] <输入文件的登录号或者路径>
其中,[各种参数]在帮助中有详细介绍,根据博主@徐洲更以及@沈梦圆的文章介绍,我们常用到的参数主要是以下两部分的:
关于输出:
-O 指定输出路径--gzip 指定输出格式为gzip压缩格式(fastqc软件可以直接识别gzip压缩的文件)--bzip2 指定输出格式为bzip2压缩格式**多个文件参数**--split-3 如果是双端测序数据,则输出两个文件,如果不是则只输出一个文件。
明白了fastq-dump的常用参数,我们就得到了转换sra文件的套路
fastq-dump --gzip --split-3 -O path -A accession
具体到我们下载的数据,可以直接用@徐州更博文中的命令进行转换
for i in `seq 56 62`do fastq-dump --gzip --split-3 -O ./fastq/ -A SRR35899${i}.sradone
以上命令在vim中编辑,保存为.sh文件后,通过bash运行,注意seq前的撇不是单引号。
查看转换结果
转换后生成一系列以.sra1.fastq.gz以及.sra2.fastq.gz结尾的压缩文件。
fastqc检测测序文件质量
多个文件批量进行QC
进入转换后fastq.gz文件所在的文件中,用以下命令生成批量运行的脚本
ls ./*fastq.gz | xargs -i echo fastqc -o ./fastqc_result --nogroup {} & > fastqc.sh
运行结果会生成一个名称为fastqc.sh的脚本,运行该脚本即可对当前文件夹下的fastq.gz文件进行QC。
bash fastqc.sh
查看QC结果
单独查看
关于单独的QC结果文件,大家可以看我以前的几个入门帖子了解基本知识。 https://zhuanlan.zhihu.com/p/24608131?group_id=871001548837228544
知乎上@孟浩巍也有写过QC结果的解读,推荐阅读: https://zhuanlan.zhihu.com/p/20731723
MultiQC汇总查看
MultiQC是一款批量查看QC结果的软件,大大节省了我们打开多个QC结果文件的时间,具体使用方式可以查看我的知乎专栏上的介绍: https://zhuanlan.zhihu.com/p/27646873
FastQC报告中哪些是值得关注的
FastQC报告的具体解读可以参考文末参考文献,其中值得重点关注的部分主要是:
- basic statistics
- per base sequence quality
- per base sequcence content
- adaptor content
- sequence duplication levels
主要的几个指标是GC含量,Q20和Q30的比例以及是否存在接头(adaptor)、index以及其他物种序列的污染等。
- 徐洲更的博文《转录组入门(3):了解fastq测序数据》(微信搜一搜中搜索徐洲更,或者生信媛)
- 沈梦圆的博文《PANDA姐的转录组入门(3): 了解fastq测序数据 》(微信公众号:沈梦圆)
- 孟浩巍知乎专栏文章《20160410测序分析-使用FastQC做质控》
- 用FastQC检查二代测序原始数据的质量( https://www.plob.org/article/5987.html )
编辑:思考问题的熊
- SparkSql 中外连接查询中的谓词下推规则
- Caliburn.Micro学习笔记(三)----事件聚合IEventAggregator和 Ihandle<T>
- Python进行数据可视化分析快速教程实例
- 一个抓取豆瓣图书的开源爬虫的详细步骤
- Java 8 Stream 教程 (三)
- silverlight ListBox 多列图片效果
- ZooKeeper构建分布式锁(选译)
- Caliburn.Micro学习笔记(二)----Actions
- 每天一个Linux命令:find
- textFile构建RDD的分区及compute计算策略
- 一个基于Flask和MongoDB的CMS内容管理系统
- c++多重继承小结
- 初识PB级数据分析利器Prestodb
- 使用python实现RESTful API服务器端的思路
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 聊聊dubbo-go的DubboInvoker
- 剑指Offer 面试题03. 数组中重复的数字
- SDAccel矩阵乘法优化(一)
- 花式玩 Spring Security ,这样的用户定义方式你可能没见过!
- 一文胜千言的DHCP的讲解以及DHCP服务器的配置
- 小知识 词云制作
- 解决 Error starting userland proxy: listen tcp 0.0.0.0:6379: bind: address already in use
- Qt官方示例-菜单栏
- 解决SpringBoot集成支付宝支付中文订单描述验签错误问题
- Linux挂载
- 一些字符处理函数
- SDAccel矩阵乘法优化(二)
- SDAccel矩阵乘法优化(三)
- matplotlib基础绘图命令之scatter
- SDAccel矩阵乘法优化(四)