| Miscellaneous |
| 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
| 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 |