view novoplasty.xml @ 3:15200570e926 draft default tip

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/novoplasty commit a53d7313e06ca38b6bf24a58c72a8dfd702de862"
author iuc
date Sun, 21 Nov 2021 18:43:33 +0000
parents 64a1c751d99b
children
line wrap: on
line source

<tool id="novoplasty" name="NOVOplasty" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="18.01">
    <description>de novo assembler for short circular genomes</description>
    <macros>
        <token name="@TOOL_VERSION@">4.3.1</token>
        <token name="@VERSION_SUFFIX@">0</token>
        <xml name="content" token_min="" token_max="">
            <param name="genome_range_min" type="text" value="@MIN@" label="Set lower limit for the expected genome size range" help="(Genome Range)"/>
            <param name="genome_range_max" type="text" value="@MAX@" label="Set upper limit for the expected genome size range" help="(Genome Range)"/>
        </xml>
    </macros>
    <requirements>
        <requirement type="package" version="@TOOL_VERSION@">novoplasty</requirement>
    </requirements>
    <version_command><![CDATA[NOVOPlasty.pl 2>&1 | grep 'Version' | awk -F' ' '{print $2}']]></version_command>
    <command detect_errors="exit_code"><![CDATA[
## initialize
## samples require extension .fasta or .fasta.gz
#if $reads_cond.reads_sel == 'combined' 
    ln -s '$reads_cond.combined_reads' 'combined.${reads_cond.combined_reads.datatype.file_ext}' &&
#else if $reads_cond.reads_sel == 'separate'
    ln -s '$reads_cond.forward_reads' 'forward.${reads_cond.forward_reads.datatype.file_ext}' &&
    ln -s '$reads_cond.reverse_reads' 'reverse.${reads_cond.reverse_reads.datatype.file_ext}' &&
#end if

## run
NOVOPlasty.pl -c '$config'

## postprocessing
&& cp '$config' 'config.txt'
        ]]></command>
    <configfiles>
        <configfile name="config"><![CDATA[
Project:
-----------------------
Project name          = result
Type                  = ${assembly_options.type_cond.type_sel}
Genome Range          = ${assembly_options.type_cond.genome_range_min}-${assembly_options.type_cond.genome_range_max}
K-mer                 = ${assembly_options.kmer}
Max memory            = 
Extended log          = 1
Save assembled reads  = ${optional.save_assembled_reads}
Seed Input            = ${seed_input}
Extend seed directly  = ${assembly_options.extend_seed_directly}
Reference sequence    = #if $reference_cond.use_reference == 'true' and $reference_cond.reference then $reference_cond.reference else ''
Variance detection    = #if $reference_cond.use_reference == 'true' then $reference_cond.variance_detection else ''
Chloroplast sequence  = #if $assembly_options.type_cond.type_sel == 'mito_plant' and $assembly_options.type_cond.chloroplast_sequence then $assembly_options.type_cond.chloroplast_sequence else ''


Dataset 1:
-----------------------
Read Length           = ${read_options.read_length}
Insert size           = ${read_options.insert_size}
Platform              = ${read_options.platform}
Single/Paired         = PE
Combined reads        = #if $reads_cond.reads_sel == 'combined' then 'combined.'+$reads_cond.combined_reads.datatype.file_ext else ''
Forward reads         = #if $reads_cond.reads_sel == 'separate' then 'forward.'+$reads_cond.forward_reads.datatype.file_ext else ''
Reverse reads         = #if $reads_cond.reads_sel == 'separate' then 'reverse.'+$reads_cond.reverse_reads.datatype.file_ext else ''

Heteroplasmy:
-----------------------
MAF                   = #if $reference_cond.use_reference == 'true' and $reference_cond.heteroplasmy_cond.detect_heteroplasmy == 'true' then $reference_cond.heteroplasmy_cond.maf else ''
HP exclude list       = ## option not available
PCR-free              = #if $reference_cond.use_reference == 'true' and $reference_cond.heteroplasmy_cond.detect_heteroplasmy == 'true' then $reference_cond.heteroplasmy_cond.pcr_free else ''

Optional:
-----------------------
Insert size auto      = ${optional.insert_size_auto}
Use Quality Scores    = ${optional.use_quality_scores}
        ]]></configfile>
    </configfiles>
    <inputs>
        <!-- Currently only PE reads is supported
        <param name="single_paired" type="select" label="Select read type" help="(Single/Paired)">
            <option value="PE" selected="true">Paired</option>
            <option value="SE">Single</option>
        </param>-->
        <conditional name="reads_cond">
            <param name="reads_sel" type="select" label="Select read file type" help="Currently only paired-end reads are supported">
                <option value="combined">Combined reads</option>
                <option value="separate" selected="true">Separate reads</option>
            </param>
            <when value="combined">
                <param name="combined_reads" type="data" format="fasta,fasta.gz" label="Select file with combined reads" help="(Combined reads)"/>
            </when>
            <when value="separate">
                <param name="forward_reads" type="data" format="fasta,fasta.gz" label="Select file with forward reads" help="(Forward reads)"/>
                <param name="reverse_reads" type="data" format="fasta,fasta.gz" label="Select file with reverse reads" help="(Reverse reads)"/>
            </when>
        </conditional>
        <!-- seed_input doesn't support fasta.gz, throws error INVALID SEED, PLEASE TRY AGAIN WITH A NEW ONE -->
        <param name="seed_input" type="data" format="fasta" label="Select file with seed sequence" help="(Seed Input)"/>
        <conditional name="reference_cond">
            <param name="use_reference" type="select" label="Use reference genome" help="If a reference is available, you can select the fasta file.">
                <option value="true">Yes</option>
                <option value="false" selected="true">No</option>
            </param>
            <when value="true">
                <param name="reference" type="data" format="fasta,fasta.gz" optional="true" label="Select reference file" help="The assembly will still be de novo, but references of the same genus can be used as a guide to resolve duplicated regions in the plant mitochondria or the inverted repeat in the chloroplast. References from different genus haven't beeen tested yet."/>
                <conditional name="heteroplasmy_cond">
                    <param name="detect_heteroplasmy" type="select" label="Detect heteroplasmy" help="If you want to detect heteroplasmy, first assemble the genome without this option. Then give the resulting sequence as a reference and as a seed input.">
                        <option value="true">Yes</option>
                        <option value="false" selected="true">No</option>
                    </param>
                    <when value="true">
                        <param name="maf" type="float" value="0.007" min="0.007" max="0.49" label="Set minimum minor allele frequency" help="If you want to detect heteroplasmy, first assemble the genome without this option. Then give the resulting sequence as a reference and as a seed input."/>
                        <param name="pcr_free" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="PCR-free" help="If you have a PCR-free library select yes" />
                    </when>
                    <when value="false"/>
                </conditional>
                <param name="variance_detection" type="boolean" truevalue="yes" falsevalue="no" label="Variance detection" help="It will create a vcf file with all the variances compared to the given reference genome." />
            </when>
            <when value="false"/>
        </conditional>
        <section name="read_options" title="Read options" expanded="true">
            <param name="platform" type="select" label="Platform">
                <option value="illumina" selected="true">Illumina</option>
                <option value="ion">Ion Torrent</option>
            </param>
            <param name="read_length" type="integer" value="151" label="Set read length" help="(Read Length)"/>
            <param name="insert_size" type="integer" value="300" label="Set total insert size of your paired end reads" help="It doesn't have to be accurate but should be close enough. (Insert size)"/>
        </section>
       <section name="assembly_options" title="Assembly options" expanded="true">
            <conditional name="type_cond">
                <param name="type_sel" type="select" label="Assembly type" help="Chloroplast assembly (chloro), mitochondrial assembly (mito) and mitochondrial assembly in plants (mito_plant).">
                    <option value="chloro" selected="true">Chloroplast assembly</option>
                    <option value="mito">Mitochondrial assembly</option>
                    <option value="mito_plant">Mitochondrial assembly in plants</option>
                </param>
                <when value="chloro">
                    <expand macro="content" min="120000" max="200000"/>
                </when>
                <when value="mito">
                    <expand macro="content" min="12000" max="20000"/>
                </when>
                <when value="mito_plant">
                    <expand macro="content" min="12000" max="20000"/>
                    <param name="chloroplast_sequence" type="data" format="fasta,fasta.gz" optional="true" label="Select chloroplast sequence" help="Chloroplast needs to be assembled before mitochondria. (Chloroplast sequence)"/>
                </when>
            </conditional>
            <param name="extend_seed_directly" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Extend seeds instead of finding matching reads" help="Only use this when your seed originates from the same sample and there are no possible mismatches. (Extend seed directly)"/>
            <param name="kmer" type="integer" value="39" min="1" label="Set length of overlap between matching reads" help="If reads are shorter then 90 bp or you have low coverage data, this value should be decreased down to 23. For reads longer then 101 bp, this value can be increased, but this is not necessary. (kmer)"/>
        </section>
        <section name="optional" title="Optional options">
            <param name="insert_size_auto" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Finetune your insert size automatically?" help="(Insert size auto)"/>
            <param name="use_quality_scores" type="boolean" truevalue="yes" falsevalue="no" label="Take quality scores into account?" help="Only use this when reads have low quality, like with the 300 bp reads of Illumina. (Use Quality Scores)"/>
            <param name="save_assembled_reads" type="boolean" truevalue="yes" falsevalue="no" checked="false" label="Retain original IDs when saving assemled reads?" help="All the reads used for the assembly will be stored in seperate files. (Save assembled reads)"/>
        </section>
        <param name="out" type="select" multiple="true" optional="true" display="checkboxes" label="Additional output files">
            <option value="config">Config file</option>
            <option value="extended_log">Extended log</option>
            <option value="log">Log</option>
            <option value="cont_tmp">Contigs temp</option>
        </param>
    </inputs>
    <outputs>
        <!-- Assembly -->
        <data name="out_c" format="fasta" from_work_dir="Contigs_1_result.fasta" label="${tool.name} on ${on_string}: Contigs"/>
        <data name="out_ct" format="txt" from_work_dir="contigs_tmp_result.txt" label="${tool.name} on ${on_string}: Contigs Tmp">
            <filter>out and 'cont_tmp' in out</filter>
        </data>
        <data name="out_mc" format="txt" from_work_dir="Merged_contigs_result.txt" label="${tool.name} on ${on_string}: Merged Contigs"/>
        <data name="out_cc_o1" format="fasta" from_work_dir="Option_1_result.fasta" label="${tool.name} on ${on_string}: Assembly option 1"/>
        <data name="out_cc_o2" format="fasta" from_work_dir="Option_2_result.fasta" label="${tool.name} on ${on_string}: Assembly option 2"/>
        <data name="out_ar1" format="fasta" from_work_dir="Assembled_reads_result_R1.fasta" label="${tool.name} on ${on_string}: Assembled reads R1">
            <filter>optional['save_assembled_reads'] == True</filter>
        </data>
        <data name="out_ar2" format="fasta" from_work_dir="Assembled_reads_result_R2.fasta" label="${tool.name} on ${on_string}: Assembled reads R2">
            <filter>optional['save_assembled_reads'] == True</filter>
        </data>
        <data name="out_ua" format="fasta" from_work_dir="Uncircularized_assemblies_1_result.fasta" label="${tool.name} on ${on_string}: Uncircularized assemblies"/>
        <data name="out_ca" format="fasta" from_work_dir="Circularized_assembly_1_result.fasta" label="${tool.name} on ${on_string}: Circularized assembly"/>
        <!-- Variance -->
        <data name="out_v" format="vcf" from_work_dir="Variance_result.vcf" label="${tool.name} on ${on_string}: Variance">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['variance_detection'] == True</filter>
        </data>
        <!-- Heteroplasmy -->
        <data name="out_h" format="vcf" from_work_dir="Heteroplasmy_result.vcf" label="${tool.name} on ${on_string}: Heteroplasmy">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_ha" format="fasta" from_work_dir="Heteroplasmy_assemblies_result.fasta" label="${tool.name} on ${on_string}: Heteroplasmy assemblies">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_lth" format="tabular" from_work_dir="Linkage_table_heteroplasmy_result.txt" label="${tool.name} on ${on_string}: Linkage table heteroplasmy">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_pn" format="vcf" from_work_dir="Possible_NUMTs_result.vcf" label="${tool.name} on ${on_string}: Possible NUMTs">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_pna" format="fasta" from_work_dir="Possible_NUMTs_assemblies_result.fasta" label="${tool.name} on ${on_string}: Possible_NUMTs_assemblies_project.fasta">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_ltn" format="tabular" from_work_dir="Linkage_table_NUMTs_result.txt" label="${tool.name} on ${on_string}: Linkage table NUMTs">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_cm" format="txt" from_work_dir="Circos_mutations_result.txt" label="${tool.name} on ${on_string}: Circos mutations">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <data name="out_cl" format="txt" from_work_dir="Circos_links_result.txt" label="${tool.name} on ${on_string}: Circos links">
            <filter>reference_cond['use_reference'] == 'true' and reference_cond['heteroplasmy_cond']['detect_heteroplasmy'] == 'true'</filter>
        </data>
        <!-- Others -->
        <data name="out_l" format="txt" from_work_dir="log_result.txt" label="${tool.name} on ${on_string}: Log">
            <filter>out and 'log' in out</filter>
        </data>
        <data name="out_el" format="txt" from_work_dir="log_extended_result.txt" label="${tool.name} on ${on_string}: Extended log">
            <filter>out and 'extended_log' in out</filter>
        </data>
        <data name="out_config" format="txt" from_work_dir="config.txt" label="${tool.name} on ${on_string}: Config file">
            <filter>out and 'config' in out</filter>
        </data>
    </outputs>
    <tests>
        <!-- #1 mito, default, separate, compressed inputs -->
        <test expect_num_outputs="6">
            <conditional name="reads_cond">
                <param name="reads_sel" value="separate"/>
                <param name="forward_reads" value="forward.fasta.gz"/>
                <param name="reverse_reads" value="reverse.fasta.gz"/>
            </conditional>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <!-- fasta.gz not supported -->
            <param name="seed_input" value="seed.fasta"/>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="110"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
        <!-- #2 mito, combined, compressed inputs -->
        <test expect_num_outputs="9">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta.gz"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <param name="reference" value="reference.fasta.gz"/>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                    <param name="genome_range_min" value="12001"/>
                    <param name="genome_range_max" value="20001"/>
                </conditional>
            </section>
            <section name="read_options">
                <param name="read_length" value="150"/>
                <param name="insert_size" value="301"/>
            </section>
            <section name="assembly_options">
                <param name="extend_seed_directly" value="no"/>
                <param name="kmer" value="40"/>
            </section>
            <section name="optional">
                <param name="insert_size_auto" value="yes"/>
                <param name="use_quality_scores" value="yes"/>
            </section>
            <param name="out" value="log,extended_log,config"/>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="14"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <!-- Others -->
            <output name="out_l">
                <assert_contents>
                    <has_text_matching expression=".+Assembly 1 finished.+"/>
                </assert_contents>
            </output>
            <output name="out_el">
                <assert_contents>
                    <has_text_matching expression=".+Assembly 1 finished.+"/>
                </assert_contents>
            </output>
            <output name="out_config">
                <assert_contents>
                    <has_n_lines n="38"/>
                    <has_line line="Project:"/>
                    <has_text_matching expression=".+"/>
                </assert_contents>
            </output>
        </test>
        <!-- #3 mito, variance, decompressed inputs -->
        <test expect_num_outputs="10">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <section name="read_options">
                <param name="platform" value="illumina"/>
            </section>
            <section name="assembly_options">
                <param name="extend_seed_directly" value="no"/>
                <param name="kmer" value="40"/>
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <conditional name="reference_cond">
                <param name="use_reference" value="true"/>
                <param name="reference" value="reference.fasta"/>
                <param name="variance_detection" value="true"/>
            </conditional>
            <param name="out" value="log,extended_log,config"/>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="111"/>
                </assert_contents>
            </output>
            <!-- Variance -->
            <output name="out_v">
                <assert_contents>
                    <has_n_lines n="20"/>
                    <has_line line="##fileformat=VCFv4.0"/>
                    <has_text_matching expression="#CHROM&#009;POS&#009;ID&#009;REF&#009;ALT&#009;QUAL&#009;FILTER&#009;INFO"/>
                </assert_contents>
            </output>
            <!-- Others -->
            <output name="out_l">
                <assert_contents>
                    <has_text_matching expression=".+Assembly 1 finished.+"/>
                </assert_contents>
            </output>
            <output name="out_el">
                <assert_contents>
                    <has_text_matching expression=".+Assembly 1 finished.+"/>
                </assert_contents>
            </output>
            <output name="out_config">
                <assert_contents>
                    <has_n_lines n="38"/>
                    <has_line line="Project:"/>
                    <has_text_matching expression=".+"/>
                </assert_contents>
            </output>
        </test>
        <!-- #4 mito, untested parameters, compressed inputs -->
        <test expect_num_outputs="6">
            <conditional name="reads_cond">
                <param name="reads_sel" value="separate"/>
                <param name="forward_reads" value="forward.fasta.gz"/>
                <param name="reverse_reads" value="reverse.fasta.gz"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <section name="read_options">
                <param name="platform" value="ion"/>
            </section>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="110"/>
                </assert_contents>
            </output>
            <output name="out_ct">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
        <!-- #5 mito, heteroplasmy -->
        <test expect_num_outputs="14">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <conditional name="reference_cond">
                <param name="use_reference" value="true"/>
                <param name="reference" value="reference.fasta"/>
                <conditional name="heteroplasmy_cond">
                    <param name="detect_heteroplasmy" value="true"/>
                    <param name="maf" value="0.008"/>
                </conditional>
            </conditional>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ct">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <!-- Heteroplasmy -->
            <output name="out_h">
                <assert_contents>
                    <has_n_lines n="8"/>
                    <has_text_matching expression="#CHROM&#009;POS&#009;ID&#009;REF&#009;ALT&#009;QUAL&#009;FILTER&#009;INFO"/>
                </assert_contents>
            </output>
            <output name="out_ha">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_lth">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_pn">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_pna">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ltn">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_cm">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_cl">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
        <!-- #6 chloro, default -->
        <test expect_num_outputs="6">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="chloro"/>
                </conditional>
            </section>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="110"/>
                </assert_contents>
            </output>
            <output name="out_ct">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
        <!-- #7 mito_plant, default -->
        <test expect_num_outputs="6">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <conditional name="reference_cond">
                <param name="use_reference" value="true"/>
                <param name="reference" value="reference.fasta"/>
            </conditional>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito_plant"/>
                    <param name="chloroplast_sequence" value="chloroplast.fasta"/>
                </conditional>
            </section>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ct">
                <assert_contents>
                    <has_n_lines n="8"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="112"/>
                </assert_contents>
            </output>
        </test>
        <!-- #8 mito, heteroplasmy pcr-free parameter -->
        <test expect_num_outputs="14">
            <conditional name="reads_cond">
                <param name="reads_sel" value="combined"/>
                <param name="combined_reads" value="combined.fasta"/>
            </conditional>
            <param name="seed_input" value="seed.fasta"/>
            <conditional name="reference_cond">
                <param name="use_reference" value="true"/>
                <param name="reference" value="reference.fasta"/>
                <conditional name="heteroplasmy_cond">
                    <param name="detect_heteroplasmy" value="true"/>
                    <param name="maf" value="0.008"/>
                    <param name="pcr_free" value="true"/>
                </conditional>
            </conditional>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ct">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <!-- Heteroplasmy -->
            <output name="out_h">
                <assert_contents>
                    <has_n_lines n="8"/>
                    <has_text_matching expression="#CHROM&#009;POS&#009;ID&#009;REF&#009;ALT&#009;QUAL&#009;FILTER&#009;INFO"/>
                </assert_contents>
            </output>
            <output name="out_ha">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_lth">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_pn">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_pna">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_ltn">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_cm">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
            <output name="out_cl">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
        <!-- #9 Test insert range options 
        Test removed because those options are not available -->

        <!-- #10 Test save assembled reads option -->
        <test expect_num_outputs="8">
            <conditional name="reads_cond">
                <param name="reads_sel" value="separate"/>
                    <param name="forward_reads" value="forward.fasta.gz"/>
                    <param name="reverse_reads" value="reverse.fasta.gz"/>
            </conditional>
            <section name="assembly_options">
                <conditional name="type_cond">
                    <param name="type_sel" value="mito"/>
                </conditional>
            </section>
            <section name="optional">
                <param name="save_assembled_reads" value="true"/>
            </section>
            <!-- fasta.gz not supported -->
            <param name="seed_input" value="seed.fasta"/>
            <!-- Assembly -->
            <output name="out_c">
                <assert_contents>
                    <has_n_lines n="110"/>
                </assert_contents>
            </output>
            <output name="out_ua">
                <assert_contents>
                    <has_n_lines n="0"/>
                </assert_contents>
            </output>
        </test>
    </tests>
    <help><![CDATA[
.. class:: infomark

**What it does**

*NOVOPlasty* is a de novo assembler and heteroplasmy/variance caller for short circular genomes.

**Input**

- suitable seed: There are different types of seed possible: A single read from the dataset that originates from the organelle genome. A organelle sequence derived from the same or a related species. A complete organelle sequence of a more distant species (recommended when there is no close related sequence available)
- input reads: Either two separate files(forward and reverse) or a merged fastq/fasta file. Multiple libraries as input is not yet supported. There is also an Ion Torrent option, but it does not produce the best results.
- reference: The assembly will still be de novo, but references of the same genus can be used as a guide to resolve duplicated regions in the plant mitochondria or the inverted repeat in the chloroplast. 

**Output**

*Assembly*

- Contigs: This file contains all the assembled contigs.
- Circularized assembly: When NOVOPlasty is able to circularize one contig, without any additional contigs being produced, it will just output this circularized fasta file.
- Uncircularized assembly
- Merged contigs: When there are multiple contigs, NOVOPlasty will try to combine all contigs in to a complete circular genome, all the different possibilities can be found in this file.
- Contigs Tmp: If non of the above files are outputted or are empty, you can retrieve some contigs from this file.

*Variance*

- Variance: When the variance detection option is selected, an additional VCF file will be outputted.

*Heteroplasmy*

- Heteroplasmy: This VCF file contains all the detected heteroplasmy positions.
- Heteroplasmy assemblies: NOVOPlasty will assemble around each position of the above VCF output. The resulting assemblies will be outputted in this fasta file.
- Linkage table heteroplasmy: This file contains all the polymorphisms that are fully/partially/not linked with each detected heteroplasmic position.
- Possible NUMTs / Possible NUMTs assemblies / Linkage table NUMTs: These are the same files as the above three, but then for all the polymorphisms that were identified as NUMT origin.
- Circos mutations / Circos links: These files can be used to draw figures with Circos.

*Others*

- Log: This is a basic log file with the information that shows up on your terminal.
- Extended log: An elaborate log file.
- Config file

.. class:: infomark

**References**

More information are available on `GitHub <https://github.com/ndierckx/NOVOPlasty/>`_.
    ]]></help>
    <citations>
        <citation type="doi">10.1093/nar/gkw955</citation>
        <citation type="doi">10.1093/nargab/lqz011</citation>
    </citations>
</tool>