diff generate_sequence_features.xml @ 3:b55f0ce54d97 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/semibin commit 2c08a2e49a2844efe92340c5a9e9c8323e4a33d6
author iuc
date Tue, 28 Oct 2025 08:16:56 +0000
parents f5aff7c9a65d
children
line wrap: on
line diff
--- a/generate_sequence_features.xml	Tue Mar 25 15:49:59 2025 +0000
+++ b/generate_sequence_features.xml	Tue Oct 28 08:16:56 2025 +0000
@@ -10,18 +10,30 @@
     <expand macro="version"/>
     <command detect_errors="exit_code"><![CDATA[
 #import re
-@BAM_FILES@
+#if $input_type_select.input_type == "bam":
+    @BAM_FILES@
+#else:
+    #for $e in $input_type_select.mode.abundance:
+        #set $identifier = re.sub('[^\s\w\-]', '_', str($e.element_identifier))
+        ln -s '$e' '${identifier}.txt' &&
+    #end for
+#end if
 @FASTA_FILES@
 
 SemiBin2
-#if $mode.select == 'single' or $mode.select == 'co'
+#if $input_type_select.mode.select == 'single' or $input_type_select.mode.select == 'co'
     generate_sequence_features_single
+    --input-fasta 'contigs.$input_fasta.ext'
 #else
     generate_sequence_features_multi
     --separator '$separator'
+    --input-fasta 'contigs.fasta'
 #end if
-    --input-fasta 'contigs.fasta'
+#if $input_type_select.input_type == "bam"
     --input-bam *.bam
+#else:
+    -a *.txt
+#end if
     --output 'output'
     --threads \${GALAXY_SLOTS:-1}
     @MIN_LEN@
@@ -30,7 +42,18 @@
 #end if
     ]]></command>
     <inputs>
-        <expand macro="mode_fasta_bam"/>
+        <conditional name="input_type_select">
+            <param name="input_type" type="select" label="Use BAM or strobealign abundance information?">
+                <option value="bam">BAM file</option>
+                <option value="txt">strobealign-aemb files</option>
+            </param>
+            <when value="bam">
+                <expand macro="mode_fasta_bam"/>
+            </when>
+            <when value="txt">
+                <expand macro="mode_fasta_strobealign"/>
+            </when>
+        </conditional>
         <expand macro="min_len"/>
         <expand macro="ml-threshold"/>
         <param name="extra_output" type="select" multiple="true" label="Extra outputs" help="In addition to the training data">
@@ -45,10 +68,13 @@
     </outputs>
     <tests>
         <test expect_num_outputs="4">
-            <conditional name="mode">
-                <param name="select" value="single"/>
-                <param name="input_fasta" ftype="fasta" value="input_single.fasta"/>
-                <param name="input_bam" ftype="bam" value="input_single.bam"/>
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <conditional name="mode">
+                    <param name="select" value="single"/>
+                    <param name="input_fasta" ftype="fasta" value="input_single.fasta"/>
+                    <param name="input_bam" ftype="bam" value="input_single.bam"/>
+                </conditional>
             </conditional>
             <conditional name="min_len">
                 <param name="method" value="automatic"/>
@@ -81,12 +107,72 @@
                     <has_n_lines n="1" delta="1"/>
                 </assert_contents>
             </output>
+        </test><test expect_num_outputs="4">
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <conditional name="mode">
+                    <param name="select" value="co"/>
+                    <param name="input_fasta" ftype="fasta.bz2" value="input_single.fasta.bz2"/>
+                    <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/>
+                </conditional>
+            </conditional>
+            <conditional name="min_len">
+                <param name="method" value="automatic"/>
+            </conditional>
+            <param name="ml_threshold" value="4000"/>
+            <param name="extra_output" value="coverage"/>
+            <output name="single_data" ftype="csv">
+                <assert_contents>
+                    <has_n_lines n="41"/>
+                    <has_text text="g1k_0"/>
+                    <has_text text="g4k_9"/>
+                </assert_contents>
+            </output>
+            <output name="single_data_split" ftype="csv">
+                <assert_contents>
+                    <has_n_lines n="81"/>
+                    <has_text text="g1k_0_1"/>
+                    <has_text text="g3k_2_2"/>
+                    <has_text text="g4k_7_2"/>
+                </assert_contents>
+            </output>
+            <output_collection name="co_cov" count="5">
+                <element name="0" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_0"/>
+                    </assert_contents>
+                </element>
+                <element name="4" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_0"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output_collection name="co_split_cov" count="5">
+                <element name="0" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="81"/>
+                        <has_text text="g1k_0_1"/>
+                    </assert_contents>
+                </element>
+                <element name="4" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="81"/>
+                        <has_text text="g1k_0_1"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
         </test>
         <test expect_num_outputs="4">
-            <conditional name="mode">
-                <param name="select" value="co"/>
-                <param name="input_fasta" ftype="fasta" value="input_single.fasta"/>
-                <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/>
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <conditional name="mode">
+                    <param name="select" value="co"/>
+                    <param name="input_fasta" ftype="fasta.gz" value="input_single.fasta.gz"/>
+                    <param name="input_bam" ftype="bam" value="input_coassembly_sorted1.bam,input_coassembly_sorted2.bam,input_coassembly_sorted3.bam,input_coassembly_sorted4.bam,input_coassembly_sorted5.bam"/>
+                </conditional>
             </conditional>
             <conditional name="min_len">
                 <param name="method" value="automatic"/>
@@ -138,13 +224,16 @@
             </output_collection>
         </test>
         <test expect_num_outputs="7">
-            <conditional name="mode">
-                <param name="select" value="multi"/>
-                <conditional name="multi_fasta">
-                    <param name="select" value="concatenated"/>
-                    <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/>
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <conditional name="mode">
+                    <param name="select" value="multi"/>
+                    <conditional name="multi_fasta">
+                        <param name="select" value="concatenated"/>
+                        <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/>
+                    </conditional>
+                    <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/>
                 </conditional>
-                <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/>
             </conditional>
             <conditional name="min_len">
                 <param name="method" value="automatic"/>
@@ -224,19 +313,24 @@
                 </element>
             </output_collection>
         </test>
-        <test expect_num_outputs="2">
-            <conditional name="mode">
-                <param name="select" value="multi"/>
-                <conditional name="multi_fasta">
+
+        <test expect_num_outputs="5">
+            <conditional name="input_type_select">
+                <param name="input_type" value="txt"/>
+                <conditional name="mode">
                     <param name="select" value="multi"/>
-                    <param name="input_fasta" ftype="fasta" value="S1.fasta,S2.fasta,S3.fasta,S4.fasta,S5.fasta,S6.fasta,S7.fasta,S8.fasta,S9.fasta,S10.fasta"/>
+                    <conditional name="multi_fasta">
+                        <param name="select" value="concatenated"/>
+                        <param name="input_fasta" ftype="fasta" value="input_multi.fasta.gz"/>
+                    </conditional>
+                    <param name="abundance" ftype="txt" value="strobealign_1.txt,strobealign_2.txt,strobealign_3.txt,strobealign_4.txt,strobealign_5.txt"/>
                 </conditional>
-                <param name="input_bam" ftype="bam" value="input_multi_sorted1.bam,input_multi_sorted2.bam,input_multi_sorted3.bam,input_multi_sorted4.bam,input_multi_sorted5.bam,input_multi_sorted6.bam,input_multi_sorted7.bam,input_multi_sorted8.bam,input_multi_sorted9.bam,input_multi_sorted10.bam"/>
             </conditional>
             <conditional name="min_len">
                 <param name="method" value="automatic"/>
             </conditional>
             <param name="ml_threshold" value="4000"/>
+            <param name="extra_output" value="coverage,contigs"/>
             <output_collection name="multi_data" count="10">
                 <element name="S1" ftype="csv">
                     <assert_contents>
@@ -253,6 +347,73 @@
                     </assert_contents>
                 </element>
             </output_collection>
+            <output_collection name="multi_cov_sample" count="10">
+                <element name="S1" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="21"/>
+                        <has_text text="g1k_0"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output_collection name="multi_split_cov_txt" count="10">
+                <element name="S1" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_5_1"/>
+                    </assert_contents>
+                </element>
+                <element name="S9" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_5_1"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output_collection name="multi_contigs" count="10">
+                <element name="S1" ftype="fasta">
+                    <assert_contents>
+                        <has_text text=">g1k_0"/>
+                    </assert_contents>
+                </element>
+                <element name="S9" ftype="fasta">
+                    <assert_contents>
+                        <has_text text=">g1k_0"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+        </test>
+        <test expect_num_outputs="2">
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <conditional name="mode">
+                    <param name="select" value="multi"/>
+                    <conditional name="multi_fasta">
+                        <param name="select" value="multi"/>
+                        <param name="input_fasta" ftype="fasta" value="S1.fasta,S2.fasta,S3.fasta,S4.fasta,S5.fasta,S6.fasta,S7.fasta,S8.fasta,S9.fasta,S10.fasta"/>
+                    </conditional>
+                    <param name="input_bam" ftype="bam" value="input_multi_sorted1_naming.bam,input_multi_sorted2_naming.bam,input_multi_sorted3_naming.bam,input_multi_sorted4_naming.bam,input_multi_sorted5_naming.bam,input_multi_sorted6_naming.bam,input_multi_sorted7_naming.bam,input_multi_sorted8_naming.bam,input_multi_sorted9_naming.bam,input_multi_sorted10_naming.bam"/>
+                </conditional>
+            </conditional>
+            <conditional name="min_len">
+                <param name="method" value="automatic"/>
+            </conditional>
+            <param name="ml_threshold" value="4000"/>
+            <output_collection name="multi_data" count="10">
+                <element name="S1_fasta" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="21"/>
+                        <has_text text="g1k_0"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
+            <output_collection name="multi_data_split" count="10">
+                <element name="S1_fasta" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_0_1"/>
+                    </assert_contents>
+                </element>
+            </output_collection>
         </test>
     </tests>
     <help><![CDATA[