Mercurial > repos > nick > sequence_content_trimmer
diff trimmer.xml @ 1:7ef568cbf13b draft
"planemo upload commit 9a5d91c35d21411a0733cd233ca588ff358aabd8-dirty"
| author | nick |
|---|---|
| date | Fri, 27 May 2022 22:44:01 +0000 |
| parents | c824894e0827 |
| children | a8fd651dcbd9 |
line wrap: on
line diff
--- a/trimmer.xml Tue Dec 01 21:11:51 2015 -0500 +++ b/trimmer.xml Fri May 27 22:44:01 2022 +0000 @@ -1,27 +1,31 @@ -<tool id="sequence_content_trimmer" version="0.1" name="Sequence Content Trimmer"> +<?xml version="1.0"?> +<tool id="sequence_content_trimmer" version="0.2.1" name="Sequence Content Trimmer"> <description>trim reads based on certain bases</description> - <command interpreter="python"> - trimmer.py $input1 - #if $paired.is_paired: - $input2 $output1 $output2 - #if ('fasta' in $input1.extension and 'fastq' in $input2.extension) or ('fastq' in $input1.extension and 'fasta' in $input2.extension) - --error 'Both input files must be either fastq or fasta (no mixing the two).' + <command detect_errors="exit_code"><![CDATA[ + #if $paired.is_paired and (('fasta' in $input1.extension and 'fastq' in $input2.extension) or \ + ('fastq' in $input1.extension and 'fasta' in $input2.extension)) + echo 'Both input files must be either fastq or fasta (no mixing the two).' >&2 + #else + trimmer.py $input1 + #if $paired.is_paired: + $input2 $output1 $output2 + #end if + #if $input1.extension in ('fastq', 'fastqsanger', 'fastqillumina', 'fastqsolexa') + -f fastq + #elif $input1.extension == 'fasta' + -f fasta + #else + -f $input1.extension + #end if + -b $bases -t $thres -w $win_len $invert + #if $min_len.has_min_len: + -m $min_len.value + #end if + #if not $paired.is_paired: + > $output1 #end if #end if - #if $input1.extension == 'fastq' or $input1.extension == 'fastqsanger' or $input1.extension == 'fastqillumina' or $input1.extension == 'fastqsolexa' - -f fastq - #elif $input1.extension == 'fasta' - -f fasta - #else - -f $input1.extension - #end if - -b $bases -t $thres -w $win_len $invert - #if $min_len.has_min_len: - -m $min_len.value - #end if - #if not $paired.is_paired: - > $output1 - #end if + ]]> </command> <inputs> <conditional name="paired"> @@ -38,7 +42,7 @@ </when> </conditional> <param name="bases" type="text" value="N" label="Bases to filter on"/> - <param name="thres" type="float" value="0.5" min="0" max="1" label="Frequency threshold" help="trim when the frequency of filter bases (or non-filter bases, if inverting) exceeds this value."/> + <param name="thres" type="float" value="0.5" min="0" max="1" label="Frequency threshold" help="Trim when the frequency of filter bases (or non-filter bases, if inverting) exceeds this value."/> <param name="win_len" type="integer" value="10" min="1" label="Size of the window"/> <param name="invert" type="boolean" truevalue="--invert" falsevalue="" checked="False" label="Invert filter bases" help="Trim when the frequency of bases NOT in the "filter bases" list exceeds the threshold."/> <conditional name="min_len"> @@ -49,8 +53,8 @@ </conditional> </inputs> <outputs> - <data name="output1" format_source="input1"/> - <data name="output2" format_source="input2"> + <data name="output1" format_source="input1" label="$tool.name on $on_string"/> + <data name="output2" format_source="input2" label="$tool.name on $on_string (mate 2)"> <filter>paired['is_paired']</filter> </data> </outputs> @@ -66,6 +70,15 @@ .. class:: infomark +**How it works** + +This will slide along the read with a window, and trim once the frequency of filter bases exceeds the frequency threshold (unless "Invert filter bases" is enabled, in which case it will trim once non-filter bases exceed the threshold). + +The trim point will be just before the first (leftmost) filter base in the final window (the one where the frequency exceeded the threshold). + + +.. class:: infomark + **Input** The inputs can be in the following formats: fasta, fastq, fastqsanger, fastqillumina, and fastqsolexa. Both must be either a fasta or fastq type (no mixing fastq and fasta).
