提起二代测序数据质控软件 fastp,相信大家一定不会陌生。作为一款质量控制软件,其从查看碱基质量到过滤、修剪、去接头等全方位的预处理服务,加之高速、易用的特点,在生物信息学领域赢得了广泛的好评。
对于三代测序长度长数据来说,你是否和我一样在纠结究竟该使用哪一款软件对原始下机数据进行质量控制和过滤修剪呢?对于 PacBio平台 的下机数据,因其通过CSS(circular consensus sequencing)测序模式和算法获得的HiFi序列,平均质量一般都比较高(Q>20),一般来说问题不大。在拿到测序质量未知的数据时,大家可以使用 LongQC 或 LongReadSum 等软件对数据质量进行查看统计,使用 chopper 对序列进行过滤修剪。对于 ONT 及其类似原理的平台(如华大序风CycloneSEQ-WT02),其下机数据质量相对较低,大家可以使用 nanopack 套件 (如NanoPlot,nanocomp,chopper等)对数据质量进行查看以及进行过滤修剪。
当我正在纠结这么多质控软件的选择和想像 fastp 一样一步解决数据质量查看和序列过滤修剪时,fastplong 来了!
fastplong 是一款长读长测序数据(如纳米孔测序、PacBio 测序、Cyclone 测序等)的超快速预处理与质量控制软件。由于其和 fastp 是孪生兄弟,所以用法和参数也几乎一致。第一个版本(v0.1.0)最早发布于2024年10月11号,现在的最新版本为v0.2.2 (2024.12.03)。
Github: https://github.com/OpenGene/fastp
# conda安装
$ conda install -c bioconda fastplong
# mamba安装
$ mamba install -c bioconda fastplong
#下载最新版本
$ wget http://opengene.org/fastplong/fastplong
$ chmod a+x ./fastplong #所有用户都可以执行该文件,a 表示“all”,+x 表示“添加执行权限”.
# 或下载特定版本, 如fastplong v0.2.2
$ wget http://opengene.org/fastplong/fastplong.0.2.2
$ mv fastplong.0.2.2 fastplong #修改软件名称
$ chmod a+x ./fastplong
输入和输出文件都可以是 gzip
压缩格式。默认情况下,HTML
报告会保存为 fastplong.html
(可以通过 -h 选项指定),JSON
报告会保存为fastplong.json
(可以通过 -j 选项指定)
$ fastplong -i in.fq -o out.fq
使用 -i
或 --in
指定输入文件,使用 -o
或--out
指定输出文件。
fastplong
将不会写入输出文件,但仍然会对过滤前后的数据进行质量控制。(1)质量过滤
默认启用质量过滤,但可以通过 -Q
或 --disable_quality_filtering
禁用。目前支持通过限制 N 碱基数量(-n, --n_base_limit
)和不合格碱基的百分比来进行过滤。
要按不合格碱基的百分比过滤序列,需要提供以下两个选项:
-q, --qualified_quality_phred
定义一个碱基为合格的质量值。默认值为 15,表示 Phred 质量值 ≥ Q15 的碱基为合格。-u, --unqualified_percent_limit
允许的不合格碱基的百分比(0~100)。默认值为 40%,表示允许 40% 的碱基不合格。你也可以通过平均质量值过滤读段:
-m, --mean_qual
如果一条序列的平均质量值低于此值,则该序列将被丢弃。默认值为 0,表示无要求(整数 0)。(2)长度过滤
默认启用长度过滤,但可以通过 -L
或 --disable_length_filtering
禁用。最小长度要求通过 -l
或 --length_required
指定。你可以通过 --length_limit
指定最大长度限制,以丢弃超过该长度的序列。默认值为 0,表示无限制。
fastplong 支持全局修剪,即在所有序列的前端或末端修剪碱基。例如,最后一个循环通常质量较低,可以通过 -t 1
或 --trim_tail=1
选项将其丢弃。
-f, --trim_front
和 -t, --trim_tail
设置序列前端和末端的修剪数量。1_raw_fastq
文件夹下。2_fastplong
文件夹,fastplong
的结果文件放在2_fastplong
下。$ fastplong -i 1_raw_fastq/sample.fastq.gz -o 2_fastplong/sample..fastq.gz \
-h 2_fastplong/sample.report.html \
-j 2_fastplong/sample.report.json \
-m 20 -l 100 -w 12 -A
#-m 20 按照reads平均碱基质量过滤
#-l 100 过滤掉小于100bp的碱基
#-w 12 运行cpu线程
#-A 不去接头adapter
用法:fastplong -i <输入文件> -o <输出文件> [选项...]
fastplong:用于长读长的超快速 FASTQ 预处理和质量控制工具
版本 0.0.1
用法:./fastplong [选项] ...
选项:
-i, --in 输入文件名(字符串 [=])
-o, --out 输出文件名(字符串 [=])
--failed_out 指定文件名,保存未通过过滤的序列。(字符串 [=])
-z, --compression gzip 输出的压缩级别(1 ~ 9)。1 最快,9 最小,默认值为 4。(整数 [=4])
--stdin 从 STDIN 输入。
--stdout 将通过过滤的序列流式输出到 STDOUT。此选项会导致配对端输出的 FASTQ 文件交错。默认禁用。
--reads_to_process 指定要处理的读段数量。默认值 0 表示处理所有序列。(整数 [=0])
--dont_overwrite 不覆盖现有文件。默认允许覆盖。
-V, --verbose 输出详细日志信息(例如,每处理 1M 条读段时输出一次)。
-A, --disable_adapter_trimming 默认启用接头序列修剪。如果指定此选项,则禁用接头序列修剪。
-s, --start_adapter 读段起始端(5')的接头序列。(字符串 [=auto])
-e, --end_adapter 读段末端(3')的接头序列。(字符串 [=auto])
-a, --adapter_fasta 指定一个 FASTA 文件,用于修剪该文件中列出的所有接头序列。(字符串 [=])
-d, --distance_threshold 序列-接头序列距离/接头序列长度的阈值(0.0 ~ 1.0),值越大表示检测到的接头序列越多(浮点数 [=0.25])
--trimming_extension 检测到接头序列时,扩展修剪范围以进行更干净的修剪,默认值 10 表示额外修剪 10 个碱基。(整数 [=10])
-f, --trim_front 序列前端修剪的碱基数量,默认值为 0。(整数 [=0])
-t, --trim_tail 序列末端修剪的碱基数量,默认值为 0。(整数 [=0])
-x, --trim_poly_x 启用 3' 端的 polyX 修剪。
--poly_x_min_len 检测序列尾部 polyX 的最小长度。默认值为 10。(整数 [=10])
-5, --cut_front 从 5' 端向 3' 端移动滑动窗口,如果窗口的平均质量值低于阈值,则丢弃窗口中的碱基,否则停止。
-3, --cut_tail 从 3' 端向 5' 端移动滑动窗口,如果窗口的平均质量值低于阈值,则丢弃窗口中的碱基,否则停止。
-W, --cut_window_size 由 cut_front、cut_tail 或 cut_sliding 共享的窗口大小选项。范围:1~1000,默认值:4(整数 [=4])
-M, --cut_mean_quality 由 cut_front、cut_tail 或 cut_sliding 共享的平均质量要求选项。范围:1~36,默认值:20(Q20)(整数 [=20])
--cut_front_window_size cut_front 的窗口大小选项,默认值为 cut_window_size(整数 [=4])
--cut_front_mean_quality cut_front 的平均质量要求选项,默认值为 cut_mean_quality(整数 [=20])
--cut_tail_window_size cut_tail 的窗口大小选项,默认值为 cut_window_size(整数 [=4])
--cut_tail_mean_quality cut_tail 的平均质量要求选项,默认值为 cut_mean_quality(整数 [=20])
-Q, --disable_quality_filtering 默认启用质量过滤。如果指定此选项,则禁用质量过滤。
-q, --qualified_quality_phred 定义一个碱基为合格的质量值。默认值 15 表示 Phred 质量值 ≥ Q15 的碱基为合格。(整数 [=15])
-u, --unqualified_percent_limit 允许的不合格碱基的百分比(0~100)。默认值 40 表示允许 40% 的碱基不合格。(整数 [=40])
-n, --n_base_limit 如果一个序列的 N 碱基数量 > n_base_limit,则丢弃该序列。默认值为 5。(整数 [=5])
-m, --mean_qual 如果一个序列的平均质量值 < mean_qual,则丢弃该序列。默认值 0 表示无要求。(整数 [=0])
-L, --disable_length_filtering 默认启用长度过滤。如果指定此选项,则禁用长度过滤。
-l, --length_required 长度小于 length_required 的序列将被丢弃,默认值为 15。(整数 [=15])
--length_limit 长度大于 length_limit 的序列将被丢弃,默认值 0 表示无限制。(整数 [=0])
-y, --low_complexity_filter 启用低复杂度过滤。复杂度定义为与下一个碱基不同的碱基的百分比(base[i] != base[i+1])。
-Y, --complexity_threshold 低复杂度过滤的阈值(0~100)。默认值为 3
1.Shifu Chen. 2023. Ultrafast one-pass FASTQ data preprocessing, quality control, and deduplication using fastp. iMeta.
2.Shifu Chen, Yanqing Zhou, Yaru Chen, Jia Gu. 2018. fastp: an ultra-fast all-in-one FASTQ preprocessor. Bioinformatics.
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。