1.下載數(shù)據(jù)過濾軟件fastp
conda create -n fastp
conda activate fastp
conda install fastp / conda install -c bioconda fastp
#上述代碼實現(xiàn)了對fastp環(huán)境的設(shè)置和軟件的安裝,每次使用前需要conda activate fastp
2.使用fastp初步過濾數(shù)據(jù)
軟件基本用法
fastp -i input.fq.gz -o output.fq.gz
#單末端測序數(shù)據(jù)過濾代碼,-i 后是過濾前的數(shù)據(jù)名稱,-o后是過濾后的數(shù)據(jù)名稱
fastp -i input.R1.fq.gz -I input.R2.fq.gz -o output.R1.fq.gz -O output.R2.fq.gz -h output.html
awk '{print "fastp -i "$1"_1.gz -I "$1"_2.gz -o "$1"_1.fq.gz -O "$1"_2.fq.gz -h "$1".html"}' name.lst > fastp.sh
#雙末端測序數(shù)據(jù)過濾代碼,-i后是第一條數(shù)據(jù)過濾前名稱,-I是第二條數(shù)據(jù)過濾前名稱。-o是第一條數(shù)據(jù)過濾后名稱,-O是第二條數(shù)據(jù)過濾后名稱,-h后是總結(jié)的文件
一般我們需要處理的數(shù)據(jù)都有幾十個,fastp過濾一個數(shù)據(jù)大約需要幾十秒,一個一個的逐一鍵入代碼去跑很麻煩,下面是一個名為fastp的shell腳本,可用于批量處理數(shù)據(jù)。
#!/bin/bash
# 定義輸入和輸出路徑
input_dir="/home/monkeyflower/xiaodeng/transcripotom/filter_and_qc"
output_dir="/home/monkeyflower/xiaodeng/transcripotom/filter_and_qc/filtered"
# 創(chuàng)建輸出目錄
mkdir -p "$output_dir"
# 遍歷所有fastq文件,并使用fastp進行過濾
for file in "$input_dir"/*.fastq; do
# 提取文件名(不含路徑和擴展名)
filename=$(basename -- "${file%.*}")
# 定義輸出文件名(包含路徑和新的擴展名)
output_file="$output_dir/$filename"_out.fastq
# 使用fastp進行過濾
fastp -i "$file" -o "$output_file"
done
可以使用nohup sh fastp.sh這個命令運行腳本,即后臺掛起進程。這樣即使斷開與服務(wù)器的連接也能繼續(xù)運行
3.結(jié)果解讀
Read1 before filtering:
total reads: 15774283
total bases: 1593202583
Q20 bases: 1380483483(86.6483%)
Q30 bases: 1297784422(81.4576%)
Read1 after filtering:
total reads: 14028126
total bases: 1414252489
Q20 bases: 1323828084(93.6062%)
Q30 bases: 1254695557(88.7179%)
Filtering result:
reads passed filter: 14028126
reads failed due to low quality: 1733821
reads failed due to too many N: 12081
reads failed due to too short: 255
reads with adapter trimmed: 485782
bases trimmed due to adapters: 28429663
第一部分說明了過濾前數(shù)據(jù)的總條數(shù)和總堿基數(shù),Q20與Q30。第二部分說明了過濾后數(shù)據(jù)的總條數(shù)和總堿基數(shù),Q20與Q30。第三部分說明了過濾掉的數(shù)據(jù)是什么原因被過濾的。Q20表示有93.6062%的數(shù)據(jù)錯誤率在1%以下,Q30表示有88.7179%的數(shù)據(jù)錯誤率在0.1%以下。