fastp是啥?
它是一个针对FsastQ文件的数据过滤软件,“快”所以取名有fast,这个软件是用C++语言写的,支持多线程。就是rawdata到cleandata的过程需要的一款软件。It can perform quality control, adapter trimming, quality filtering,
per-read quality cutting and lots of other operations within a single scan of the FASTQ data
fastp如何使用(以rna数据过滤为例)
在Linux里安装fastp就略过了,直接上参数,看看如何使用。
首先,命令的语句是“fastp -i 序列文件名”或者“fastp --in1=序列文件名”,看自己喜欢用哪种。
然后fastp --help调出参数:
参数 | 解释 |
---|---|
-i, --in1 | 需要进行过滤处理的read1的fastq文件名,这里肯定不能只写一个文件名啦,一定要把文件所在的路径一起补全软件才能找到fastq文件 |
-o, --out1 | 软件处理完后输出的fastq文件名,自己取一个好记住的,比如用输入文件名加个fastq |
-I, --in2 | 如果是双端测序就还有1个输入文件read2放这里 |
-O, --out2 | read2的输出文件,同样也是自己取个名 |
-6, --phred64 | 这个参数指的是你的输入测序数据是用的phred64体系评分的,它会被转换为phred33体系评分,所以输出的结果是phred33的)这2种评分方式这个博客里有很生动详细的解释:https://blog.csdn.net/whiffen_cann/article/details/56489649 |
-z, --compression | gzip输出文件的压缩水平(1-9)。1表示最快,9表示压缩的最小。不输这个参数,那就算默认设置,即压缩水平就是2 |
-A, --disable_adapter_trimming | 默认是要进行接头去除的。如果这个参数被具体赋值,则接头去除就不默认进行,按参数执行 |
-a, --adapter_sequence | 设置read1的接头序列。如果是单端测序(SE),不指定软件就自动检测,如果是双端测序(PE),如果R1/R2没有重叠区域(overlap)就使用这个参数 |
--adapter_sequence_r2 | 设置read2的接头序列(只适用于双端测序)。 如果R1/R2没有重叠区域(overlap)就使用这个参数。如果没有具体指定,那就和上一个参数--adapter_sequence一样 |
-f, --trim_front1 | 去除read1的头部多少个碱基。默认设置是0 |
-t, --trim_tail1 | 去除read1的尾部多少个碱基。默认设置是0 |
-F, --trim_front2 | 去除read2的头部多少个碱基。默认设置和read1一样是0 |
-T, --trim_tail2 | 去除read2的尾部多少个碱基。默认设置和read2一样是0 |
-g, --trim_poly_g | 进行PolyG尾的去除,对Illumina NextSeq/NovaSeq数据默认是去除的 |
--poly_g_min_len | 检测polyG尾在read尾部的最小长度。默认是10 |
-G, --disable_trim_poly_g | 不进行polyG尾去除,对Illumina NextSeq/NovaSeq数据默认是去除的 |
-5, --cut_by_quality5 | 对每个read切除5’端,默认是不切除(注意!:切除会影响重复数据的删除) |
-3, --cut_by_quality3 | 对每个read切除3’端,默认是不切除(注意!:切除会影响重复数据的删除) |
-W, --cut_window_size | 设置滑窗大小,默认是4 |
-M, --cut_mean_quality | 滑窗的平均质量阈值,低于这个阈值就被切除,默认是Q20 |
-Q, --disable_quality_filtering | 质量过滤默认是开启的,选择了这个参数就关闭质量过滤 |
-q, --qualified_quality_phred | 设置碱基质量阈值,默认是15,就是phred质量评分≥Q15。这个参数我们常常自行设,比如要求高一点设为20 |
-u, --unqualified_percent_limit | 允许百分之多少的碱基不合格(0-100),默认是40(就是说40%),超过这个比例,整条read就被删除了 |
-n, --n_base_limit | 如果一条read中N碱基的数量超过了多少个,那么这条read就被删除,默认是5(即这条read里有5个N)。这需要根据你实际项目需求改,比如你的read是150bp, 如果你要求使N含量不超过5%,那么150*0.05=7.5,但这里要填int型,不知道是填7.5会不会被软件接受,下次试一试 |
-L, --disable_length_filtering | 长度过滤是默认开启的,如果填了这个参数那就关闭长度过滤。 |
-l, --length_required | read小于这个参数设定长度会被丢弃或删除,默认是15 |
-c, --correction | 对双端测序数据而言,选择这个参数就是开启重叠区域的碱基校正,默认是关闭的 |
-U, --umi | 开启独特的分子标签(UMI)的预处理 |
--umi_loc | 指出UMI的具体位置,可以是(index1/index2/read1/read2/per_index/per_read),默认是没有 |
--umi_len | 如果UMI在read1/read2,应该提供它的长度 |
--umi_prefix | 如果设置前缀,将会用下划线连接前缀和UMI,比如prefix设置为UMI, UMI是AATTCG, 那么最后结果就是UMI_AATTCG。默认是没前缀的 |
-p, --overrepresentation_analysis | 开启过表达序列分析 |
-P, --overrepresentation_sampling | 过表达序列会被进行分析(1-10000),越小越慢,默认是20,就是指1/20的序列会被进行分析 |
-j, --json | 输出的json报告文件名,以“.json”结尾 |
-h, --html | 输出的html报告文件名,以“.html”结尾 |
-R, --report_title | 设置报告标题,默认是“fastp report” |
-w, --thread | 设置运行的线程数,默认是3 |
-s, --split | 控制输出结果通过制定得到的总文件数量(2-999),一个连续的数字前缀编号将加到输出文件名上,比如 0001.out.fq, 0002.out.fq...,默认是不开启这个参数 |
-S, --split_by_lines | 控制输出结果通过控制每个文件有多少行(≥1000),一个连续的数字前缀编号将加到输出文件名上,比如 0001.out.fq, 0002.out.fq...,默认是不开启这个参数 |
-d, --split_prefix_digits | 用于顺序号填充的数字(1-10),默认是4,所以文件名会被填充像0001.xxx,0表示禁用填充。 |
-?, --help | 要求助就输入这个 |
然后我从NCBI上下载了一个单端测序的数据试了一下,用时714s,代码见图的最下方:
其他
参考文献:[1] Chen, S. , Zhou, Y. , Chen, Y. , & Jia, G. . (2018). Fastp: an ultra-fast all-in-one fastq preprocessor. Bioinformatics, 34(17), i884-i890.