fastp

RNA-Seq
Trimming
Quality control

Description

An ultra-fast all-in-one FASTQ preprocessor (QC/adapters/trimming/filtering/splitting/merging...).

Features:

  • comprehensive quality profiling for both before and after filtering data (quality curves, base contents, KMER, Q20/Q30, GC Ratio, duplication, adapter contents...)

  • filter out bad reads (too low quality, too short, or too many N...)

  • cut low quality bases for per read in its 5' and 3' by evaluating the mean quality from a sliding window (like Trimmomatic but faster).

  • trim all reads in front and tail

  • cut adapters. Adapter sequences can be automatically detected, which means you don't have to input the adapter sequences to trim them.

  • correct mismatched base pairs in overlapped regions of paired end reads, if one base is with high quality while the other is with ultra low quality

  • trim polyG in 3' ends, which is commonly seen in NovaSeq/NextSeq data. Trim polyX in 3' ends to remove unwanted polyX tailing (i.e. polyA tailing for mRNA-Seq data)

  • preprocess unique molecular identifier (UMI) enabled data, shift UMI to sequence name.

  • report JSON format result for further interpreting.

  • visualize quality control and filtering results on a single HTML page (like FASTQC but faster and more informative).

  • split the output to multiple files (0001.R1.gz, 0002.R1.gz...) to support parallel processing. Two modes can be used, limiting the total split file number, or limitting the lines of each split file.

  • support long reads (data from PacBio / Nanopore devices).

  • support reading from STDIN and writing to STDOUT

  • support interleaved input

  • support ultra-fast FASTQ-level deduplication

Type

bash_script

License

MIT

Keywords

RNA-Seq
Trimming
Quality control

Contributors

Run this component

Run the following command to execute this component with Nextflow:

cat > params.yaml <<'EOM'  
out1: "$id.$key.out1.gz"  
out2: "$id.$key.out2.gz"  
unpaired1: "$id.$key.unpaired1.gz"  
unpaired2: "$id.$key.unpaired2.gz"  
failed_out: "$id.$key.failed_out.gz"  
overlapped_out: "$id.$key.overlapped_out"  
json: "$id.$key.json.json"  
html: "$id.$key.html.html"  
merged_out: "$id.$key.merged_out.gz"  
id: "run"  
publish_dir: "output/"  
EOM

nextflow run https://packages.viash-hub.com/vsh/biobox.git \  
  -revision v0.3.0 \  
  -main-script target/nextflow/fastp/main.nf \  
  -params-file params.yaml  

Inputs

Name
Type & Properties
--in1
-i
file
required
--in2
-I
file

Outputs

Name
Type & Properties
--out1
-o
file
required
output
--out2
-O
file
output
--unpaired1
file
output
--unpaired2
file
output
--failed_out
file
output
--overlapped_out
file
output

Report output arguments

Name
Type & Properties
--json
-j
file
output
--html
file
output
--report_title
string

Adapter trimming

Name
Type & Properties
--disable_adapter_trimming
-A
boolean_true
--detect_adapter_for_pe
boolean_true
--adapter_sequence
-a
string
--adapter_sequence_r2
string
--adapter_fasta
file

Base trimming

Name
Type & Properties
--trim_front1
-f
integer
--trim_tail1
-t
integer
--max_len1
-b
integer
--trim_front2
-F
integer
--trim_tail2
-T
integer
--max_len2
-B
integer

Merging mode

Name
Type & Properties
--merge
-m
boolean_true
--merged_out
file
output
--include_unmerged
boolean_true

Additional input arguments

Name
Type & Properties
--interleaved_in
boolean_true
--fix_mgi_id
boolean_true
--phred64
-6
boolean_true

Additional output arguments

Name
Type & Properties
--compression
-z
integer
--dont_overwrite
boolean_true

Logging arguments

Name
Type & Properties
--verbose
-V
boolean_true

Processing arguments

Name
Type & Properties
--reads_to_process
long

Deduplication arguments

Name
Type & Properties
--dedup
boolean_true
--dup_calc_accuracy
integer
--dont_eval_duplication
boolean_true

PolyG tail trimming arguments

Name
Type & Properties
--trim_poly_g
-g
boolean_true
--poly_g_min_len
integer
--disable_trim_poly_g
-G
boolean_true

PolyX tail trimming arguments

Name
Type & Properties
--trim_poly_x
-x
boolean_true
--poly_x_min_len
integer

Cut arguments

Name
Type & Properties
--cut_front
-5
integer
--cut_tail
-3
integer
--cut_right
-r
integer
--cut_window_size
-W
integer
--cut_mean_quality
-M
integer
--cut_front_window_size
integer
--cut_front_mean_quality
integer
--cut_tail_window_size
integer
--cut_tail_mean_quality
integer
--cut_right_window_size
integer
--cut_right_mean_quality
integer

Quality filtering arguments

Name
Type & Properties
--disable_quality_filtering
-Q
boolean_true
--qualified_quality_phred
-q
integer
--unqualified_percent_limit
-u
integer
--n_base_limit
-n
integer
--average_qual
-e
integer

Length filtering arguments

Name
Type & Properties
--disable_length_filtering
-L
boolean_true
--length_required
-l
integer
--length_limit
integer

Low complexity filtering arguments

Name
Type & Properties
--low_complexity_filter
-y
boolean_true
--complexity_threshold
-Y
integer

Index filtering arguments

Name
Type & Properties
--filter_by_index1
file
--filter_by_index2
file
--filter_by_index_threshold
integer

Overlapped region correction

Name
Type & Properties
--correction
-c
boolean_true
--overlap_len_require
integer
--overlap_diff_limit
integer
--overlap_diff_percent_limit
integer

UMI arguments

Name
Type & Properties
--umi
-U
boolean_true
--umi_loc
string
--umi_len
integer
--umi_prefix
string
--umi_skip
integer
--umi_delim
string

Overrepresentation analysis arguments

Name
Type & Properties
--overrepresentation_analysis
-p
boolean_true
--overrepresentation_sampling
integer

Collaborate Accelerate Succeed

Empower your organization with secure, scalable workflow solutions that simplify development, ensure compliance, and drive innovation.

Viash Hub is a platform developed by Data Intuitive, a Belgian-based bioinformatics company specializing in data workflow development and deployment.