MultiQC对多个fastq文件进行数据质量评价

1.下载sra序列

SRA(Sequence ReadArchive)数据库是用于存储二代测序的原始数据,包括454,Illumina,SOLiD,IonTorrent,Helicos和CompleteGenomics。除了原始序列数据外,SRA现在也存在raw reads在参考基因的比对信息。
(1)进入在NCBI数据库里面的SRA数据库
我搜索的是基因组很小的肠脑炎微孢子虫(Microsporidia)



在Send to中点击Run Selector,然后点击Go。
会出现如下界面:




我随意找了两个比较小的测序数据文件:

SRR065292
SRR070508



首先需要在linux下载SRAtoolkit,然后才能下载SRA数据。
然后再执行命令将SRA数据下载下来:

prefetch SRR065292
prefetch SRR070508

但是会报错:



我查询了很久,都没有找到它的解决办法。
那么我尝试用另一种办法将这两个SRA数据下载下来。



进入NCBI网站,点击Send To,然后再点击File->Runinfo->Create File。然后会生成一个csv文件,我将它用excel打开并找到我需要的那两个数据。

我们在download_path中找到对应的下载路径,然后进行下载。
下载得到这样两个文件:

SRR065292.lite.1
SRR070508.lite.1

但是我不知道怎么用,而且还是需要用fastq-dump命令。
后来我想是否要下载最新版的SRA toolkit,原先的版本是sratoolkit.2.9.2-ubuntu64。
于是我下载了最新的SRA toolkit版本(sratoolkit.3.0.0-ubuntu64),下载的方法如下:
官网:https://github.com/ncbi/sra-tools/wiki/01.-Downloading-SRA-Toolkit

##wget的-P参数,设置下载文件保存的路径是~/Biosofts/(路径可以更换为自己要下载的路径)
1.wget -P ~/Biosofts/ https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/3.0.0/sratoolkit.3.0.0-ubuntu64.tar.gz
2.cd Biosofts/
3.tar zvxf sratoolkit.3.0.0-ubuntu64.tar.gz
4.cd ~/Biosofts/sratoolkit.3.0.0-ubuntu64##注意:这里不进入bin目录下
5../bin/vdb-config --interactive
6../bin/fastq-dump##检验是否安装成功
7.vi .bashrc
8.export PATH=~/Biosofts/sratoolkit.3.0.0-ubuntu64/bin:$PATH##末端添加
9.source ~/.bashrc
10.fastq-dump或prefetch -h##检验是否安装成功

第四条命令如果进入bin目录下会报错:


因为可能是版本不同,命令也发生了变化。
参考:sratoolkit-安装过程中的问题 - zypiner - 博客园 (cnblogs.com)
(2)下载sra序列
现在终于我可以下载啦!

2.解压SRA文件为fastq格式
fastq-dump --gzip --split-files SRR065292
fastq-dump --gzip --split-files SRR070508


由前面查询得到的Run可知,这两个run都有三条reads。
这里我采用的是单独解压,数据文件多可以采用批量解压。

3.用fastqc进行数据质量评价
fastqc SRR065292_1.fastq.gz
fastqc SRR065292_2.fastq.gz
fastqc SRR065292_3.fastq.gz
fastqc SRR070508_1.fastq.gz
fastqc SRR070508_2.fastq.gz
fastqc SRR070508_3.fastq.gz

结果如下:


4.使用multiqc整合
multiqc .

又出现了错误:



解决办法:

1.
pip install matplotlib==2.2.3 https://pypi.tuna.tsinghua.edu.cn/simple/ ##这里添加清华安装源防止出现ReadTimeoutError的报错。
##报错:ERROR: Cannot uninstall 'matplotlib'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.发现已存在版本matplotlib 1.1.1
cd ./anaconda3/envs/python27/lib/python2.7/site-packages
##删除所有的matplotlib文件或目录
rm matplotlib-1.1.1-py2.7.egg-info
rm -r matplotlib
pip install matplotlib==2.2.3 https://pypi.tuna.tsinghua.edu.cn/simple/
2.
pip install numpy==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/
##相同错误:ERROR: Cannot uninstall 'numpy'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.已存在版本numpy 1.7.1
cd ./anaconda3/envs/python27/lib/python2.7/site-packages
rm numpy-1.7.1-py2.7.egg-info
pip install numpy==1.15.0 -i https://pypi.tuna.tsinghua.edu.cn/simple/

参考:
1.python2安装matplotlib_qq_43151209的博客-CSDN博客_matplotlib python2
2.https://blog.csdn.net/mahoon411/article/details/112074810
3.https://blog.csdn.net/weixin_45468845/article/details/105494864
删除之前用multiqc .尝试的废用文件,图片所标注。


删除后再输入multiqc .就成功啦

生成了两个文件,1个multiqc_report.html网页报告和1个multiqc_data的文件夹,前者直接网页打开就可以查看,后者包含一些数据基本的统计信息和日志文档。
可以把multiqc_report.html 下载下来到本地,用windows的浏览器打开,也可以直接在图形界面打开查看。

5.结果分析

(1)General Statistics:所有样本数据基本情况统计


%Dups——重复reads的比例
%GC——GC含量占总碱基的比例,比例越小越好
Length——测序长度
M Seqs——总测序量(单位:millions)
(2)Sequence Quality Histograms:每个read各位置碱基的平均测序质量

横坐标——碱基的位置
纵坐标——质量分数
质量分数=-10log10p(p代表错误率),所以当质量分数为40的时候,p就是0.0001。此时说明测序质量非常好。
绿色区间——质量很好,
橙色区间——质量合理。
红色区间——质量不好。
此处可以看出我的2个样本在389个碱基后的测序质量平均线落在红色区间,测序质量不合格。
(3)PerSequence Quality Scores 具有平均质量分数的reads的数量

横坐标——平均序列质量分数
纵坐标——reads数
绿色区间——质量很好
橙色区间——质量合理
红色区间——质量不好
当峰值小于27时——warning
当峰值小于20时——fail
由此图中可以看出低质量reads占整体reads的比例(估算各颜色区域曲线下面积)
图中可以看出:6个样本的最高峰值都在绿色区域,低质量read数量占总体reads的比例比较小,所以这6个样本的该项检测质量是合格的。
(4)Per Base Sequence Content :每个read各位置碱基ATCG的比列

对所有reads的每一个位置,统计ATCG四种碱基的分布,
横坐标——碱基位置,纵坐标——样本。
%T——红色,%C——蓝色,%A——绿色,%G——紫色。
reads每个位置的颜色显示由4种颜色的比例混合而成,哪一个碱基的比例大,则趋近于这个碱基所代表的颜色。
正常情况下每个位置每种碱基出现的概率是相近的。即·ATCG四种碱基在每一个位置都应该是25%左右。
如果ATGC在任何位置的差值大于10%——warning
如果ATGC在任何位置的差值大于20%——fail
我只有SRR065292_3和SRR070508_3这两个有碱基分布,所以只有这两个样本进行了测序,但所有碱基位置都显示的fail,即所有位置ATCG分布都不均匀,可能是有过表达的序列的污染。
(5)Per Sequence GC Content :reads的平均GC含量

横坐标——GC含量百分比,纵坐标——数量。
正常的样本的GC含量曲线会趋近于正态分布曲线,曲线形状的偏差往往是由于文库的污染或是部分reads构成的子集有偏差(overrepresented reads)。形状接近正态但偏离理论分布的情况提示我们可能有系统偏差。
偏离理论分布的reads超过15%时——warning
偏离理论分布的reads超过30%时——fail
从图中可以看出绿色的那个样本检测是合格的,其余5个样本检测是不合格的。
(6)Per Base N Content :每条reads各位置N碱基含量比例

当测序仪器不能辨别某条reads的某个位置到底是什么碱基时,就会产生“N”,统计N的比率。正常情况下,N值非常小。
横坐标——read中的位置,纵坐标——N的数量比。
当任意位置的N的比例超过5%——warning
当任意位置的N的比例超过20%——fail
由图中看出,只显示了我成功测序的两个样本,N值都非常小,检测是合格的。
(7)Sequence Duplication Levels:每个序列的相对重复水平

横坐标:每个序列的相对重复水平,纵坐标:在文库中的比例。
当非unique的reads占总数的比例大于20%时——warning
当非unique的reads占总数的比例大于50%时——fail
测序深度越高,越容易产生一定程度的duplication,这是正常的现象,但如果duplication的程度很高,就提示我们可能有bias即偏差的存在。
由图可见,我只有两个样本合格,有2个样本序列重复水平很高,还有2个样本没有重复。
(8)Overrepresented sequences:文库中过表达序列的比例

横坐标:过表达序列的比例;纵坐标:样本
过表达序列的比例>0.1%:warning
过表达序列的比例>1%:fail
从图中可以看出我的两个样本3没有过表达,其余的四个样本都超过了1%,两个样本1过表达为100%。这4个样本早已判断肯定是有问题的。
一条序列的重复数,因为一个转录组中有非常多的转录本,一条序列再怎么多也不太会占整个转录组的一小部分(比如1%),如果出现这种情况,不是这种转录本巨量表达,就是样品被污染。这个模块列出来大于全部转录组1%的reads序列,但是因为用的是前100,000条reads,所以其实参考意义不大。
(9)Sequence Length Distribution:序列长度分布

横坐标:序列长度(bp),纵坐标:reads数量
在许多情况下,这将产生一个简单的图,只显示一个大小的峰值,但对于可变长度的FastQ文件,这将显示每个不同大小的序列片段的相对数量。
如果所有序列的长度不相同:warning
如果任何序列的长度为零:fail
对于某些测序平台,有不同的读取长度是完全正常的,所以这里的警告可以忽略。
由于每个序列只有样本3才是合格的,无法将其他两个样本进行比较,事实上,每条序列的所有测出来的样本应该线条趋势一样,峰值一样,这样测出来的序列精确度才最好。
(10)Adapter Content 接头含量

横坐标——碱基位置,纵坐标——占序列的百分比。
超过5%——warning,超过10%——fail。
我的样本中没有发现任何接头含量(污染)超过0.1%。
总的来说,我的两条序列的样本1和样本2都是有问题的,极不准确的。只有样本3是基本合格的,比较好的是两个样本3基本没有重复序列,但GC含量很不正常,很有可能样品存在被污染的情况。

总体参考:
1.https://www.jianshu.com/p/d5d5479c2d39
2.https://www.jianshu.com/p/85da4dcc6020

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容