Repository revision
11:c59d48774d03

Repository 'fastp'
hg clone https://toolshed.g2.bx.psu.edu/repos/iuc/fastp

fastp tool metadata
Miscellaneous
fastp
fast all-in-one preprocessing for FASTQ files
fastp
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.23.4+galaxy0
0.23.4+galaxy0
fastp -v
True
Version lineage of this tool (guids ordered most recent to oldest)
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.23.4+galaxy0 (this tool)
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.23.2+galaxy0
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.20.1+galaxy0
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.5+galaxy1
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.5
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.3.3
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.3.2
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.3.1
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.19.3.0
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.18.0.0
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.12.5.0
toolshed.g2.bx.psu.edu/repos/iuc/fastp/fastp/0.12.4.0
fastp
Requirements (dependencies defined in the <requirements> tag set)
name version type
fastp 0.23.4 package
Additional information about this tool
#import re

## Link input files

#set ext = '.fastq'

#if $single_paired.single_paired_selector == 'paired_collection':
    #if $single_paired.paired_input.forward.is_of_type('fastq.gz'):
        #set ext = '.fastq.gz'
    #end if
    #set $in1 = $single_paired.paired_input.forward
    #set $in2 = $single_paired.paired_input.reverse
    #set $in1_name = re.sub('[^\w\-\s]', '_', str($single_paired.paired_input.name)) + $ext
    #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_%s" % ($single_paired.paired_input.name, "R2"))) + $ext
    #set out1 = $output_paired_coll.forward
    #set out2 = $output_paired_coll.reverse
    ln -sf '$in1' '$in1_name' &&
    ln -sf '$in2' '$in2_name' &&
#else
    #if $in1.is_of_type('fastq.gz')
        #set ext = '.fastq.gz'
    #end if

    #set $in1_name = re.sub('[^\w\-\s]', '_', str($in1.element_identifier)) + $ext
    ln -sf '$in1' '$in1_name' &&

    #if str($single_paired.single_paired_selector) == 'paired':
        #set $in2_name = re.sub('[^\w\-\s]', '_', str("%s_R2" % $in2.element_identifier)) + $ext
        ln -sf '$in2' '$in2_name' &&
    #end if
#end if


## Run fastp

fastp

--thread \${GALAXY_SLOTS:-1}
--report_title 'fastp report for $in1_name'

#if $in1.is_of_type('fastqillumina', 'fastqsolexa', 'fastqillumina.gz', 'fastqsolexa.gz'):
    --phred64
#end if

-i '$in1_name'
-o first${ext}

#if str($single_paired.single_paired_selector).startswith('paired'):
    -I '$in2_name'
    -O second${ext}
#end if


## Adapter Trimming Options

$single_paired.adapter_trimming_options.disable_adapter_trimming

#if str($single_paired.adapter_trimming_options.adapter_sequence1):
    --adapter_sequence '$single_paired.adapter_trimming_options.adapter_sequence1'
#end if

#if str($single_paired.single_paired_selector).startswith('paired'):
    #if str($single_paired.adapter_trimming_options.adapter_sequence2):
        --adapter_sequence_r2 '$single_paired.adapter_trimming_options.adapter_sequence2'
    #else
        --detect_adapter_for_pe
    #end if
#end if


## Global Trimming Options

#if str($single_paired.global_trimming_options.trim_front1):
    -f $single_paired.global_trimming_options.trim_front1
#end if

#if str($single_paired.global_trimming_options.trim_tail1):
    -t $single_paired.global_trimming_options.trim_tail1
#end if

#if str($single_paired.single_paired_selector).startswith('paired'):
    #if str($single_paired.global_trimming_options.trim_front2):
        -F $single_paired.global_trimming_options.trim_front2
    #end if
    #if str($single_paired.global_trimming_options.trim_tail2):
        -T $single_paired.global_trimming_options.trim_tail2
    #end if
#end if


## Overrepresented sequence analysis

$overrepresented_sequence_analysis.overrepresentation_analysis

#if str($overrepresented_sequence_analysis.overrepresentation_sampling):
    -P $overrepresented_sequence_analysis.overrepresentation_sampling
#end if


## Filter Options

## Quality filtering options

$filter_options.quality_filtering_options.disable_quality_filtering

#if str($filter_options.quality_filtering_options.qualified_quality_phred):
    -q $filter_options.quality_filtering_options.qualified_quality_phred
#end if
#if str($filter_options.quality_filtering_options.unqualified_percent_limit):
    -u $filter_options.quality_filtering_options.unqualified_percent_limit
#end if
#if str($filter_options.quality_filtering_options.n_base_limit):
    -n $filter_options.quality_filtering_options.n_base_limit
#end if


## Length filtering options

$filter_options.length_filtering_options.disable_length_filtering

#if str($filter_options.length_filtering_options.length_required):
    -l $filter_options.length_filtering_options.length_required
#end if

#if str($filter_options.length_filtering_options.length_limit):
    --length_limit $filter_options.length_filtering_options.length_limit
#end if

## Low complexity filtering options

$filter_options.low_complexity_filter.enable_low_complexity_filter

#if str($filter_options.low_complexity_filter.complexity_threshold):
    -Y $filter_options.low_complexity_filter.complexity_threshold
#end if


## Read Modification Options

## PolyG tail trimming, useful for NextSeq/NovaSeq data

#if $read_mod_options.polyg_tail_trimming.trimming_select in ['', '-g']:
    #if str($read_mod_options.polyg_tail_trimming.poly_g_min_len):
        --poly_g_min_len $read_mod_options.polyg_tail_trimming.poly_g_min_len
    #end if
    $read_mod_options.polyg_tail_trimming.trimming_select
#end if

## PolyX tail trimming

#if $read_mod_options.polyx_tail_trimming.polyx_trimming_select == '-x':
    $read_mod_options.polyx_tail_trimming.polyx_trimming_select
    #if str($read_mod_options.polyx_tail_trimming.poly_x_min_len):
        --poly_x_min_len $read_mod_options.polyx_tail_trimming.poly_x_min_len
    #end if
#end if

## UMI processing

#if $read_mod_options.umi_processing.umi:
    $read_mod_options.umi_processing.umi
    #if str($read_mod_options.umi_processing.umi_loc):
        --umi_loc '$read_mod_options.umi_processing.umi_loc'
    #end if
    #if str($read_mod_options.umi_processing.umi_len):
        --umi_len $read_mod_options.umi_processing.umi_len
    #end if
    #if str($read_mod_options.umi_processing.umi_prefix):
        --umi_prefix '$read_mod_options.umi_processing.umi_prefix'
    #end if
#end if

## Per read cutting by quality options

#if $read_mod_options.cutting_by_quality_options.cut_by_quality5 or $read_mod_options.cutting_by_quality_options.cut_by_quality3:

    $read_mod_options.cutting_by_quality_options.cut_by_quality5

    $read_mod_options.cutting_by_quality_options.cut_by_quality3

    #if str($read_mod_options.cutting_by_quality_options.cut_window_size):
        -W $read_mod_options.cutting_by_quality_options.cut_window_size
    #end if
    #if str($read_mod_options.cutting_by_quality_options.cut_mean_quality):
        -M $read_mod_options.cutting_by_quality_options.cut_mean_quality
    #end if
#end if

## Base correction by overlap analysis options

$read_mod_options.base_correction_options.correction

&&

mv first${ext} '${out1}'
#if str($single_paired.single_paired_selector).startswith('paired'):
    &&
    mv second${ext} '${out2}'
#end if
None
False
Functional tests
name inputs outputs required files
Test-1 single_paired|in1: R1.fq
single_paired|single_paired_selector: single
name: value
name: value
R1.fq
value
Test-2 single_paired|paired_input: paired collection
single_paired|single_paired_selector: paired_collection
name: value
bwa-mem-fastq1.fq
bwa-mem-fastq2.fq
value
Test-3 single_paired|in1: R1.fq
single_paired|adapter_trimming_options|adapter_sequence1: ATCG
single_paired|single_paired_selector: single
name: value
R1.fq
value
Test-4 single_paired|in1: R1.fq
single_paired|single_paired_selector: single
read_mod_options|umi_processing|umi: True
read_mod_options|umi_processing|umi_loc: read1
read_mod_options|umi_processing|umi_len: 8
name: value
R1.fq
value
Test-5 single_paired|in1: R1.fq
single_paired|single_paired_selector: single
read_mod_options|umi_processing|umi: True
read_mod_options|umi_processing|umi_loc: read1
read_mod_options|umi_processing|umi_len: 12
name: value
R1.fq
value
Test-6 single_paired|in1: bwa-mem-fastq1.fq
single_paired|in2: bwa-mem-fastq2.fq
single_paired|single_paired_selector: paired
name: value
name: value
bwa-mem-fastq1.fq
bwa-mem-fastq2.fq
value
Test-7 single_paired|in1: bwa-mem-fastq1.fq
single_paired|in2: bwa-mem-fastq2.fq
single_paired|single_paired_selector: paired
read_mod_options|umi_processing|umi: True
read_mod_options|umi_processing|umi_loc: read1
read_mod_options|umi_processing|umi_len: 8
name: value
name: value
bwa-mem-fastq1.fq
bwa-mem-fastq2.fq
value
Test-8 single_paired|in1: bwa-mem-fastq1.fq
single_paired|in2: bwa-mem-fastq2.fq
single_paired|single_paired_selector: paired
read_mod_options|umi_processing|umi: True
read_mod_options|umi_processing|umi_loc: read2
read_mod_options|umi_processing|umi_len: 8
name: value
name: value
bwa-mem-fastq1.fq
bwa-mem-fastq2.fq
value
Test-9 single_paired|in1: R1.fq
single_paired|single_paired_selector: single
output_options|report_html: False
output_options|report_json: True
name: value
name: value
R1.fq
value
Test-10 single_paired|in1: R1.fq.gz
single_paired|single_paired_selector: single
read_mod_options|polyg_tail_trimming|poly_g_min_len: 10
read_mod_options|polyg_tail_trimming|trimming_select: -g
name: value
R1.fq.gz
value
Test-11 single_paired|in1: R1.fq.gz
single_paired|single_paired_selector: single
read_mod_options|polyg_tail_trimming|trimming_select: -G
read_mod_options|polyx_tail_trimming|poly_x_min_len: 10
read_mod_options|polyx_tail_trimming|polyx_trimming_select: -x
name: value
R1.fq.gz
value
Test-12 single_paired|paired_input: paired collection
single_paired|single_paired_selector: paired_collection
bwa-mem-fastq1.fq
bwa-mem-fastq2_too_long.fq