FastQC软件的介绍 编辑

质量控制的真正主力 FastQC 可能是高通量基因组学最常用的软件。 它是一个 Java 程序,应该作为命令行工具安装。

FastQC 的主页:<http://www.bioinformatics.babraham.ac.uk/projects/fastqc/>。此页面有 FastQC的下载地址和对软件的一些简单说明。

FastQC能在Java下以图形化界面运行;也能在命令行下运行,得到网页版的结果。 该软件能在Windows、Linux或Mac上运行。FastQC能很好检测NGS数据的好坏,但是不能进行reads的过滤和修剪。

FastQC的安装 编辑

Mac系统brew源安装 编辑

brew install fastqc

conda源安装 编辑

conda install -y fastqc

源码安装代码1 编辑

cd ~/src
curl -O http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
unzip fastqc_v0.11.5.zip

# Link the fastqc executable to the ~/bin folder that
# you have already added to the path.
ln -sf ~/src/FastQC/fastqc ~/bin/fastqc

# Due to what seems a packaging error
# the executable flag on the fastqc program is not set.
# We need to set it ourselves.
chmod +x ~/bin/fastqc

源码安装代码2 编辑

可以将FastQC软件安装到/opt/biosoft/目录下。

$ sudo mkdir -p /opt/biosoft
$ sudo chmod 1777 /opt/ /opt/biosoft/
## Download and install fastqc
cd ~/biosoft
mkdir fastqc &&  cd fastqc
wget http://www.bioinformatics.bbsrc.ac.uk/projects/fastqc/fastqc_v0.11.5.zip
$ wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.3.zip
$ unzip fastqc_v0.11.3.zip -d /opt/biosoft/
$ chmod 755 /opt/biosoft/FastQC/fastqc
$ echo 'PATH=$PATH:/opt/biosoft/FastQC/' >> ~/.bashrc
$ source ~/.bashrc
$ ./fastqc --help

–help参数能在屏幕上(标准输出)打印出FastQC的帮助文档。

测试是否安装成功 编辑

fastqc -h

Tips 编辑

运行 --nogroup 选项以关闭binning(仅针对短read操作!):

fastqc --nogroup data.fq

FastQC/Configuration 目录包含许多感兴趣的文件,可以根据需要进行自定义。

ls ~/src/FastQC/Configuration/

输出结果:

adapter_list.txt
contaminant_list.txt
limits.tx

可以编辑和添加污染物或接头,然后使用 --adapteror --contaminant 选项运行 fastqc。

使用Java以图形化方式运行FastQC 编辑

在Windows中双击可执行程序run_fastqc.bat,或在Linux中运行可执行程序fastqc, 则弹出图形化界面,在File下拉菜单中open 一个文件,即可对该文件的NGS数据进行质 量分析。

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/good_sequence_short_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/bad_sequence_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/RNA-Seq_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/small_rna_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/RRBS_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/pacbio_srr075104_fastqc.html

http://www.bioinformatics.babraham.ac.uk/projects/fastqc/454_SRR073599_fastqc.html


FastQC的输入文件为FastQ、SAM或BAM格式文件。默认情况下,FastQC会猜测输入的文件类型,以.sam或.bam结尾的文件以SAM/BAM文件打开,其它的文件都以 FastQ文件打开。

点击File,从下拉菜单中选择Save report,将结果保存为一个压缩文件,该压缩文件 中有相应的html文件和一些图形结果,适用于web中浏览。

FastQC使用多个分析模块,得到了相应的结果,这些结果表示的意义,详细的说明见:http://www.bioinformatics.babraham.ac.uk/proiects/fastac/Help/3 Analvsis Modules/。以下是这些结果的详细讲解:

  1. Basic statistics基础的统计信息,有文件名、文件类型(常用的碱基或 colorspace数据)、总序列数、在Casava模式下运行时过滤的序列数、序列长度(给出最短和最长的序列长度,若是所有序列长度一致,则只给出一个值)和 所有序列总的GC含量。该项的统计结果永远是PASS。
  2. Per base sequence scores以盒形图的方式,给出了序列中每个位点对应的碱 基质量分布。x轴是read中的位点,y轴是碱基质量;盒形图中中间的红线表示 median value;黄色的部分代表inter-quartile区域(25-75%);上下分割线代表 10%和90% points;蓝色的线代表平均质量。如果有碱基位点的lower quartile (下四分位数)低于10,或者media值低于 25,则该项统计结果为Warning;如果有碱基位点的lower quartile (下四分位数)低于5,或者media值低于20,则该项统计结果为Failure。
  3. Per sequence quality scores统计序列平均质量的频数。x轴是平均碱基质量值,y轴是平均碱基质量值对应的reads数。如果频数最大的平均碱基质量值低于27,则统计结果为Warning;如果频数最大 的平均碱基质量值低于20,则统计结果为Failure。
  4. Per base sequence content统计序列每个位点的碱基(GATC)含量。如果有位点的A和T、或者G和C的含量差异髙于10%,则统计结果为 Warning;如果有位点的A和T、或者G和C的含量差异高于20%,则统计结 果为 Failure。
  5. Per base GC content统计序列每个位点的GC含量。如果有位点的GC含量和平均的GC含量相差5%,则统计结果为Warning;如 果有位点的GC含量和平均的GC含量相差10%,则统计结果为Failure。 6) Per Sequence GC content统计每个序列的GC含量的频数。图中红色线是实际的值,蓝色线为理论分布(正态分布)。正常情况下,则红色线条是平滑的,峰值位点对应着总体的GC含量;而如果有其它的峰,则表示可能有其它 contaminated library or some other kinds of biased subset。将红色线条的值和蓝色线条的值相比得到偏差值,所有位点偏差总和如果超出所 有reads的15%,则统计结果为Warning;如果超出30%,则统计结果为 Failure。
  6. Per base N content每个位点的N含量。如果有位点的N含量> 5%,则统计结果为Warning; >20%,则统计结果为 Failure。
  7. Sequence length distribution 序列长度分布。如果所有的序列不是一样长度,则结果为Warning;如果有序列的长度为0,则结果为Failure。
  8. Duplicate sequences统计重复序列的含量。图中x轴为reads重复的次数;y 轴为重复指次数对应的reads占unique reads的比例。序列重复表明enrichment bias (比如:测序过程中的PCR重复、转录组测序中某些基因表达量高)。序列重 复比例越高,则表明实际有用的序列越少。为了降低内存消耗,只对文件前 2000,000个reads(足够了)进行统计;对于长度长于75bp的reads,将其截短为.50bp,用于统计重复。统计结果图在最上方给出了序列重复水平值,代表着non-unique序列所占的比例。如果序列重复水平值>20%,则结果为Warning;若>50%,则结果为50%。
  9. Overrepresented sequences 统计过表达的序列。某一条序列占总序列的 0.1%,则被鉴定为过表达序列,然后将这样的序列和其自带的数据库进行比对,报告出最佳的hit (至少20bp内没有mismatch)。和上一个Module —致,对文件前2000,000个reads(足够了)进行统计;对于长度长于75bp的reads,将其截短为50bp,用于统计分析。如果有任意一序列表现出过表达> 0.1% of the total,则结果为Warning;如果有任意一序列表现出过表达> 1% of the total,则结果为Failure。
  10. Overrepresented Kmers 统计过表达的Kmers。默认下,Kmer长度为5,每个位点的碱基和其后面的4个碱基连在一起,为一个Kmer,统计该位点所有kmer 的种类和数目。并最后画图给出6个过表达的Kmers在不同位点的富集状况。 如果在任意一 K-mer总体上富集3倍以上,或在任意一位点富集5倍以上,则结果为Warning;如果在任意一 K-mer在任意一位点富集10倍以上,则结果为 Failure。

使用命令行运行FastQC 编辑

FastQC的常用参数:

--help	打印fastqc的帮助信息
-0/--outdir	将输出文件放入到此文件夹中。此文件夹一定要存在或先建立此文件夹,否则不会生成结果文件。
			若不设置此参数,默认将结果输出到输入文件所在的文件夹中。.
-j / --java	指定java的路径,否则java命令存在于系统环境变量PATH中。
-f / --format	强制指定输入文件的格式。有效的格式为:bam, sam, bam_mapped, sam_mapped和fastq。
-t/--threads		并行计算的最大任务数

FastQC运行示例:

$ /opt/biosoft/FastQC/fastqc seqfileV seqfile2 ... seqfileN
$ /opt/biosoft/FastQC/fastqc -t 4 -o ./ reads1.fastq reads2.fastq reads3.fastq reads4.fastq

默认设置下,FastQC生成一个后缀为_fastqc的文件夹,该文件夹中包含两种结果文 件:以txt为后缀的文本型结果,和以html为后缀的网页型结果。

在命令行下运行FastQC与图形化界面相比,可以设置很多的参数,比如设置多线程运 行和Kmer大小等。命令行最大的优势就是多任务并行运行,对多个fastq文件同时进行分 析,而图形化界面则不行;当然,开多个图形化界面同时运行也是可以的。图形化界面的优 势是直接方便,但是有时候图形化界面给人不流畅的感觉。

FastQC结果的网页化浏览 编辑

  • 1) 最简单的方式是直接使用firefox进行浏览,命令如下:
$ firefox result_fastqc/fastqc_report.html

局限性在于:只有数据存储于本地电脑中,才能正常使用firefox进行浏览。若结 果在远程服务器中,则使用下一种方法更加方便。

  • 2)搭建www服务器用于网页版结果的查看。
$ sudo su -
#	setup	选择开机即启动http服务
#	/etc/init.d/httpd status
httpd己停
#	/etc/init.d/httpd start
正在启动httpd:					[失败]
#	setenforce 0
#/etc/init.d/httpd start
正在启动httpd:					[确定]

#	vim /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
#	/etc/init.d/iptables restart

#	vim /etc/httpd/conf/httpd.conf  #在此文件末尾添加如下内容
Alias /public "/home/public/"
<Directory "/home/public/">
	Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order allow,deny
	Allow from all
</Directory>

# /etc/init.d/httpd restart	#然后,重启httpd服务

# mkdir /home/public
# chmod 1777 /home/public
# usermod -aG userGroupName	apache
# chmod 755 /home/user

$ ln -s $PWD/ /home/public
$ IP=`ifconfig | perl -n -e	'print $1 if /inet addr:(\d+\.\d+V.\d+\.\d+) P-t-P/'`
$ echo "firefox $IP/public"	| sh

FastQC Practise 编辑

$ mkdir /home/train/02.sequencing_data_quality_control/
$ cd /home/train/02.sequencing_data_quality_control/
$ mkdir FastQC
$ cd FastQC
$ mkdir raw_data
$ /opt/biosoft/FastQC/fastqc -t 4 -o ./raw—data ~/00.incipient_data/data_for_gen*/*.fastq

$ firefox http://127.0.0.1/train/02.sequencing_data_quality_control/raw_data/