谁能告诉我,这数据测毁了么?
作者往期投稿: 高通量数据下载还能这样操作?
本次目的与任务:了解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 )
编辑:思考问题的熊
- 为虚拟机vCPU绑定物理CPU
- RSA简介(三)——寻找质数
- RSA简介(四)——求逆算法
- 平方根的C语言实现(三) ——最终程序实现
- ASP.NET Core应用的错误处理[3]:ExceptionHandlerMiddleware中间件如何呈现“定制化错误页面”
- 【视频】Es6新特性-Symbol
- shell编程/字库裁剪(3)——验证
- 特征选择(Feature Selection)引言
- shell编程/字库裁剪(2)——编程过程
- 使用mock来编译和管理RPM软件包
- C语言/原子/编译,你真的明白了吗?
- ASP.NET Core应用的错误处理[4]:StatusCodePagesMiddleware中间件如何针对响应码呈现错误页面
- 用sed实现wc -w的功能
- RPM软件包管理机制之旅
- 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 数组属性和方法
- Android 浮动编辑框的具体实现代码
- Android实现Path平滑的涂鸦效果实例
- Android CameraManager类详解
- Android开发实现自定义水平滚动的容器示例
- Android Studio开发之 JNI 篇的简单示例
- Android自定义View播放Gif动画的示例
- Android下拉框PopupWindow使用详解
- Android实现自动文本框提示功能
- Android开发实现拍照功能的方法实例解析
- Android开发实现模仿360二维码扫描功能实例详解
- Android中控制和禁止ScrollView自动滑动到底部的方法
- ImageView 实现Android colorPikcer 选择器的示例代码
- Android Notification.Builder通知案例分享
- SimpleCommand实现上传文件或视频功能(四)
- SimpleCommand框架ImageLoader API详解(三)