FASTP(1)

πŸ“¦
version 1.0.1 Β· 2 versions
  • 1.0.1 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 0.20.1 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

✨ NAME ✨

fastp β€” Ultra-fast all-in-one FASTQ preprocessor. (Yes bestie, this is FASTP(1), User Commands, and she's that girl. πŸ’…)


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so fastp is an ultra-fast all-in-one FASTQ preprocessor, version 0.23.0, and the usage is literally:

fastp [options] ...

options:

bestie, defaults are doing main character energy here β€” read them before you override, fr fr.
  • -i, --in1 β€” read1 input file name (string [=]) πŸ’–
  • -o, --out1 β€” read1 output file name (string [=]) ✨
  • -I, --in2 β€” read2 input file name (string [=]) πŸŽ€
  • -O, --out2 β€” read2 output file name (string [=]) πŸ¦‹
  • --unpaired1 β€” for PE input, if read1 passed QC but read2 not, it will be written to unpaired1. Default is to discard it. (string [=]) 🌸
  • --unpaired2 β€” for PE input, if read2 passed QC but read1 not, it will be written to unpaired2. If --unpaired2 is same as --unpaired1 (default mode), both unpaired reads will be written to this same file. (string [=]) πŸ’…
  • --overlapped_out β€” for each read pair, output the overlapped region if it has no any mismatched base. (string [=]) 🫢
  • --failed_out β€” specify the file to store reads that cannot pass the filters. (string [=]) 😭
  • -m, --merge β€” for paired-end input, merge each pair of reads into a single read if they are overlapped. The merged reads will be written to the file given by --merged_out, the unmerged reads will be written to the files specified by --out1 and --out2. The merging mode is disabled by default. πŸ”₯
  • --merged_out β€” in the merging mode, specify the file name to store merged output, or specify --stdout to stream the merged output (string [=]) πŸ‘‘
  • --include_unmerged β€” in the merging mode, write the unmerged or unpaired reads to the file specified by --merge. Disabled by default. 🌈
  • -6, --phred64 β€” indicate the input is using phred64 scoring (it'll be converted to phred33, so the output will still be phred33) ⭐
  • -z, --compression β€” compression level for gzip output (1 ~ 9). 1 is fastest, 9 is smallest, default is 4. (int [=4]) πŸ’€
  • --stdin β€” input from STDIN. If the STDIN is interleaved paired-end FASTQ, please also add --interleaved_in. πŸ™ˆ
  • --stdout β€” stream passing-filters reads to STDOUT. This option will result in interleaved FASTQ output for paired-end output. Disabled by default. πŸ“
  • --interleaved_in β€” indicate that <in1> is an interleaved FASTQ which contains both read1 and read2. Disabled by default. 🧚
  • --reads_to_process β€” specify how many reads/pairs to be processed. Default 0 means process all reads. (int [=0]) πŸ’œ
  • --dont_overwrite β€” don't overwrite existing files. Overwritting is allowed by default. πŸ’–
  • --fix_mgi_id β€” the MGI FASTQ ID format is not compatible with many BAM operation tools, enable this option to fix it. ✨
  • -V, --verbose β€” output verbose log information (i.e. when every 1M reads are processed). πŸŽ€
  • -A, --disable_adapter_trimming β€” adapter trimming is enabled by default. If this option is specified, adapter trimming is disabled πŸ¦‹
  • -a, --adapter_sequence β€” the adapter for read1. For SE data, if not specified, the adapter will be auto-detected. For PE data, this is used if R1/R2 are found not overlapped. (string [=auto]) 🌸
  • --adapter_sequence_r2 β€” the adapter for read2 (PE data only). This is used if R1/R2 are found not overlapped. If not specified, it will be the same as <adapter_sequence> (string [=auto]) πŸ’…
  • --adapter_fasta β€” specify a FASTA file to trim both read1 and read2 (if PE) by all the sequences in this FASTA file (string [=]) 🫢
  • --detect_adapter_for_pe β€” by default, the auto-detection for adapter is for SE data input only, turn on this option to enable it for PE data. 😭
  • -f, --trim_front1 β€” trimming how many bases in front for read1, default is 0 (int [=0]) πŸ”₯
  • -t, --trim_tail1 β€” trimming how many bases in tail for read1, default is 0 (int [=0]) πŸ‘‘
  • -b, --max_len1 β€” if read1 is longer than max_len1, then trim read1 at its tail to make it as long as max_len1. Default 0 means no limitation (int [=0]) 🌈
  • -F, --trim_front2 β€” trimming how many bases in front for read2. If it's not specified, it will follow read1's settings (int [=0]) ⭐
  • -T, --trim_tail2 β€” trimming how many bases in tail for read2. If it's not specified, it will follow read1's settings (int [=0]) πŸ’€
  • -B, --max_len2 β€” if read2 is longer than max_len2, then trim read2 at its tail to make it as long as max_len2. Default 0 means no limitation. If it's not specified, it will follow read1's settings (int [=0]) πŸ™ˆ
  • -D, --dedup β€” enable deduplication to drop the duplicated reads/pairs πŸ“
  • --dup_calc_accuracy β€” accuracy level to calculate duplication (1~6), higher level uses more memory (1G, 2G, 4G, 8G, 16G, 24G). Default 1 for no-dedup mode, and 3 for dedup mode. (int [=0]) 🧚
  • --dont_eval_duplication β€” don't evaluate duplication rate to save time and use less memory. πŸ’œ
  • -g, --trim_poly_g β€” force polyG tail trimming, by default trimming is automatically enabled for Illumina NextSeq/NovaSeq data πŸ’–
  • --poly_g_min_len β€” the minimum length to detect polyG in the read tail. 10 by default. (int [=10]) ✨
  • -G, --disable_trim_poly_g β€” disable polyG tail trimming, by default trimming is automatically enabled for Illumina NextSeq/NovaSeq data πŸŽ€
  • -x, --trim_poly_x β€” enable polyX trimming in 3' ends. πŸ¦‹
  • --poly_x_min_len β€” the minimum length to detect polyX in the read tail. 10 by default. (int [=10]) 🌸
  • -5, --cut_front β€” move a sliding window from front (5') to tail, drop the bases in the window if its mean quality < threshold, stop otherwise. πŸ’…
  • -3, --cut_tail β€” move a sliding window from tail (3') to front, drop the bases in the window if its mean quality < threshold, stop otherwise. 🫢
  • -r, --cut_right β€” move a sliding window from front to tail, if meet one window with mean quality < threshold, drop the bases in the window and the right part, and then stop. 😭
  • -W, --cut_window_size β€” the window size option shared by cut_front, cut_tail or cut_sliding. Range: 1~1000, default: 4 (int [=4]) πŸ”₯
  • -M, --cut_mean_quality β€” the mean quality requirement option shared by cut_front, cut_tail or cut_sliding. Range: 1~36 default: 20 (Q20) (int [=20]) πŸ‘‘
  • --cut_front_window_size β€” the window size option of cut_front, default to cut_window_size if not specified (int [=4]) 🌈
  • --cut_front_mean_quality β€” the mean quality requirement option for cut_front, default to cut_mean_quality if not specified (int [=20]) ⭐
  • --cut_tail_window_size β€” the window size option of cut_tail, default to cut_window_size if not specified (int [=4]) πŸ’€
  • --cut_tail_mean_quality β€” the mean quality requirement option for cut_tail, default to cut_mean_quality if not specified (int [=20]) πŸ™ˆ
  • --cut_right_window_size β€” the window size option of cut_right, default to cut_window_size if not specified (int [=4]) πŸ“
  • --cut_right_mean_quality β€” the mean quality requirement option for cut_right, default to cut_mean_quality if not specified (int [=20]) 🧚
  • -Q, --disable_quality_filtering β€” quality filtering is enabled by default. If this option is specified, quality filtering is disabled πŸ’œ
  • -q, --qualified_quality_phred β€” the quality value that a base is qualified. Default 15 means phred quality >=Q15 is qualified. (int [=15]) πŸ’–
  • -u, --unqualified_percent_limit β€” how many percents of bases are allowed to be unqualified (0~100). Default 40 means 40% (int [=40]) ✨
  • -n, --n_base_limit β€” if one read's number of N base is >n_base_limit, then this read/pair is discarded. Default is 5 (int [=5]) πŸŽ€
  • -e, --average_qual β€” if one read's average quality score <avg_qual, then this read/pair is discarded. Default 0 means no requirement (int [=0]) πŸ¦‹
  • -L, --disable_length_filtering β€” length filtering is enabled by default. If this option is specified, length filtering is disabled 🌸
  • -l, --length_required β€” reads shorter than length_required will be discarded, default is 15. (int [=15]) πŸ’…
  • --length_limit β€” reads longer than length_limit will be discarded, default 0 means no limitation. (int [=0]) 🫢
  • -y, --low_complexity_filter β€” enable low complexity filter. The complexity is defined as the percentage of base that is different from its next base (base[i] != base[i+1]). 😭
  • -Y, --complexity_threshold β€” the threshold for low complexity filter (0~100). Default is 30, which means 30% complexity is required. (int [=30]) πŸ”₯
  • --filter_by_index1 β€” specify a file contains a list of barcodes of index1 to be filtered out, one barcode per line (string [=]) πŸ‘‘
  • --filter_by_index2 β€” specify a file contains a list of barcodes of index2 to be filtered out, one barcode per line (string [=]) 🌈
  • --filter_by_index_threshold β€” the allowed difference of index barcode for index filtering, default 0 means completely identical. (int [=0]) ⭐
  • -c, --correction β€” enable base correction in overlapped regions (only for PE data), default is disabled πŸ’€
  • --overlap_len_require β€” the minimum length to detect overlapped region of PE reads. This will affect overlap analysis based PE merge, adapter trimming and correction. 30 by default. (int [=30]) πŸ™ˆ
  • --overlap_diff_limit β€” the maximum number of mismatched bases to detect overlapped region of PE reads. This will affect overlap analysis based PE merge, adapter trimming and correction. 5 by default. (int [=5]) πŸ“
  • --overlap_diff_percent_limit β€” the maximum percentage of mismatched bases to detect overlapped region of PE reads. This will affect overlap analysis based PE merge, adapter trimming and correction. Default 20 means 20%. (int [=20]) 🧚
  • -U, --umi β€” enable unique molecular identifier (UMI) preprocessing πŸ’œ
  • --umi_loc β€” specify the location of UMI, can be (index1/index2/read1/read2/per_index/per_read, default is none (string [=]) πŸ’–
  • --umi_len β€” if the UMI is in read1/read2, its length should be provided (int [=0]) ✨

okay that's all the options in part 1 β€” part 2 is coming, don't go anywhere bestie πŸ’–

  • --umi_prefix β€” bestie, if you set this, an underline is gonna glue your prefix and your UMI together like they're holding hands 🫢 so like prefix=UMI, UMI=AATTCG, and boom, the final result is UMI_AATTCG. No prefix by default. (string [=])
  • --umi_skip β€” if your UMI is chillin' in read1/read2, fastp can skip a few bases right after the UMI, no questions asked. Default is 0, so it skips nothing unless you tell it to. (int [=0])
  • -p, --overrepresentation_analysis β€” turns on overrepresented sequence analysis. Basically fastp goes πŸ‘€ at sequences that show up way too much.
  • -P, --overrepresentation_sampling β€” one in (--overrepresentation_sampling) reads gets computed for the overrepresentation analysis, and the valid range is 1~10000. Smaller number = slower, bc obviously you're checking more reads. Default is 20. (int [=20])
  • -j, --json β€” the name for your json format report file. (string [=fastp.json])
  • -h, --html β€” the name for your html format report file. (string [=fastp.html])
  • -R, --report_title β€” the title of your report, and ngl you have to quote it with ' or " or it'll be mad at you. Default is "fastp report". (string [=fastp report])
  • -w, --thread β€” how many worker threads you want doing the actual work. Default is 3. (int [=3])
  • -s, --split β€” splits your output by capping the total number of split files with this option (2~999). A sequential number prefix gets added to the output name, so you get stuff like 0001.out.fq, 0002.out.fq, and so on. It's disabled by default, so nothing splits unless you ask. (int [=0])
  • -S, --split_by_lines β€” splits your output by capping the number of lines per file with this option (>=1000). Same deal, a sequential number prefix gets added to the output name (0001.out.fq, 0002.out.fq...). Disabled by default. (long [=0])
  • -d, --split_prefix_digits β€” how many digits go into padding that sequential number, valid range is 1~10, default is 4, so your filenames get padded like 0001.xxx. Set it to 0 to disable padding entirely. (int [=4])
  • --cut_by_quality5 β€” DEPRECATED, use --cut_front instead. She's retired, okay? πŸ’…
  • --cut_by_quality3 β€” DEPRECATED, use --cut_tail instead. Also retired, move on bestie.
  • --cut_by_quality_aggressive β€” DEPRECATED, use --cut_right instead. Yeah she's gone too.
  • --discard_unmerged β€” DEPRECATED and it does literally nothing now, no cap. See the introduction for merging. It's giving ghost of options past πŸ‘»
  • -?, --help β€” prints this message. That's it, that's the whole job. πŸŽ€

πŸ’– AUTHOR πŸ’–

This manpage was written by Nilesh Patra for the Debian distribution and can be used for any other usage of the program. Shoutout to him, fr fr πŸ™Œ


And that's the whole page, bestie!! This was fastp 0.23.0, dated October 2021, living in section FASTP(1) of your manual. Go read your reads and slay βœ¨πŸ’…πŸ¦‹

πŸ“¦ where this page comes from