diff generate_sequence_features.xml @ 5:8ba0c2edf3f3 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/semibin commit ee5d87e278238478c8ecab4a2f73723323f179a7
author iuc
date Sun, 10 Aug 2025 11:39:49 +0000
parents 0608cf7dc528
children
line wrap: on
line diff
--- a/generate_sequence_features.xml	Fri Aug 01 21:26:47 2025 +0000
+++ b/generate_sequence_features.xml	Sun Aug 10 11:39:49 2025 +0000
@@ -10,18 +10,29 @@
     <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
 #else
     generate_sequence_features_multi
     --separator '$separator'
 #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 +41,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 +67,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"/>
@@ -83,10 +108,13 @@
             </output>
         </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" 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>
             </conditional>
             <conditional name="min_len">
                 <param name="method" value="automatic"/>
@@ -138,13 +166,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,14 +255,87 @@
                 </element>
             </output_collection>
         </test>
+
+        <test expect_num_outputs="5">
+            <conditional name="input_type_select">
+                <param name="input_type" value="txt"/>
+                <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="abundance" ftype="txt" value="strobealign_1.txt,strobealign_2.txt,strobealign_3.txt,strobealign_4.txt,strobealign_5.txt"/>
+                </conditional>
+            </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>
+                        <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" ftype="csv">
+                    <assert_contents>
+                        <has_n_lines n="41"/>
+                        <has_text text="g1k_0_1"/>
+                    </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="mode">
-                <param name="select" value="multi"/>
-                <conditional name="multi_fasta">
+            <conditional name="input_type_select">
+                <param name="input_type" value="bam"/>
+                <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="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.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"/>