diff coverm_contig.xml @ 3:c2a5823e4763 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tools/coverm commit 2d02165f40a9f8206a69716b2302bc58f5364982
author iuc
date Wed, 26 Jul 2023 07:35:24 +0000
parents f8cb3f0a19fa
children 1dcea261abbe
line wrap: on
line diff
--- a/coverm_contig.xml	Tue Mar 28 08:36:07 2023 +0000
+++ b/coverm_contig.xml	Wed Jul 26 07:35:24 2023 +0000
@@ -1,356 +1,450 @@
 <tool id="coverm_contig" name="CoverM contig" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
-    <description>Calculate coverage of individual contigs</description>
+    <description>Calculate read coverage per contig</description>
     <macros>
         <import>macros.xml</import>
     </macros>
+    <expand macro="bio_tools"/>
     <expand macro="requirements"/>
     <command><![CDATA[
-         #if $reads.read_type == "single" or $reads.read_type == "interleaved"
-            mkdir -p reads1 &&
-            #set file_paths1 = []
-            #for $input_file in $reads.single
-                
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'reads1/' + $fname
-                ln -s '$input_file' '$file_path' &&
-                $file_paths1.append($file_path)
-            #end for
-        #else if $reads.read_type == "bam"
-            mkdir -p bam &&
-            #set bam_files = []
-            #for $input_file in $reads.bam
-                
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'bam/' + $fname
-                ln -s '$input_file' '$file_path' &&
-                $bam_files.append($file_path)
-            #end for
-        #else if $reads.read_type == "paired"
-            mkdir -p paired_reads1 &&
-            #set fw_reads1 = []
-            #for $input_file in $reads.read1
-                
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'paired_reads1/' + str($fname)
-                ln -s '$input_file' '$file_path' &&
-                $fw_reads1.append($file_path)
-            #end for
-            #set rv_reads1 = []
-            #for $input_file in $reads.read2
-                
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'paired_reads1/' + str($fname)
-                ln -s '$input_file' '$file_path' &&
-                $rv_reads1.append($file_path)
-            #end for
-            #silent $fw_reads1.sort()
-            #silent $rv_reads1.sort()
-        #else
-            mkdir -p paired_reads &&
-            #set paired_reads1 = []
-            #for $i, $input_file in enumerate($reads.paired_reads)
-                #set $file_path = 'paired_reads/fw' + str($i)
-                ln -s '$input_file.forward' '$file_path' &&
-                $paired_reads1.append($file_path)
-                #set $file_path = 'paired_reads/rv' + str($i)
-                ln -s '$input_file.reverse' '$file_path' &&
-                $paired_reads1.append($file_path)
-            #end for
-        #end if           
-        #if $add_reads.extra_read.read_type == "single" or $add_reads.extra_read.read_type == "interleaved"
-            mkdir -p add_reads1 &&
-            #set add_file_paths1 = []
-            #for $input_file in $add_reads.extra_read.single
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'add_reads1/' + $fname
-                ln -s '$input_file' '$file_path' &&
-                $add_file_paths1.append($file_path)
-            #end for
-        #else if $add_reads.extra_read.read_type == "bam"
-            mkdir -p add_bam &&
-            #set add_bam_files = []
-            #for $input_file in $reads.bam
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'add_bam/' + $fname
-                ln -s '$input_file' '$file_path' &&
-                $add_bam_files.append($file_path)
-            #end for
-        #else if $add_reads.extra_read.read_type == "paired"
-            mkdir -p add_paired_reads1 &&
-            #set add_fw_reads1 = []
-            #for $input_file in $add_reads.extra_read.read1
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'add_paired_reads1/' + str($fname)
-                ln -s '$input_file' '$file_path' &&
-                $add_fw_reads1.append($file_path)
-            #end for
-            #set add_rv_reads1 = []
-            #for $input_file in $add_reads.extra_read.read2
-                #set $fname = $input_file.element_identifier.replace(" ","_")
-                #set $file_path = 'add_paired_reads1/' + str($fname)
-                ln -s '$input_file' '$file_path' &&
-                $add_rv_reads1.append($file_path)
-            #end for
-            #silent $add_fw_reads1.sort()
-            #silent $add_rv_reads1.sort()
-        #else if $add_reads.extra_read.read_type == "paired_collection"
-            mkdir -p add_paired_reads &&
-            #set add_paired_reads1 = []
-            #for $i, $input_file in enumerate($add_reads.extra_read.paired_reads)
-                #set $ext = $input_file.forward.ext
-                #set $file_path = 'add_paired_reads/fw' + str($i) + '.' + $ext
-                ln -s '$input_file.forward' '$file_path' &&
-                $add_paired_reads1.append($file_path)
-                #set $file_path = 'add_paired_reads/rv' + str($i) + '.' + $ext
-                ln -s '$input_file.reverse' '$file_path' &&
-                $add_paired_reads1.append($file_path)
-            #end for
-        #end if
-        
-        #if $reads.ref_fasta_history
-            mkdir -p reference &&
-            #set ref_files = []
-                #for $input_file in $reads.ref_fasta_history
-                    #set $fname = $input_file.element_identifier.replace(" ","_")
-                    #set $file_path = 'reference/' + $fname
-                    ln -s '$input_file' '$file_path' &&
-                    $ref_files.append($file_path)
-                #end for
-        #end if
+#import re
+#import os
+
+#set $single_fp = []
+#set $fw_fp = []
+#set $rv_fp = []
+#set $interl_fp = []
+#set $ref_fp = []
+#set $bam_fp = []
+
+mkdir 'single/' && 
+mkdir 'fw/' &&
+mkdir 'rv/' && 
+mkdir 'interl/' && 
+mkdir 'ref/' && 
+mkdir 'bam/' && 
+
+#if $mapped.mapped == 'mapped'
+    @BAMS@
+#else
+    #if $mapped.mode.mode == 'individual'
+        @INDIVIDUAL_ASSEMBLY_READS@
+        #set $ref = $mapped.mode.reference
+        @INDIVIDUAL_ASSEMBLY_REF@
+    #else
+        @CO_ASSEMBLY_ALL_READS@
+        #set $refs = $mapped.mode.reference
+        @CO_ASSEMBLY_REF@ 
+    #end if
+#end if
 
-        coverm contig
-            #if $reads.read_type == 'paired'
-                -1
-                #for $read in $fw_reads1
-                    '${read}'
-                #end for
-                -2
-                #for $read in $rv_reads1
-                    '${read}'
-                #end for
-            #else if $reads.read_type == 'paired_collection'
-                --coupled
-                #for $read in $paired_reads1
-                    '${read}'
-                #end for
-            #else if $reads.read_type == 'single'
-                --single
-                #for $read in $file_paths1
-                    '${read}'
-                #end for
-            #else if $reads.read_type == 'interleaved'
-                --interleaved
-                #for $read in $file_paths1
-                    '${read}'
-                #end for
-            #else if $reads.read_type == 'bam'
-                -b
-                #for $read in $bam_files
-                    '${read}'
-                #end for
-            #end if
+coverm 
+    contig
+#if $mapped.mapped == 'mapped'
+    -b
+    #for $bam in $bam_fp
+        '$bam'
+    #end for
+    $mapped.sharded
+#else
+    #if $fw_fp
+    -1
+        #for $read in $fw_fp
+        '$read'
+        #end for
+    -2
+        #for $read in $rv_fp
+        '$read'
+        #end for
+    #else if $single_fp
+    --single
+        #for $read in $single_fp
+        '$read'
+        #end for
+    #else if $interl_fp
+    --interleaved
+        #for $read in $interl_fp
+        '$read'
+        #end for
+    #end if
+    --reference
+    #for $ref in $ref_fp
+        '$ref'
+    #end for
+    #if $mapped.mode.mode == 'co'
+    $mapped.mode.sharded
+    #end if
+    --mapper '$mapped.mapper'
+#end if
 
-            #if $add_reads.extra_read.read_type == 'paired'
-                -1
-                #for $read in $add_fw_reads1
-                    '${read}'
-                #end for
-                -2
-                #for $read in $add_rv_reads1
-                    '${read}'
-                #end for
-            #else if $add_reads.extra_read.read_type == 'paired_collection'
-                --coupled
-                #for $read in $add_paired_reads1
-                    '${read}'
-                #end for
-            #else if $add_reads.extra_read.read_type == 'single'
-                --single
-                #for $read in $add_file_paths1
-                    '${read}'
-                #end for
-            #else if $add_reads.extra_read.read_type == 'interleaved'
-                --interleaved
-                #for $read in $add_file_paths1
-                    '${read}'
-                #end for
-            #else if $add_reads.extra_read.read_type == 'bam'
-                #for $read in $add_bam_files
-                    '${read}'
-                #end for
-            #end if
-            
-
-            #if $reads.ref_fasta_history:
-                --reference
-                #for $reference in $ref_files
-                    '${reference}'
-                #end for
-            #end if
-
-            $shar.sharded
+    --min-read-aligned-length $alignment.min_read_aligned_length
+    --min-read-percent-identity $alignment.min_read_percent_identity
+    --min-read-aligned-percent $alignment.min_read_aligned_percent
+    $alignment.proper_pairs_only.proper_pairs_only
+#if $alignment.proper_pairs_only.proper_pairs_only != ''
+    --min-read-aligned-length-pair $alignment.proper_pairs_only.min_read_aligned_length_pair
+    --min-read-percent-identity-pair $alignment.proper_pairs_only.min_read_percent_identity_pair
+    --min-read-aligned-percent-pair $alignment.proper_pairs_only.min_read_aligned_percent_pair
+#end if
 
-            #if $mapping.mapper:
-                --mapper $mapping.mapper
-            #end if
-            #if $mapping.min_read_aligned_length:
-                --min-read-aligned-length $mapping.min_read_aligned_length
-            #end if
-            #if $mapping.min_read_percent_identity:
-                --min-read-percent-identity $mapping.min_read_percent_identity
-            #end if
-            #if $mapping.min_read_aligned_percent:
-                --min-read-aligned-percent $mapping.min_read_aligned_percent
-            #end if
-            #if $mapping.min_read_aligned_length_pair:
-                --min-read-aligned-length-pair $mapping.min_read_aligned_length_pair
-            #end if
-            #if $mapping.min_read_percent_identity_pair:
-                --min-read-percent-identity-pair $mapping.min_read_percent_identity_pair
-            #end if
-            #if $mapping.min_read_aligned_percent_pair:
-                --min-read-aligned-percent-pair $mapping.min_read_aligned_percent_pair
-            #end if
-            $mapping.proper_pairs_only
-            $mapping.exclude_supplementary
+    --methods
+#for method in $cov.methods
+        '$method'
+#end for
+    --min-covered-fraction $cov.min_covered_fraction
+    --contig-end-exclusion $cov.contig_end_exclusion
+    --trim-min $cov.trim_min
+    --trim-max $cov.trim_max
 
-            --methods $cov.relative_abundance $cov.mean $cov.cond_methods.trimmed_mean $cov.covered_bases $cov.covered_fraction
-            $cov.variance $cov.length $cov.count $cov.metabat $cov.coverage_histogram $cov.reads_per_base 
-            $cov.rpkm $cov.tpm
-            #if $cov.min_covered_fraction:
-                --min-covered-fraction $cov.min_covered_fraction
-            #end if
-            #if $cov.contig_end_exclusion:
-                --contig-end-exclusion $cov.contig_end_exclusion
-            #end if
-            #if $cov.cond_methods.trimmed_mean == "trimmed_mean"
-                #if $cov.cond_methods.trim_min:
-                    --trim-min $cov.cond_methods.trim_min
-                #end if
-                #if $cov.cond_methods.trim_max:
-                    --trim_max $cov.cond_methods.trim_max
-                #end if
-            #end if
-
-            #if $out.output_format:
-                --output-format $out.output_format
-            #end if
-            --output-file output.tsv
-            --threads \${GALAXY_SLOTS:-1}
+    --output-format '$output_format'
+    --output-file '$output'
+    --threads \${GALAXY_SLOTS:-1}
     ]]></command>
     <inputs>
-        <expand macro="reads_for_contig" />
-        <expand macro="add_reads" />
-        <section name="shar" title="Sharding" expanded="false">
-            <param name="sharded" type="boolean" optional="true" truevalue="--sharded" falsevalue="" label="If -b/--bam-files was used: Input BAM files are read-sorted alignments of a set of reads mapped to multiple reference contig sets. Choose the best hit for each read pair. Otherwise if mapping was carried out: Map reads to each reference, choosing the best hit for each pair." />
+        <conditional name="mapped">
+            <expand macro="mapped"/>
+            <when value="mapped">
+                <expand macro="mapped_params"/>
+            </when>
+            <when value="not-mapped">
+                <conditional name="mode">
+                    <expand macro="assembly_mode"/>
+                    <when value="individual">
+                        <expand macro="individual_assembly_reads"/>
+                        <expand macro="individual_assembly_reference"/> 
+                    </when>
+                    <when value="co">
+                        <expand macro="co_assembly_reads"/>
+                        <repeat name="extra_reads" title="Additional reads">
+                            <expand macro="co_assembly_reads"/>
+                        </repeat>
+                        <expand macro="co_assembly_reference"/>
+                    </when>
+                </conditional>
+                <expand macro="mapping"/>
+            </when>
+        </conditional>
+        <expand macro="alignment"/>
+        <section name="cov" title="Coverage calculation options" expanded="false">
+            <param argument="--methods" type="select" multiple="true" label="Method(s) for calculating coverage">
+                <option value="mean" selected="true">mean: Average number of aligned reads overlapping each position on the contig</option>
+                <expand macro="cov_method_options"/>
+            </param>
+            <expand macro="coverage_params"/>
         </section>
-            <expand macro="mapping"/>
-            <expand macro="coverage"/>
-        <section name="out" title="Output options" expanded="false">
-            <param name="output_format" type="select" label="Shape of output" help="'Sparse' for long format, 'dense' for species-by-site. Default: dense]">
-                <option value="dense" selected="true">Dense</option>
-                <option value="sparse">Sparse</option>
-            </param>
-        </section>
+        <expand macro="output_format"/>
     </inputs>
     <outputs>
-        <data name="output1" format="tsv" from_work_dir="./output.tsv"/>
+        <data name="output" format="tabular"/>
     </outputs>
     <tests>
-        <test>
-            <conditional name="reads">
-                <param name="read_type" value="paired_collection"/>
-                <param name="paired_reads">
-                    <collection type="list:paired">
-                        <element name="reads_for_seq1_and_seq2..fq">
-                            <collection type="paired">
-                                <element name="forward" value="reads_for_seq1_and_seq2.1.fq.gz"/>
-                                <element name="reverse" value="reads_for_seq1_and_seq2.2.fq.gz"/>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="not-mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <conditional name="read_type">
+                        <param name="type" value="paired_collection"/>
+                        <param name="paired_reads">
+                            <collection type="list:paired">
+                                <element name="reads_for_seq1_and_seq2">
+                                    <collection type="paired">
+                                        <element name="forward" value="reads_for_seq1_and_seq2.1.fq.gz" ftype="fastqsanger.gz"/>
+                                        <element name="reverse" value="reads_for_seq1_and_seq2.2.fq.gz" ftype="fastqsanger.gz"/>
+                                    </collection>
+                                </element>
                             </collection>
-                        </element>
-                    </collection>
-                </param>
-                <param name="ref_fasta_history" value="7seqs.fna"/>
+                        </param>
+                    </conditional>
+                    <param name="reference" value="7seqs.fna" />
+                    <param name="sharded" value="" />
+                </conditional>
+            </conditional>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs_only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
+            <section name="cov">
+                <param name="methods" value="mean"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
+                <param name="contig_end_exclusion" value="75"/>
+            </section>
+            <param name="output_format" value="dense"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="7seqs.fna"/>
+                    <has_text text="genome1~random_sequence_length_11000"/>
+                    <has_text text="genome2~seq1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="not-mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="individual"/>
+                    <conditional name="read_type">
+                        <param name="type" value="paired"/>
+                        <param name="read1" value="reads_for_seq1_and_seq2.1.fq.gz" ftype="fastqsanger.gz"/>
+                        <param name="read2" value="reads_for_seq1_and_seq2.2.fq.gz" ftype="fastqsanger.gz"/>
+                    </conditional>
+                    <param name="reference" value="7seqs.fna" />
+                    <param name="sharded" value="" />
+                </conditional>
             </conditional>
-            <output name="output1" file="contig_test1.tsv" ftype="tsv" sort="true"/>
-        </test> 
-        <test>
-            <conditional name="reads">
-                <param name="read_type" value="single"/>
-                <param name="single" value="bad_reads.interleaved.fq"/>
-                <param name="ref_fasta_history" value="2seqs.fasta"/>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs_only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
+            <section name="cov">
+                <param name="methods" value="mean"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
+                <param name="contig_end_exclusion" value="75"/>
+            </section>
+            <param name="output_format" value="dense"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="7seqs.fna"/>
+                    <has_text text="genome1~random_sequence_length_11000"/>
+                    <has_text text="genome2~seq1"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="not-mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <conditional name="read_type">
+                        <param name="type" value="single"/>
+                        <param name="single" value="bad_reads.interleaved.fq"/>
+                    </conditional>
+                    <param name="reference" value="2seqs.fasta" />
+                    <param name="sharded" value="" />
+                </conditional>
             </conditional>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs_only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
             <section name="cov">
+                <param name="methods" value="mean"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
                 <param name="contig_end_exclusion" value="0"/>
             </section>
-            <section name="out">
-                <param name="output_format" value="sparse"/>
-            </section>            
-            <output name="output1" file="contig_test2.tsv" ftype="tsv" sort="true"/>
-        </test> 
-        <test>
-            <conditional name="reads">
-                <param name="read_type" value="interleaved"/>
-                <param name="single" value="bad_reads.all.interleaved.fa"/>
-                <param name="ref_fasta_history" value="2seqs.fasta"/>
+            <param name="output_format" value="sparse"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="Sample"/>
+                    <has_text text="2seqs.fasta_0/bad_reads.interleaved.fq_single_0"/>
+                    <has_text text="seq2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="not-mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <conditional name="read_type">
+                        <param name="type" value="interleaved"/>
+                        <param name="interleaved" value="bad_reads.all.interleaved.fa"/>
+                    </conditional>
+                    <param name="reference" value="2seqs.fasta" />
+                    <param name="sharded" value="" />
+                </conditional>
             </conditional>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs_only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
             <section name="cov">
+                <param name="methods" value="mean"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
                 <param name="contig_end_exclusion" value="0"/>
             </section>
-            <section name="mapping">
-                <param name="min_read_aligned_length_pair" value="300"/>
-                <param name="proper_pairs_only" value="true"/>
-            </section>
-            <section name="out">
-                <param name="output_format" value="sparse"/>
-            </section>            
-            <output name="output1" file="contig_test3.tsv" ftype="tsv" sort="true"/>
-        </test> 
-        <test>
-            <conditional name="reads">
-                <param name="read_type" value="paired"/>
-                <param name="read1" value="reads_for_seq1_and_seq2.1.fq.gz"/>
-                <param name="read2" value="reads_for_seq1_and_seq2.2.fq.gz"/>
-                <param name="ref_fasta_history" value="2seqs.fasta"/>
+            <param name="output_format" value="sparse"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="Sample"/>
+                    <has_text text="2seqs.fasta_0/bad_reads.all.interleaved.fa_interleaved_0"/>
+                    <has_text text="seq1"/>
+                    <has_text text="seq2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="not-mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <conditional name="read_type">
+                        <param name="type" value="paired"/>
+                        <param name="read1" value="reads_for_seq1_and_seq2.1.fq.gz"/>
+                        <param name="read2" value="reads_for_seq1_and_seq2.2.fq.gz"/>
+                    </conditional>
+                    <repeat name="extra_reads">
+                        <conditional name="read_type">
+                            <param name="type" value="paired_collection"/>
+                            <param name="paired_reads">
+                                <collection type="list:paired">
+                                    <element name="reads_for_seq1_and_seq2">
+                                        <collection type="paired">
+                                            <element name="forward" value="reads_for_seq1_and_seq2.1.fq.gz" ftype="fastqsanger.gz"/>
+                                            <element name="reverse" value="reads_for_seq1_and_seq2.2.fq.gz" ftype="fastqsanger.gz"/>
+                                        </collection>
+                                    </element>
+                                </collection>
+                            </param>
+                        </conditional>
+                    </repeat>
+                    <param name="reference" value="2seqs.fasta" />
+                    <param name="sharded" value="" />
+                </conditional>
             </conditional>
-            <section name="add_reads">
-                <conditional name="extra_read">
-                    <param name="read_type" value="paired_collection"/>
-                    <param name="paired_reads">
-                        <collection type="list:paired">
-                            <element name="reads_for_seq1_and_seq2..fq">
-                                <collection type="paired">
-                                    <element name="forward" value="reads_for_seq1_and_seq2.1.fq.gz"/>
-                                    <element name="reverse" value="reads_for_seq1_and_seq2.2.fq.gz"/>
-                                </collection>
-                            </element>
-                        </collection>
-                    </param>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0.95" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs-only" value=""/>
                 </conditional>
+                <param name="exclude_supplementary" value=""/>
             </section>
             <section name="cov">
+                <param name="methods" value="mean"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
                 <param name="contig_end_exclusion" value="0"/>
             </section>
-            <section name="mapping">
-                <param name="--min-read-percent-identity" value="0.95"/>
-            </section>
-            <output name="output1" file="contig_test4.tsv" ftype="tsv" sort="true"/>
-        </test> 
-        <test>
-            <conditional name="reads">
-                <param name="read_type" value="bam"/>
-                <param name="bam" value="tpm_test.bam"/>
+            <param name="output_format" value="sparse"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="Sample"/>
+                    <has_text text="2seqs.fasta_0/reads_for_seq1_and_seq2.1.fq.gz_paired_0"/>
+                    <has_text text="2seqs.fasta_0/reads_for_seq1_and_seq2_paired_collection_00"/>
+                    <has_text text="seq1"/>
+                    <has_text text="seq2"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <param name="bam_files" value="tpm_test.bam"/>
+                    <param name="sharded" value="" />
+                </conditional>
             </conditional>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0.95" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs-only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
             <section name="cov">
-                <param name="mean" value="true"/>
-                <param name="tpm" value="true"/>
+                <param name="methods" value="mean,tpm"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
+                <param name="contig_end_exclusion" value="75"/>
             </section>
-            <section name="out">
-                <param name="output_format" value="sparse"/>
-            </section>            
-            <output name="output1" file="contig_test5.tsv" ftype="tsv" sort="true"/>
-        </test> 
-        </tests>
+            <param name="output_format" value="sparse"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="Sample"/>
+                    <has_text text="TPM"/>
+                    <has_text text="tpm_test"/>
+                    <has_text text="genome1~random_sequence_length_11000"/>
+                    <has_text text="genome2~seq1"/>
+                    <has_text text="genome3~random_sequence_length_11001"/>
+                </assert_contents>
+            </output>
+        </test>
+        <test expect_num_outputs="1">
+            <conditional name="mapped">
+                <param name="mapped" value="mapped" />
+                <conditional name="mode">
+                    <param name="mode" value="co"/>
+                    <param name="bam_files" value="tpm_test.bam"/>
+                    <param name="sharded" value="" />
+                </conditional>
+            </conditional>
+            <section name="alignment">
+                <param name="min_read_aligned_length" value="0" />
+                <param name="min_read_percent_identity" value="0.95" />
+                <param name="min_read_aligned_percent" value="0" />
+                <conditional name="proper_pairs_only">
+                    <param name="proper_pairs-only" value=""/>
+                </conditional>
+                <param name="exclude_supplementary" value=""/>
+            </section>
+            <section name="cov">
+                <param name="methods" value="mean,tpm"/>
+                <param name="trim_min" value="5"/>
+                <param name="trim_max" value="95"/>
+                <param name="min_covered_fraction" value="10"/>
+                <param name="contig_end_exclusion" value="75"/>
+            </section>
+            <param name="output_format" value="sparse"/>
+            <output name="output" ftype="tabular">
+                <assert_contents>
+                    <has_text text="Contig"/>
+                    <has_text text="Mean"/>
+                    <has_text text="Sample"/>
+                    <has_text text="TPM"/>
+                    <has_text text="tpm_test"/>
+                    <has_text text="genome1~random_sequence_length_11000"/>
+                    <has_text text="genome2~seq1"/>
+                    <has_text text="genome3~random_sequence_length_11001"/>
+                </assert_contents>
+            </output>
+        </test>
+    </tests>
     <help><![CDATA[
 .. class:: infomark