fastp常用参数说明

1. fastp 简介

fastp是用于处理fastq文件,基于C++,支持多线程,包含[fastQC]和Trimmomatic的一些功能。这里主要给出常用参数的一些说明。

2.fastp 功能

2.1 去接头

2.2碱基矫正

2.3 滑动窗口质量值剪切

2.4 切ployG/ployX尾巴

2.5 处理分子标签(UMI)

2.6 分割输出结果

2.7 duplicate率的评估

2.8 过表达序列分析

2.9 质控结果报告

3. fastp运算速度

fastp的文献中指出其运行速度比Trimmomatic快近5倍。

[图片上传失败...(image-7cee9-1690850703153)]

fastp参考文献也对于去除adapter的性能作了比较,X轴是搜索adapter时允许碱基错配数,Y轴是adapter序列数

[图片上传失败...(image-a07e95-1690850703153)]

4. fastp 工具使用

fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz

常用参数说明 -i, --in1 R1文件输入;

-I, --in2 R2文件输入;

-o, --out1 R1文件处理后的输出;

-O, --out2 R2文件处理后的输出;

-h, --html 设置输出html格式的质控结果文件名,不设置则默认html文件名为fastp.html

-j, --json 设置输出json格式的质控结果文件名,不设置则默认json文件名为fastp.json

UMI去除 分子标签(UMI),来自于相同的分子的标记,用于去重,错误校正。常用在ctDNA测序,illumina测序的UMI位于两个不同位置:index和read开头。

--umi 启用UMI处理参数;

--umi_loc 指定UMI的位置,可设置下面几种:

"index1": 第一个index作为UMI, 对双端数据,则作用于R1/R2; "index2": 第二个index作为UMI, 对双端数据,则作用于R1/R2; "read1": read1的头部作为UMI, 对双端数据,则作用于R1/R2; "read2": read2的头部作为UMI, 对双端数据,则作用于R1/R2; "pre_index", "index1_index2": "pre_read": read1的头部定义'umi1', read2的头部定义'umi2', 'umi1_umi2'作为UMI, 作用于R1/R2 1 2 3 4 5 6 --umi_len UMI的长度,当指定UMI的位置为read1, read2,per_read时,应指定UMI长度;

--umi_prefix UMI设置前缀,例: UMI=AATTCCGG,prefix=ATC,即设置--umi_prefix=ATC,则被加在read_name行的UMI序列将会是ATC_AATTCCGG ;

--umi_skip UMI去除并加到read_name后,再去除(跳过)的碱基数;例:--umi_skip=4 表示去除UMI后再去除4bp。

fastp是将UMI提取后加在对应read的name行,如果UMI在read中,那么UMI会从read中移除,如果UMI在index中,会被保留。

质量过滤 -q, --qualified_quality_phred 设置碱基质量值不小于多少时,该碱基为合格碱基,默认碱基质量值是15,即默认碱基质量>=15是合格碱基,<15为不合格碱基;

-u, --unqualified_percent_limit 设置允许不合格碱基的占比为多少时,去掉这条read,默认是40,即默认不合格碱基占比>40%时,去掉该read;

-Q, --disable_quality_filtering 设置该参数则禁用默认质量过滤参数(-q, -u)。

长度过滤 -l, --length_required 设置read的最小长度,默认是15,即长度<15的read被去掉;

--length_limit 设置read的最大长度, 默认为0是没有最大长度限制;

低复杂度过滤 -Y, --complexity_threshold 设置read的复杂度过滤阈值,默认为30,即当read复杂度<30时,去掉该read。复杂度:

  • 复杂度的定义为 一个碱基与其下一个相邻碱基不同的碱基个数占比;

  • 例:一条长为51bp的read,有3个碱基与其下一个碱基不同 seq = 'AAAATTTTTTTTTTTTTTTTTTTTTGGGGGGGGGGGGGGGGGGGGGGCCCC' 其复杂度为:complexity = 3/(51-1) = 6% 1 2 3 4 -y, --low_complexity_filter 设置该参数则禁用默认复杂度过滤参数(-Y)

adapter过滤 -A, --disable_adapter_trimming 设置该参数则禁用默认adapter过滤参数;

-a, --adapter_sequence 指定引物序列(对应SE数据的引物序列 或 对应PE数据的R1的引物序列)。对单端(SE)数据,可通过自动检测前~1Mreads的尾巴,去识别adapter,若设置该参数,则表示禁用自动识别adapter;

--adapter_sequence_r2 指定R2引物序列(对PE数据的R2)。对双端(PE)数据,是通过两条reads的overlap去adapter(由于该方法比较稳定,通常不必设置引物序列)。如果为找到overlap,用使用这些序列去adapter(是否设置都先通过overlap去adapter?);

--detect_adapter_for_pe 默认对双端数据则默认不使用自动检测adapter(SE可自动检测),设置该参数,表示对双端数据也启用自动检测方法;

--adapter_fasta 接头序列文件(fasta格式),注意该fasta文件中的fasta序列长度至少6bp,否则会被跳过。

注:fastp首先去除自动化检测到的接头序列,或者使用--adapter_sequence |--adapter_sequence_r2指定的接头序列,然后去除由--adapter_fasta设置的接头序列。去除的接头序列分布可以在html/json文件中查看。

通过质量值过滤每条read 下面参数是通过滑动窗的平均质量值切除reads

-W, --cut_window_size 设置滑动窗口大小;

-M, --cut_mean_quality 设置滑动窗口的平均质量值阈值,低于这个阈值则被切除;

可对两端分别进行切除:

对5'端的参数,与Trimmomatic中的LEADING参数方法相似: -5, --cut_front 是去除5'端低质量碱基,具体是指滑动窗从5'向末尾3’滑动,如果窗口内的碱基平均质量值低于阈值,则切除这些碱基,然后窗口继续滑动,直到达到阈值则不再去除; --cut_front_window_size 是设置从5'端开始的滑动窗的大小,即每个滑动窗包含几个碱基; --cut_front_mean_quality 设置从5'端开始的滑动窗平均质量值阈值,低于该阈值则切除这些碱基; 对3'端开始切除的参数与5'端类似,也与Trimmomatic中的TRAILING参数的方法类似: -3, --cut_tail 是去除3'端低质量碱基,具体是指滑动窗从3'向起始5’滑动,如果窗口内的碱基平均质量值低于阈值,则切除这些碱基,然后窗口继续滑动,直到达到阈值则不再去除; --cut_tail_window_size 是设置从3'端开始的滑动窗的大小; --cut_tail_mean_quality 设置从3'端开始的滑动窗平均质量值阈值,低于该阈值则切除这些碱基; 还有切除序列的其他参数:

-r, --cut_right 是切除右侧序列,-3与-r参数的差别是,前者是先进行碱基去除,达到阈值则不再去除碱基,然后继续滑动窗口;后者是前者进行后,继续滑动滑动窗,直到发现窗口内碱基的平均质量值低于阈值,则切除该窗口及右侧所有碱基。也就是使用该参数,就没必要设置--cut_tail参数 。

ployG/ployX 对Illumina的NextSeq/NovaSeq测序数据,常会用ployG发生(是因为这两个平台使用两个荧光信号,而没有信号时表示G)。fastp能够检测到ployG并去除(默认是NextSeq/NovaSeq平台,通过测序仪ID和fastq识别)

-g, --trim_poly_g 启用去除尾巴ployG;

--poly_g_min_len 设置去除尾巴’G’的最小长度,默认为10即尾巴ployG长度>10时,会被去除;

-G, --disable_trim_poly_g 禁用去除尾巴ployG;

-x, --polyX 启用去除polyX(polyA, polyT, polyC, polyG),若同时设置--trim_poly_g和--ployX,则先进行ployG尾巴去重,再进行ployX(这样设置有助于ployA尾巴在G尾巴之前时,去重ployA尾巴[常见于mRNA-Seq])。

PE数据的碱基校正 fastp通过overlap进行分析,如果找到合适的overlap,当overlap区域的两个错配碱基中,一个碱基质量值较高,一个碱基质量值极低,该软件会将错配的两个碱基进行校正(?将低质量碱基校正为与高质量碱基互补的碱基)。对应的碱基质量值也校正为相同的值。

-c, --correction 对碱基校正,默认不启用该参数;使用该参数是基于检测overlap,overlap的可调参数有:

--overlap_len_require overlap的长度要求,默认是30,即默认overlap区域的长度不低于30bp;否则认为无overlap;

--overlap_diff_limit overlap中最大错配数,默认是5,即默认overlap时最多有5个错配;否则认为无overlap;

--overlap_diff_percent_limit overlap中最大错配数在重叠区的占比,默认是20,即默认最大错配数的碱基占比不高于20%;否则认为无overlap。

整体切除 【global trimming】 整体切除一般是考虑到,illumina测序最后1个cycle或最后n个cycle测序质量较低,使用-t 1, --trim_tai1l=1参数将所有reads的末尾1bp去除;

-f, --trim_front1 对R1起始几bp进行去除,例如:-f 1或--trim_front1=1表示去除R1起始位置1bp碱基;

-t, --trim_tail1 对R1末尾几bp进行去除,例如:-t 2或--trim_tail1=2表示去除R1末尾位置1bp碱基;

-b, --max_len1 设置R1最大长度阈值,即R1的长度大于阈值,则在尾巴开始切除read直到与阈值相等,默认不切除。注意最大长度在最后一步处理;

-F, --trim_front2 与R1相似;不设置默认则与R1指定的参数相同;

-T, --trim_tail2 与R1相似;不设置默认则与R1指定的参数相同;

-B, --max_len2 设置R2最大长度,同-b参数。[注意最大长度在最后一步处理]

过滤reads顺序:

对UMI进行处理("--umi")

整体切除的起始位置切除("-f", "-F")

整体切除的尾巴位置切除("-t", "-T")

5'端质量值切除("-cut_front")

滑动窗切除("--cut_right")

3'端质量值切除("--cut_tail")

ployG切除("--trim_ploy_g", 默认作用于'NovaSeq/NextSeq'的数据)

根据overlap分析去adapter(PE数据)

根据adapter序列去apapter("--adapter_sequence", "--adapter_sequence_r2", 对PE数据则跳过该步骤)

去除polyX("--trim_poly_x")

-s, --split 指定最多分割成几个文件;

-S, --split_by_lines 指定分割后的每个文件最多几行;

-d, --split_prefix_digits 设置输出文件的前缀数字位数,例如:--split_prefix_digits=4 --split=3 --out1=out.fq , 则输出文件为0001.out.fq, 0002.out.fq, 0002.out.fq

过表达序列分析 【overrepresented sequence analysis】

-p,--overrepresentation_analysis 启用该分析,默认仅统计序列长度为10bp, 20bp, 40bp, 100bp或 cycle -2 ;

-P, --overrepresentation_sampling 指定用于统计的reads数比例,默认20,即默认1/20的reads用于序列统计。例:设置-P 100 表示将1/100的reads用序列统计,设置-P 1 表示将所有reads用于统计(运行会很慢,默认20是平衡了速度和精确度)

不仅有过表达序统计结果,还有循环中(cycles)的分布情况,并用图展示检测到的过表达序列,以便找到最多的序列。

fastp和Trimmomatic的优势/劣势-chatGPT 最近在使用chatGPT提问,获得更高效的反馈信息:(网搜的一个chatGPT网址:https://chat2.jinshutuan.com/)

Q: fastp和trimmomatic软件的优势和劣势

A: fastp 和 Trimmomatic 是两种流行的用于高通量测序数据预处理的软件。它们都可以对 Illumina 测序数据进行质量控制和去除低质量读取(Quality Control and Low Quality Read Filtering)。 fastp 的优势:

fastp 的速度非常快,比大多数其他的工具都要快得多。 fastp 能够自动检测测序数据的序列格式和质量评估标准,并且提供了一些智能调整参数,使得它在使用时非常方便。 fastp 能够同时对双端测序进行处理,这对于需要处理大量数据的用户来说尤为重要。 fastp 的劣势:

fastp 具有较少的参数选项,因此对于更高级的数据处理任务,可能需要使用其他工具。 Trimmomatic 的优势:

Trimmomatic 是一个经过多年发展的成熟工具,具有广泛的应用背景和强大的功能。 Trimmomatic 提供了丰富的参数选项和模式,使其可以应对许多不同类型的测序数据。 Trimmomatic 有一个非常详细的文档,其中包含使用示例和说明,非常适合初学者使用。 Trimmomatic 的劣势:

Trimmomatic 运行速度较慢,在处理大数据时需要很长时间。 Trimmomatic 在一些情况下可能会过滤掉有用的序列,需要仔细设置其参数。 Trimmomatic 需要一定的经验和技能才能使用,对于初学者来说可能不太友好。 综上所述,fastp 和 Trimmomatic 都是非常优秀的测序数据处理工具,但它们各自具有不同的优势和劣势,选择哪一个工具主要取决于您的实际需求和经验程度。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容