【块】生信上游-3 fastp

  • 这一篇只是fastp的官方manual,后面再放实操。

1. 主要功能

  1. 质量检测
  2. 排除质量较差的reads
  3. 剪掉质量低的碱基片段
  4. reads首尾剪切
  5. 校正低质量碱基
  6. polyG、polyX剪切
  7. UMI转化为序列名
  8. 将结果输出为多个文件,方便后续多线程分析
  9. 支持STDIN/STDOUT的管道操作
  10. reads去重
  11. HTML/JSON输出结果,便于展示及下游处理

2. 使用实例

主要区分单末端还是双末端

#单末端
fastp -i in.fq -o out.fq  
#双末端
fastp -i in.R1.fq.gz -I in.R2.fq.gz -o out.R1.fq.gz -O out.R2.fq.gz

贴心给了结果展示样例:

3.下载安装

  1. 可以用conda
conda install -c bioconda fastp
  1. 直接下二进制文件
#最新版本
wget http://opengene.org/fastp/fastp 
chmod a+x ./fastp #权限
#指定版本
wget http://opengene.org/fastp/fastp.0.23.1
mv fastp.0.23.1 fastp
chmod a+x ./fastp
  1. 安装包自己安装
    3.1. libisal搭建
    autoconf, automake, libtools, nasm (>=v2.11.01) and yasm (>=1.2.0) 需要提前准备好
git clone https://github.com/intel/isa-l.git
cd isa-l
./autogen.sh
./configure --prefix=/usr --libdir=/usr/lib64
make
sudo make install

3.2. libdeflate搭建

git clone https://github.com/ebiggers/libdeflate.git
cd libdeflate
make
sudo make install

3.3 fastp搭建

git clone https://github.com/OpenGene/fastp.git
# build
cd fastp
make
# Install
sudo make install

4. 输入与输出

--stdout
如果是双末端,R1与R2会间隔输出
--stdin
如果stdin的数据源是双末端stdout类似的R1、R2间隔输出,则需--interleaved_in选项
--unpaired1、--unpaired2
储存仅单端序列通过质量筛选的序列(储存通过筛选的)
--failed_out
双末端failed reads会放到一个文件内
--reads_to_process
限制用于质检的reads,以粗略的看一眼整体质量如何。或者只需要质检一部分序列。
--dont_overwrite
保护已有文件,若已有输出文件(read1, read2, json report, html report),则直接报错

5. 过滤reads

5.1. 质量过滤
默认打开的,-Q或--disable_quality_filtering取消
-n或--n_base_limit设置unqualified碱基的限制数目
-q或--qualified_quality_phred设置pred分数,默认>=15
-u或--unqualified_percent_limit设置多少碱基被允许unqualified,默认40%
5.2. 长度过滤
默认打开的,-L或--disable_length_filtering取消
-l或--length_required设置最小碱基数
--length_limit设置最大碱基数,用于小RNA,默认0代表没有限制
5.3. 复杂度过滤
默认关闭的,-y或--low_complexity_filter可以打开
-Y或--complexity_threshold设置在0-100范围内,默认30,意思是至少30%复杂度

  • 复杂度:整体来看下一个碱基与前一个碱基不同程度

6. 接头剪切

6.1. 默认打开,-A或--disable_adapter_trimming可取消
6.2. 单末端:根据前1M个reads估计接头序列
-a或--adapter_sequence指定接头序列,自动检测会取消
6.3. 双末端:
6.3.1. 会根据per-read overlap analysis估计接头序列,不需要手动输入接头序列。
6.3.2. 如果设置了--adapter_sequence和--adapter_sequence_r2,当碱基质量较差时,才会使用指定的序列。同时因为有overlap analysis,所以接头序列预测默认是关闭的,--detect_adapter_for_pe可打开。
6.3.3. 如果设置了接头序列,运行速度会比较慢,但是会更干净
6.3.4. 最常用的接头是Illumina TruSeq adapters. 如果数据来自TruSeq library, 可以设置,--adapter_sequence=AGATCGGAAGAGCACACGTCTGAACTCCAGTCA --adapter_sequence_r2=AGATCGGAAGAGCGTCGTGTAGGGAAAGAGTGT 6.3.5. 或打开自动检查--detect_adapter_for_pe.
6.3.6. 也可以设置--adapter_fasta提供一个接头序列文件

  • fastp first trims the auto-detected adapter or the adapter sequences given by --adapter_sequence | --adapter_sequence_r2, then trims the adapters given by --adapter_fasta one by one.

7. 碱基剪切

7.1. -5或--cut_front从5端开始滑动检查,去除质量低于cut_front_mean_quality的碱基之前的序列或停止,cut_front_window_size设置滑动窗口大小;如果窗口大小是1,等同于Trimmomatic的 LEADING方法。
7.2. -3或--cut_tail从3端开始滑动检查,去除质量低于cut_tail_mean_quality的碱基之后的序列或停止,cut_tail_window_size设置滑动窗口大小;如果窗口大小是1,等同于Trimmomatic的 TRAILING方法。
7.3. -r或--cut_right,从5端到3端,如果遇到异常窗口,则丢弃右侧所有序列并停止。cut_right_window_size设置滑动窗口大小,cut_right_mean_quality设置质量要求。比较接近Trimmomatic的SLIDINGWINDOW方法。
7.4 用了--cut_right,就没必要用--cut_tail,因为--cut_right效果足够强;如果--cut_front和--cut_right联用,--cut_front应该会生效。
7.5. --cut_front和--cut_tail会影响reads去重
7.6. -W,--cut_window_size和-M,--cut_mean_quality

8. 碱基校正

overlap analysis可以用来校正
默认是关闭的,-c或--correction可打开,三个参数:overlap_len_require (default 30),overlap_diff_limit (default 5),overlap_diff_limit_percent (default 20%)。

9. 首尾剪切

头尾序列质量比较差,可以去掉几次测序
9.1. -t 1或 -trim_tail1=1可剪切掉所有reads最后一次测序
9.2. -f,--trim_front1 和 -t,--trim_tail1
9.3. -F,--trim_front2 和-T,--trim_tail2
9.4. -b, --max_len1 和 -B, --max_len2最大化reads长度(具体效果不清楚)

10. polyG、polyX剪切

10.1. polyG剪切对NextSeq/NovaSeq data是默认打开的,-g 或--trim_poly_g可打开,-G 或 --disable_trim_poly_g可取消,--poly_g_min_len设置最小长度,默认10
10.2. polyX剪切默认关闭,-x or --trim_poly_x可打开。poly_x_min_len可设置最小长度,默认10

11. UMI

将umi转到reads名

12. 输出多个文件

方便多线程分析
文件名:--out1 或 --out2
文件前缀:-d 或 --split_prefix_digits
举例:--split_prefix_digits=4, --out1=out.fq, --split=3, then the output files will be 0001.out.fq,0002.out.fq,0003.out.fq
-s 或 --split,根据文件数分
-S 或 --split_by_lines,根据文件行数分

13. overrepresented sequence analysis

-P or --overrepresentation_sampling
举例:if you set -P 100, only 1/100 reads will be used for counting, and if you set -P 1, all reads will be used but it will be extremely slow.

14. 融合双末端reads

15. reads去重

默认会计算重复率,--dont_eval_duplication可关闭,原理是哈希,--dup_calc_accuracy可提高精确度,等级在1-6,越高越慢。
-D 或 --dedup可去重,设置这个后,--dont_eval_duplication无效,dup_calc_accuracy默认是3级。

16. 其他

-w:线程

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

推荐阅读更多精彩内容