生物信息學/FastQC
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/。以下是這些結果的詳細講解:
- Basic statistics基礎的統計信息,有文件名、文件類型(常用的鹼基或 colorspace數據)、總序列數、在Casava模式下運行時過濾的序列數、序列長度(給出最短和最長的序列長度,若是所有序列長度一致,則只給出一個值)和 所有序列總的GC含量。該項的統計結果永遠是PASS。
- 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。
- Per sequence quality scores統計序列平均質量的頻數。x軸是平均鹼基質量值,y軸是平均鹼基質量值對應的reads數。如果頻數最大的平均鹼基質量值低於27,則統計結果為Warning;如果頻數最大 的平均鹼基質量值低於20,則統計結果為Failure。
- Per base sequence content統計序列每個位點的鹼基(GATC)含量。如果有位點的A和T、或者G和C的含量差異髙於10%,則統計結果為 Warning;如果有位點的A和T、或者G和C的含量差異高於20%,則統計結 果為 Failure。
- 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。
- Per base N content每個位點的N含量。如果有位點的N含量> 5%,則統計結果為Warning; >20%,則統計結果為 Failure。
- Sequence length distribution 序列長度分佈。如果所有的序列不是一樣長度,則結果為Warning;如果有序列的長度為0,則結果為Failure。
- Duplicate sequences統計重複序列的含量。圖中x軸為reads重複的次數;y 軸為重複指次數對應的reads占unique reads的比例。序列重複表明enrichment bias (比如:測序過程中的PCR重複、轉錄組測序中某些基因表達量高)。序列重 複比例越高,則表明實際有用的序列越少。為了降低內存消耗,只對文件前 2000,000個reads(足夠了)進行統計;對於長度長於75bp的reads,將其截短為.50bp,用於統計重複。統計結果圖在最上方給出了序列重複水平值,代表着non-unique序列所佔的比例。如果序列重複水平值>20%,則結果為Warning;若>50%,則結果為50%。
- 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。
- 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/