一、測(cè)序數(shù)據(jù)的格式轉(zhuǎn)換
sra文件下載好后,使用fastq-dump轉(zhuǎn)換數(shù)據(jù)格式:
fastq-dump --split-files SRR6232298.sra
fastq-dump --gzip --split-files SRR6232298.sra
#轉(zhuǎn)換格式的同時(shí)解壓為gz文件,節(jié)省空間
當(dāng)有多個(gè)sra文件時(shí),可通過(guò)腳本進(jìn)行批量解壓:
vi fastq-dump.sh? ? #創(chuàng)建一個(gè)腳本文件,內(nèi)容如下:
#!/bin/bash
for i in ~ncbi/public/sra/sra*
do
echo $i
fastq-dump --gzip --split-files $i
done
echo OK
二、測(cè)序數(shù)據(jù)的質(zhì)控
FastQC---測(cè)序數(shù)據(jù)質(zhì)控的軟件?
是一個(gè)java軟件,下載后可以直接使用(免安裝編譯),但是需要自行配置好java環(huán)境
首先我們配置java環(huán)境(已下好java文件,為下述的jdk-8u172-linux-x64.tar.gz):
sudo mkdir /usr/java
sudo tar -zvxf /home/noodles/Biosofts/jdk-8u172-linux-x64.tar.gz -C /usr/java/
sudo cd /usr/java
sudo ln -s jdk1.8.0_172 latest
sudo ln -s /usr/java/latest default
sudo vi /etc/profile
末尾加上如下三行:?
export JAVA_HOME=/usr/java/latest
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile
java -version
配置好java環(huán)境后,接著可以開(kāi)始下載安裝FastQC軟件了
1. wget http://www.bioinformatics.babraham.ac.uk/projects/fastqc/fastqc_v0.11.7.zip?
2. unzip /home/noodles/Biosofts/fastQC/fastqc_v0.11.7.zip -d ~/Biosofts/fastQC
3. ~/Biosofts/fastQC/FastQC/fastqc -h
當(dāng)我運(yùn)行這步后,系統(tǒng)提示fastqc還未安裝,通過(guò)apt install fastqc來(lái)安裝,當(dāng)進(jìn)行安裝后報(bào)錯(cuò):
呈上:
4. 將fastqc加入環(huán)境變量:
echo 'export PATH=~/Biosofts/fastQC/FastQC:$PATH' >>~/.bashrc
source ~/.bashrc
fastqc -h
至此,已裝好了fastQC軟件,fastQC的使用方法如下:
fastqc [-o output dir] [--(no)extract] [-f fastq|bam|sam] [-c contaminant file] seqfile1 .. seqfileN
各參數(shù)的含義:
-o --outdir 生成的報(bào)告文件的儲(chǔ)存路徑,生成的報(bào)告的文件 名是根據(jù)輸入來(lái)定的
--extract 生成的報(bào)告默認(rèn)會(huì)打包成1個(gè)壓縮文件,使用這個(gè) 參數(shù)是讓程序不打包?
-t --threads 選擇程序運(yùn)行的線程數(shù)?
-c --contaminants 污染序列選項(xiàng),輸入的是一個(gè)文件,格式 是Name [Tab] Sequence,里面是可能的污染序列
-a --adapters 也是輸入一個(gè)文件,文件的格式Name [Tab] Sequence,儲(chǔ)存的是測(cè)序的adpater序列信息;默認(rèn)已有一些?
-q --quiet 安靜運(yùn)行模式,一般不選這個(gè)選項(xiàng)的時(shí)候,程序 會(huì)實(shí)時(shí)報(bào)告運(yùn)行的狀況。?
接下來(lái)以用fastqc處理之前下載的seq為例,當(dāng)我處理SRR6232298_1.fastq.gz時(shí)報(bào)錯(cuò):
經(jīng)過(guò)檢查后原來(lái)是fastqc的權(quán)限問(wèn)題,增加權(quán)限即可:
三、測(cè)序數(shù)據(jù)過(guò)濾
數(shù)據(jù)過(guò)濾軟件用來(lái)切除接頭序列和低質(zhì)量堿基,目前也已有很多工具:Trimmomatic、seqtk、 cutadapt、 bbduk(BBmap). 下面以Trimmomatic為例介紹:
Trimmomatic 是一個(gè)廣受歡迎的 Illumina 平臺(tái)數(shù)據(jù)過(guò)濾工具。 Trimmomatic 支持多線程,處理數(shù)據(jù)速度快,主要用來(lái)去除 Illumina 平臺(tái)的 Fastq 序列中的接頭,并根據(jù)堿基質(zhì)量值對(duì) Fastq 進(jìn)行修剪。軟件有兩種過(guò)濾模式,分別對(duì)應(yīng) SE 和 PE 測(cè)序數(shù)據(jù),同時(shí)支持 gzip 和 bzip2 壓縮文件。另外也支持 phred-33 和 phred-64 格式互相轉(zhuǎn)化,不過(guò)現(xiàn)在 絕大部分 Illumina 平臺(tái)的產(chǎn)出數(shù)據(jù)也都轉(zhuǎn)為使用 phred-33 格式了 。
下載:
wget http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/Trimmomatic-0.38.zip
安裝:?
unzip Trimmomatic-0.38.zip -d ~/Biosofts/trimmomatic/Trimmomatic038/?
運(yùn)行:?
java -jar ~/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/trimmomatic-0.38.jar?
添加環(huán)境變量:
echo 'export PATH=~/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/trimmomatic-0.38.jar:$PATH' >>~/.bashrc
source ~/.bashrc
然后以之前下載的SRR6232298_1.fastq.gz數(shù)據(jù)為例進(jìn)行操作:
java -jar ~/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/trimmomatic-0.38.jar PE -phred33?SRR6232298_1.fastq.gz?./trim_out/output_forward_paired.fq.gz ./trim_out/output_forward_unpaired.fq.gz ./trim_out/output_reverse_paired.fq.gz ./trim_out/output_reverse_unpaired.fq.gz?ILLUMINACLIP:/home/noodles/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/adapters/TruSeq2-PE.fa:2:30:10?SLIDINGWINDOW:5:20 LEADING:20 TRAILING:20 MINLEN:75
(上述命令中,output_forward_paired.fq.gz、output_forward_unpaired.fq.gz、output_reverse_paired.fq.gz、output_reverse_unpaired.fq.gz四個(gè)文件由自己命名,軟件自行生成。)結(jié)果報(bào)錯(cuò):
經(jīng)仔細(xì)檢查后,發(fā)現(xiàn)問(wèn)題出在下面的點(diǎn):
trimmomatic有兩種模式即SE模式和PE模式,分別對(duì)應(yīng)單末端測(cè)序模式和雙末端測(cè)序模式,在 SE 模式下,只有一個(gè)輸入文件和一個(gè)過(guò)濾之后的輸出文件;在 PE 模式下,有兩個(gè)輸入文件,正向測(cè)序序列和反向測(cè)序序列,但是過(guò)濾之后輸出文件有四個(gè),過(guò)濾之后雙端序列都保留的就是 paired,反之如果其中一端序列過(guò)濾之后被丟棄了另一端序列保留下來(lái)了就是 unpaired 。上述的問(wèn)題就在于選用的是PE模式,但只輸入了一個(gè)文件,所以報(bào)錯(cuò)。(SRR6232298.sra為雙末端測(cè)序的數(shù)據(jù),SRR6232298_1.fastq.gz和SRR6232298_2.fastq.gz為使用fastq-dump對(duì)SRR6232298.sra處理后所得,分別為正向測(cè)序序列和反向測(cè)序序列)因此當(dāng)我將SRR6232298_1.fastq.gz和SRR6232298_2.fastq.gz都輸入時(shí),軟件可正常運(yùn)行:
java -jar ~/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/trimmomatic-0.38.jar PE -phred33 SRR6232298_1.fastq.gz SRR6232298_2.fastq.gz ./trim_out/output_forward_paired.fq.gz ./trim_out/output_forward_unpaired.fq.gz ./trim_out/output_reverse_paired.fq.gz ./trim_out/output_reverse_unpaired.fq.gz ILLUMINACLIP:/home/noodles/Biosofts/trimmomatic/Trimmomatic038/Trimmomatic-0.38/adapters/TruSeq2-PE.fa:2:30:10 SLIDINGWINDOW:5:20 LEADING:20 TRAILING:20 MINLEN:75?
Trimmomatic 過(guò)濾數(shù)據(jù)的步驟與命令行中過(guò)濾參數(shù)的順序有關(guān),通常的過(guò)濾步驟如下:
1.?ILLUMINACLIP: 過(guò)濾 reads 中的 Illumina 測(cè)序接頭和引物序列,并決定是否去除反向互補(bǔ)的 R1/R2 中的 R2。
2.?SLIDINGWINDOW: 從 reads 的 5' 端開(kāi)始,進(jìn)行滑窗質(zhì)量過(guò)濾,切掉堿基質(zhì)量平均值低于閾值的滑窗。
3.?MAXINFO: 一個(gè)自動(dòng)調(diào)整的過(guò)濾選項(xiàng),在保證 reads 長(zhǎng)度的情況下盡量降低測(cè)序錯(cuò)誤率,最大化 reads 的使用價(jià)值。
4.?LEADING: 從 reads 的開(kāi)頭切除質(zhì)量值低于閾值的堿基。
5.?TRAILING: 從 reads 的末尾開(kāi)始切除質(zhì)量值低于閾值的堿基。
6.?CROP: 從 reads 的末尾切掉部分堿基使得 reads 達(dá)到指定長(zhǎng)度。
7.?HEADCROP: 從 reads 的開(kāi)頭切掉指定數(shù)量的堿基。
8.?MINLEN: 如果經(jīng)過(guò)剪切后 reads 的長(zhǎng)度低于閾值則丟棄這條 reads。
9. AVGQUAL: 如果 reads 的平均堿基質(zhì)量值低于閾值則丟棄這條 reads。
10.?TOPHRED33: 將 reads 的堿基質(zhì)量值體系轉(zhuǎn)為 phred-33。
11.?TOPHRED64: 將 reads 的堿基質(zhì)量值體系轉(zhuǎn)為 phred-64。
參考:NGS 數(shù)據(jù)過(guò)濾之 Trimmomatic 詳細(xì)說(shuō)明
下面兩張圖分別為未經(jīng)Trimmomatic過(guò)濾和經(jīng)過(guò)Trimmomatic過(guò)濾的SRR6232298_1.fastq.gz,經(jīng)過(guò)fastQC質(zhì)控后的結(jié)果: