转录组数据过滤
1.下载数据过滤软件fastp
conda create -n fastp
conda activate fastp
conda install fastp / conda install -c bioconda fastp
#上述代码实现了对fastp环境的设置和软件的安装,每次使用前需要conda activate fastp
2.使用fastp初步过滤数据
软件基本用法
fastp -i input.fq.gz -o output.fq.gz
#单末端测序数据过滤代码,-i 后是过滤前的数据名称,-o后是过滤后的数据名称
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
#双末端测序数据过滤代码,-i后是第一条数据过滤前名称,-I是第二条数据过滤前名称。-o是第一条数据过滤后名称,-O是第二条数据过滤后名称,-h后是总结的文件
一般我们需要处理的数据都有几十个,fastp过滤一个数据大约需要几十秒,一个一个的逐一键入代码去跑很麻烦,下面是一个名为fastp的shell脚本,可用于批量处理数据。
#!/bin/bash
# 定义输入和输出路径
input_dir="/home/monkeyflower/xiaodeng/transcripotom/filter_and_qc"
output_dir="/home/monkeyflower/xiaodeng/transcripotom/filter_and_qc/filtered"
# 创建输出目录
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这个命令运行脚本,即后台挂起进程。这样即使断开与服务器的连接也能继续运行
3.结果解读
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
第一部分说明了过滤前数据的总条数和总碱基数,Q20与Q30。第二部分说明了过滤后数据的总条数和总碱基数,Q20与Q30。第三部分说明了过滤掉的数据是什么原因被过滤的。Q20表示有93.6062%的数据错误率在1%以下,Q30表示有88.7179%的数据错误率在0.1%以下。