changeset 22:350c736075eb draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/fastp commit 2e94b9dd0fba5c4822624687a906f646329d62e8
author iuc
date Thu, 14 Aug 2025 16:59:43 +0000
parents 281054a26e41
children
files fastp.xml test-data/quality_cutting_output.fq.gz
diffstat 2 files changed, 92 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/fastp.xml	Mon Jun 23 07:30:30 2025 +0000
+++ b/fastp.xml	Thu Aug 14 16:59:43 2025 +0000
@@ -1,4 +1,4 @@
-<tool id="fastp" name="fastp" version="@TOOL_VERSION@+galaxy0" profile="23.1">
+<tool id="fastp" name="fastp" version="@TOOL_VERSION@+galaxy1" profile="23.1">
     <description>fast all-in-one preprocessing for FASTQ files</description>
     <macros>
         <import>macros.xml</import>
@@ -186,18 +186,22 @@
 
 ## 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_front_select.cut_front) == '--cut_front'
+        $read_mod_options.cutting_by_quality_options.cut_front_select.cut_front
+        --cut_front_window_size $read_mod_options.cutting_by_quality_options.cut_front_select.cut_front_window_size
+        --cut_front_mean_quality $read_mod_options.cutting_by_quality_options.cut_front_select.cut_front_mean_quality
+#end if
 
-    #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
+#if str($read_mod_options.cutting_by_quality_options.cut_tail_select.cut_tail) == '--cut_tail'
+        $read_mod_options.cutting_by_quality_options.cut_tail_select.cut_tail
+        --cut_tail_window_size $read_mod_options.cutting_by_quality_options.cut_tail_select.cut_tail_window_size
+        --cut_tail_mean_quality $read_mod_options.cutting_by_quality_options.cut_tail_select.cut_tail_mean_quality
+#end if
+
+#if str($read_mod_options.cutting_by_quality_options.cut_right_select.cut_right) == '--cut_right'
+        $read_mod_options.cutting_by_quality_options.cut_right_select.cut_right
+        --cut_right_window_size $read_mod_options.cutting_by_quality_options.cut_right_select.cut_right_window_size
+        --cut_right_mean_quality $read_mod_options.cutting_by_quality_options.cut_right_select.cut_right_mean_quality
 #end if
 
 ## Base correction by overlap analysis options
@@ -307,10 +311,42 @@
             </section>
 
             <section name="cutting_by_quality_options" title="Per read cutting by quality options" expanded="True">
-                <param name="cut_by_quality5" argument="-5" type="boolean" truevalue="-5" falsevalue="" checked="false" label="Cut by quality in front (5')" help="Enable per read cutting by quality in front (5'), default is disabled (WARNING: this will interfere deduplication for both PE/SE data)."/>
-                <param name="cut_by_quality3" argument="-3" type="boolean" truevalue="-3" falsevalue="" checked="false" label="Cut by quality in tail (3')" help="Enable per read cutting by quality in tail (3'), default is disabled (WARNING: this will interfere deduplication for SE data)."/>
-                <param name="cut_window_size" argument="-W" type="integer" optional="true" label="Cutting window size" help="The size of the sliding window for sliding window trimming, default is 4."/>
-                <param name="cut_mean_quality" argument="-M" type="integer" optional="true" label="Cutting mean quality" help="The bases in the sliding window with mean quality below cutting_quality will be cut, default is Q20."/>
+                <conditional name="cut_front_select">
+                    <param argument="--cut_front" type="select" truevalue="--cut_front" falsevalue="" checked="false" label="Cut by quality in front (5')" help="Enable per read cutting by quality in front (5'), default is disabled (WARNING: this will interfere deduplication for both PE/SE data).">
+                        <option value="--cut_front">Yes</option>
+                        <option value="" selected="true">No</option>
+                    </param>
+                    <when value="--cut_front">
+                        <param argument="--cut_front_window_size" type="integer" optional="true" value="4" min="1" max="1000" label="Cutting window size for cut front" help="The size of the sliding window for sliding window trimming."/>
+                        <param argument="--cut_front_mean_quality" type="integer" optional="true" value="20" min="1" max="36 " label="Cutting mean quality for cut front" help="The bases in the sliding window with mean quality below cutting_quality will be cut."/>
+                    </when>
+                    <when value="">
+                    </when>
+                </conditional>
+                <conditional name="cut_tail_select">
+                    <param argument="--cut_tail" type="select" truevalue="--cut_tail" falsevalue="" checked="false" label="Cut by quality in tail (3')" help="Enable per read cutting by quality in tail (3'), default is disabled (WARNING: this will interfere deduplication for SE data).">
+                        <option value="--cut_tail">Yes</option>
+                        <option value="" selected="true">No</option>
+                    </param>
+                    <when value="--cut_tail">
+                        <param argument="--cut_tail_window_size" type="integer" optional="true" value="4" min="1" max="1000" label="Cutting window size for cut tail" help="The size of the sliding window for sliding window trimming."/>
+                        <param argument="--cut_tail_mean_quality" type="integer" optional="true" value="20" min="1" max="36 " label="Cutting mean quality for cut tail" help="The bases in the sliding window with mean quality below cutting_quality will be cut."/>
+                    </when>
+                    <when value="">
+                    </when>
+                </conditional>
+                <conditional name="cut_right_select">
+                    <param argument="--cut_right" type="select" truevalue="--cut_right" falsevalue="" checked="false" label="Cut by quality in tail (3')" help="Move a sliding window from front to tail, if meet one window with mean quality &lt; threshold, drop the bases in the window and the right part, and then stop.">
+                        <option value="--cut_right">Yes</option>
+                        <option value="" selected="true">No</option>
+                    </param>
+                    <when value="--cut_right">
+                        <param argument="--cut_right_window_size" type="integer" optional="true" value="4" min="1" max="1000" label="Cutting window size for cut right" help="The size of the sliding window for sliding window trimming."/>
+                        <param argument="--cut_right_mean_quality" type="integer" optional="true" value="20" min="1" max="36 " label="Cutting mean quality for cut right" help="The bases in the sliding window with mean quality below cutting_quality will be cut."/>
+                    </when>
+                    <when value="">
+                    </when>
+                </conditional>
             </section>
 
             <section name="base_correction_options" title="Base correction by overlap analysis options" expanded="True">
@@ -716,6 +752,46 @@
                 <element name="reverse" value="bwa-mem-fastq-paired-collection/output_reverse.fastqsanger.gz" decompress="true" ftype="fastqsanger.gz"/>
             </output_collection>
         </test>
+        <!-- 17. Ensure quality cutting work -->
+        <test expect_num_outputs="3">
+            <conditional name="single_paired">
+                <param name="single_paired_selector" value="single"/>
+                <param name="in1" ftype="fastqsanger.gz" value="R1.fq.gz"/>
+            </conditional>
+            <section name="read_mod_options">
+                <section name="cutting_by_quality_options">
+                    <conditional name="cut_front_select">
+                        <param name="cut_front" value="--cut_front"/>
+                        <param name="cut_front_window_size" value="2"/>
+                        <param name="cut_front_mean_quality" value="3"/>
+                    </conditional>
+                    <conditional name="cut_tail_select">
+                        <param name="cut_tail" value="--cut_tail"/>
+                        <param name="cut_tail_window_size" value="4"/>
+                        <param name="cut_tail_mean_quality" value="5"/>
+                    </conditional>
+                    <conditional name="cut_right_select">
+                        <param name="cut_right" value="--cut_right"/>
+                        <param name="cut_right_window_size" value="6"/>
+                        <param name="cut_right_mean_quality" value="7"/>
+                    </conditional>
+                </section>
+            </section>
+            <output name="out1" ftype="fastqsanger.gz" decompress="true" file="quality_cutting_output.fq.gz"/>
+            <output name="report_json">
+                <assert_contents>
+                    <has_text text="--cut_front"/>
+                    <has_text text="--cut_tail"/>
+                    <has_text text="--cut_right"/>
+                    <has_text text="--cut_front_window_size 2"/>
+                    <has_text text="--cut_front_mean_quality 3"/>
+                    <has_text text="--cut_tail_window_size 4"/>
+                    <has_text text="--cut_tail_mean_quality 5"/>
+                    <has_text text="--cut_right_window_size 6"/>
+                    <has_text text="--cut_right_mean_quality 7"/>
+                </assert_contents>
+            </output>
+        </test>
     </tests>
     <help><![CDATA[
 .. class:: infomark
Binary file test-data/quality_cutting_output.fq.gz has changed