Repository revision
46:f6168dd17f82

Repository 'cutadapt'
hg clone https://toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt

Cutadapt tool metadata
Miscellaneous
Cutadapt
Remove adapter sequences from FASTQ/FASTA
cutadapt
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.2+galaxy2
5.2+galaxy2
cutadapt --version
True
Version lineage of this tool (guids ordered most recent to oldest)
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.2+galaxy2 (this tool)
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.2+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.2+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.1+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/5.0+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.9+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.9+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.8+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.8+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.7+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.6+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.6+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.4+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.0+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/4.0+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.7+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.5+galaxy2
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.5+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.5+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.4+galaxy2
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.4+galaxy1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/3.4+galaxy0
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.9
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.8
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.7
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.6
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.5
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.4
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.3
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.2
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16.1
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.16
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.6
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/1.1.a
toolshed.g2.bx.psu.edu/repos/lparsons/cutadapt/cutadapt/0.9.5.a
cutadapt
Requirements (dependencies defined in the <requirements> tag set)
name version type
cutadapt 5.2 package
Additional information about this tool
#import re

## set things up for handling inputs and outputs in single- vs paired-end modes
#set library_type = str($library.type)
#if $library_type == 'single':
    #set paired = False
#else:
    #set paired = True
#end if

#if $library_type == 'paired':
    #set input_1 = $library.input_1
    #set input_2 = $library.input_2
    ## Avoid the paired read input files sharing the same name, else the program still runs but 
    ## uses inaccurate results by using only 1 of 2 files.
    #set read1 = re.sub('[^\w\-\s]', '_', str($library.input_1.element_identifier))
    #set read2 = re.sub('[^\w\-\s]', '_', str($library.input_2.element_identifier))
    #if read1 == read2:
        #set read1 = read1 + "_1"
        #set read2 = read2 + "_2"
    #end if
#elif $library_type == 'paired_collection'
    #set input_1 = $library.input_1.forward
    #set input_2 = $library.input_1.reverse
    #set read1 = re.sub('[^\w\-\s]', '_', str($library.input_1.name)) + "_1"
    #set read2 = re.sub('[^\w\-\s]', '_', str($library.input_1.name)) + "_2"
#else
    #set input_1 = $library.input_1
    #set read1 = re.sub('[^\w\-\s]', '_', str($library.input_1.element_identifier))
#end if

#if $input_1.is_of_type("fastq", "fastq.gz", "fastq.bz2"):
    #set ext = ".fq"
#else
    #set ext = ".fa"
#end if
#if $input_1.ext.endswith(".gz"):
    #set ext=ext+".gz"
#elif $input_1.ext.endswith(".bz2")
    #set ext=ext+".bz2"
#end if

#set read1 = $read1 + $ext
#set out1 = "out1" + $ext
#set rest_output = "rest_output" + $ext
#set wild_output = "wild_output" + $ext
#set too_short_output = "too_short_output" + $ext
#set too_long_output = "too_long_output" + $ext
#set untrimmed_output = "untrimmed_output" + $ext

#if $paired:
    #if $input_2.is_of_type("fastq", "fastq.gz", "fastq.bz2"):
        #set ext2 = ".fq"
    #else
        #set ext2 = ".fa"
    #end if
    #if $input_2.ext.endswith(".gz"):
        #set ext2=ext2+".gz"
    #elif $input_2.ext.endswith(".bz2")
        #set ext2=ext2+".bz2"
    #end if
    #set read2 = $read2 + $ext2
    #set out2 = "out2" + $ext2
    #set too_short_paired_output = "too_short_paired_output" + $ext2
    #set too_long_paired_output = "too_long_paired_output" + $ext2
    #set untrimmed_paired_output = "untrimmed_paired_output" + $ext2
#end if

## Link in the input and output files, so Cutadapt can tell their type
ln -f -s '$input_1' '$read1' &&
#if $paired:
    ln -f -s '$input_2' '$read2' &&
#end if
## Create dedicated output folder if needed
#if 'multiple_output' in $output_selector:
    mkdir split &&
#end if

## Run Cutadapt
cutadapt

-j=\${GALAXY_SLOTS:-4}

## Read1 trimming
#set ADAPTER_ARGUMENT="-a"
#for $a in $library.r1.adapters
    
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
#end for
#set ADAPTER_ARGUMENT="-b"
#for $a in $library.r1.anywhere_adapters
    
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
#end for
#set ADAPTER_ARGUMENT="-g"
#for $a in $library.r1.front_adapters
    
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
#end for

#if $paired:
    ## Read2 trimming
    #set ADAPTER_ARGUMENT="-A"
    #for $a in $library.r2.adapters2
        
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
    #end for
    #set ADAPTER_ARGUMENT="-B"
    #for $a in $library.r2.anywhere_adapters2
        
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
    #end for
    #set ADAPTER_ARGUMENT="-G"
    #for $a in $library.r2.front_adapters2
        
        #if $a.adapter_source.adapter_source_list == 'builtin':
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter.fields.name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #elif $a.adapter_source.adapter_source_list == 'file':
            $ADAPTER_ARGUMENT file:'${a.adapter_source.adapter_file}${a.single_noindels}'
        #elif str($a.adapter_source.adapter_name) != "":
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter_name}'='${a.adapter_source.adapter}${a.single_noindels}'
        #else:
            $ADAPTER_ARGUMENT '${a.adapter_source.adapter}${a.single_noindels}'
        #end if
    
    #end for
    $library.pair_adapters
#end if

--error-rate=$adapter_options.error_rate
--times=$adapter_options.times
--overlap=$adapter_options.overlap
$adapter_options.no_indels
$adapter_options.match_read_wildcards
$adapter_options.no_match_adapter_wildcards
--action=$adapter_options.action
$adapter_options.revcomp

#if $other_trimming_options.cut != 0:
    --cut=$other_trimming_options.cut
#end if
#if $paired and $other_trimming_options.cut2 != 0:
    -U $other_trimming_options.cut2
#end if
#if str($other_trimming_options.quality_cutoff) != '0':
    --quality-cutoff=$other_trimming_options.quality_cutoff
#end if
#if $paired and str($other_trimming_options.quality_cutoff2) != '':
    -Q $other_trimming_options.quality_cutoff2
#end if
#if str($other_trimming_options.nextseq_trim) != '0':
    --nextseq-trim=$other_trimming_options.nextseq_trim
#end if
$other_trimming_options.trim_n
$other_trimming_options.poly_a
#if str($other_trimming_options.shorten_options.shorten_values) == 'True':
    #if str($other_trimming_options.shorten_options.shorten_end) == '3prime'
        --length=$other_trimming_options.shorten_options.length
    #else
        --length=-$other_trimming_options.shorten_options.length
    #end if
#end if
#if $paired and str($other_trimming_options.shorten_options_r2.shorten_values_r2) == 'True':
    #if str($other_trimming_options.shorten_options_r2.shorten_end_r2) == '3prime'
        -L $other_trimming_options.shorten_options_r2.length2
    #else
        -L -$other_trimming_options.shorten_options_r2.length2
    #end if
#end if

$filter_options.discard_trimmed
$filter_options.discard_untrimmed

#if $paired and str($filter_options.minimum_length2):
    --minimum-length=$filter_options.minimum_length:$filter_options.minimum_length2
#elif $filter_options.minimum_length > 0:
    --minimum-length=$filter_options.minimum_length
#end if
#if $paired and str($filter_options.maximum_length2):
    --maximum-length=$filter_options.maximum_length:$filter_options.maximum_length2
#elif str($filter_options.maximum_length):
    --maximum-length=$filter_options.maximum_length
#end if
#if str($filter_options.max_n):
    --max-n=$filter_options.max_n
#end if
#if str($filter_options.max_expected_errors):
    --max-ee=$filter_options.max_expected_errors
#end if
#if str($filter_options.max_average_error_rate):
    --max-aer=$filter_options.max_average_error_rate
#end if
$filter_options.discard_casava
#if $paired and str($filter_options.pair_filter) != 'any':
    --pair-filter=$filter_options.pair_filter
#end if

#if $input_1.ext.startswith("fastqillumina") or $input_1.ext.startswith("fastqsolexa")
    --quality-base=64
#end if

#if $read_mod_options.strip_suffix != ''
    --strip-suffix='$read_mod_options.strip_suffix'
#end if
#if str($read_mod_options.length_tag) != '':
    --length-tag='$read_mod_options.length_tag'
#end if
#if str($read_mod_options.rename) != '':
    --rename='$read_mod_options.rename'
#end if
$read_mod_options.zero_cap

## Outputs handling
#if 'json_stats' in $output_selector:
    --json=stats.json
#end if
#if 'info_file' in $output_selector:
    --info-file='$info_file'
    #if 'info_file_paired' in $output_selector:
        --info-file-paired='$info_file_paired'
    #end if
#end if
#if 'rest_file' in $output_selector:
    -r='${rest_output}'
#end if
#if 'wildcard_file' in $output_selector:
    --wildcard-file='${wild_output}'
#end if
#if 'too_short_file' in $output_selector:
    --too-short-output='${too_short_output}'
    #if $paired:
        --too-short-paired-output='${too_short_paired_output}'
    #end if
#end if
#if 'too_long_file' in $output_selector:
    --too-long-output='${too_long_output}'
    #if $paired:
        --too-long-paired-output='${too_long_paired_output}'
    #end if
#end if
#if 'untrimmed_file' in $output_selector:
    --untrimmed-output='${untrimmed_output}'
    #if $paired:
        --untrimmed-paired-output='${untrimmed_paired_output}'
    #end if
#end if
#if not $paired and 'multiple_output' in $output_selector:
    -o 'split/{name}.${input_1.ext}'
#else:
    -o '$out1'
    #if $paired:
        -p '$out2'
    #end if
#end if

'$read1'
#if $paired:
    '$read2'
#end if

#if 'report' in $output_selector:
    > report.txt
#end if
    
None
False
Functional tests
name inputs outputs required files
Test-1
Test-2
Test-3
Test-4
Test-5
Test-6
Test-7
Test-8
Test-9
Test-10
Test-11
Test-12 library|input_1: cutadapt_in_split.fastq
library|r1|front_adapters_0|adapter_source|adapter_name: A1
library|r1|front_adapters_0|adapter_source|adapter: ^GTCGGTAA
library|r1|front_adapters_0|adapter_source|adapter_source_list: user
library|r1|front_adapters_1|adapter_source|adapter_name: A2
library|r1|front_adapters_1|adapter_source|adapter: ^AGGTCACT
library|r1|front_adapters_1|adapter_source|adapter_source_list: user
library|type: single
output_selector: multiple_output
cutadapt_in_split.fastq
Test-13 library|input_1: cutadapt_in_split.fastq.gz
library|r1|front_adapters_0|adapter_source|adapter_file: barcodes.fasta
library|r1|front_adapters_0|adapter_source|adapter_source_list: file
library|type: single
output_selector: multiple_output
cutadapt_in_split.fastq.gz
barcodes.fasta
Test-14
Test-15
Test-16
Test-17
Test-18
Test-19
Test-20
Test-21
Test-22
Test-23
Test-24
Test-25
Test-26
Test-27
Test-28
Test-29
Test-30
Test-31
Test-32
Test-33
Test-34
Test-35
Test-36
Test-37
Test-38
Test-39
Test-40
Test-41
Test-42
Test-43
Test-44
Test-45
Test-46
Test-47
Test-48
Test-49