changeset 2:baa1589657e1 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/main/tools/varvamp commit 7a60f4dbf7aecdc394570a48009e3283e4d83745
author iuc
date Thu, 05 Feb 2026 18:00:21 +0000
parents 209d074eb024
children
files macros.xml test-data/test1.log test-data/test2.log test-data/test3.log test-data/test4.log varvamp.xml
diffstat 6 files changed, 71 insertions(+), 94 deletions(-) [+]
line wrap: on
line diff
--- a/macros.xml	Thu Feb 13 09:20:08 2025 +0000
+++ b/macros.xml	Thu Feb 05 18:00:21 2026 +0000
@@ -1,32 +1,19 @@
 <?xml version="1.0"?>
 <macros>
-    <token name="@TOOL_VERSION@">1.2.2</token>
+    <token name="@TOOL_VERSION@">1.3</token>
     <token name="@VERSION_SUFFIX@">0</token>
-    <xml name="main_parameters">
-        <conditional name="main_params">
-            <param name="specify_how" type="select" label="How to set the main parameters, threshold for consensus nucleotides and max ambiguous nts per primer?">
-                <option value="set_n_ambig">Specify max ambiguous nts, estimate suitable threshold</option>
-                <option value="set_threshold">Specify threshold, estimate max ambiguous nts</option>
-                <option value="set_both">Specify values for both</option>
-            </param>
-            <when value="set_n_ambig">
-                <param argument="--n-ambig" type="integer" min="0" value="2" label="Maximum number of ambiguous nucleotides per primer to be tolerated (default: 2)" />
-                <yield />
-            </when>
-            <when value="set_threshold">
-                <param argument="--threshold" type="float" min="0.0" max="1.0" value="0.8" label="Threshold for consensus nucleotides" />
-            </when>
-            <when value="set_both">
-                <param argument="--threshold" type="float" min="0.0" max="1.0" value="0.8" label="Threshold for consensus nucleotides" />
-                <param argument="--n-ambig" type="integer" min="0" value="2" label="Maximum number of ambiguous nucleotides per primer to be tolerated" />
-                <yield />
-            </when>
-        </conditional>
+    <token name="@PROFILE@">24.0</token>
+    <xml name="main_parameters" token_threshold_default="" token_threshold_isoptional="true">
+        <param argument="--threshold" type="float" min="0.0" max="1.0" value="@THRESHOLD_DEFAULT@" optional="@THRESHOLD_ISOPTIONAL@" label="Threshold for consensus nucleotides" />
+        <param argument="--n-ambig" type="integer" min="0" value="2" label="Maximum number of ambiguous nucleotides per primer to be tolerated" />
     </xml>
     <xml name="amplicon_length_restrictions">
         <param argument="--opt-length" type="integer" min="1" value="1000" label="Optimal length of the amplicons" />
         <param argument="--max-length" type="integer" min="1" value="1500" label="Maximal length of the amplicons" />
     </xml>
+    <xml name="compatible_primers">
+        <param argument="--compatible-primers" type="data" format="fasta" optional="true" label="Sequences of existing primers that newly designed ones should not form dimers with" help="Any sequences longer than 40 bases in this input will be ignored. A large number of sequences to consider can significantly increase runtime." />
+    </xml>
     <xml name="blast_options">
         <conditional name="filter_blast_hits">
             <param name="choice" type="select" label="Avoid amplicons with off-target primer products?" help="This functionality requires a custom BLAST database of off-target sequences to check amplicon primer candidates against." >
@@ -83,7 +70,9 @@
                     <param name="PRIMER_GC_END_max" type="integer" min="0" max="5" value="3" label="Maximal number of GCs among the 3'-terminal 5 bases of the probe" />
                     <param name="PRIMER_MIN_3_WITHOUT_AMB" type="integer" min="0" value="3" label="Minimal length of 3'-end without ambiguous bases." />
                     <param name="PRIMER_HAIRPIN" type="integer" min="0" value="47" label="Maximal melting temperature for secondary structures (hairpins) in primer" />
-                    <param name="PRIMER_MAX_DIMER_TMP" type="integer" min="0" value="47" label="Maximal melting temperature for primer dimers (homo- or heterodimers)" />
+                    <param name="PRIMER_MAX_DIMER_TMP" type="integer" min="0" value="35" label="Melting temperature threshold for primer dimer filtering; any oligos forming a structure with a lower energy are classified as dimer-forming." />
+                    <param name="PRIMER_MAX_DIMER_DELTAG" type="integer" value="-9000" label="Gibbs free energy threshold for primer dimer filtering; any oligos forming a structure with a lower energy are classified as dimer-forming." />
+                    <param name="END_OVERLAP" type="integer" min="0" value="5" label="Maximal allowed overlap in bases between the ends of any forward and reverse oligos; oligos with a higher overlap are always classified as dimer-forming." />
                 </section>
                 <yield />
                 <section name="pcr_params" title="PCR Parameters" expanded="false">
@@ -134,4 +123,3 @@
         </param>
     </xml>
 </macros>
-
--- a/test-data/test1.log	Thu Feb 13 09:20:08 2025 +0000
+++ b/test-data/test1.log	Thu Feb 05 18:00:21 2026 +0000
@@ -1,4 +1,4 @@
-VARVAMP log 
+VARVAMP log
 
 MODE = single
 
@@ -20,7 +20,7 @@
 PRIMER_MAX_POLYX = 4
 PRIMER_MAX_DINUC_REPEATS = 4
 PRIMER_GC_END = (1, 3)
-PRIMER_MAX_DIMER_TMP = 47
+PRIMER_MAX_DIMER_TMP = 35
 PRIMER_MIN_3_WITHOUT_AMB = 3
 PCR_MV_CONC = 100
 PCR_DV_CONC = 2
@@ -32,4 +32,4 @@
 PRIMER_MAX_BASE_PENALTY = 10
 PRIMER_3_PENALTY = (32, 16, 8, 4, 2)
 PRIMER_PERMUTATION_PENALTY = 0.1
-
+END_OVERLAP = 5
--- a/test-data/test2.log	Thu Feb 13 09:20:08 2025 +0000
+++ b/test-data/test2.log	Thu Feb 05 18:00:21 2026 +0000
@@ -1,9 +1,9 @@
-VARVAMP log 
+VARVAMP log
 
 MODE = tiled
 
 WARNING: your amplicon lengths might be to small. Consider increasing
-WARNING: your intended overlap is higher than half of your optimal length. This reduces how well varvamps will find overlapping amplicons. Consider decreasing.
+WARNING: your min overlap is lower than your optimal length / 2 - 2 * min primer length. This reduces how well varvamps will find overlapping amplicons. Consider decreasing.
 
 ARG SETTINGS
 
@@ -11,7 +11,7 @@
 PRIMER_ALLOWED_N_AMB = 2
 AMPLICON_OPT_LENGTH = 150
 AMPLICON_MAX_LENGTH = 300
-MIN_OVERLAP = 76
+MIN_OVERLAP = 40
 
 CONFIG SETTINGS
 
@@ -22,7 +22,7 @@
 PRIMER_MAX_POLYX = 4
 PRIMER_MAX_DINUC_REPEATS = 4
 PRIMER_GC_END = (1, 3)
-PRIMER_MAX_DIMER_TMP = 47
+PRIMER_MAX_DIMER_TMP = 35
 PRIMER_MIN_3_WITHOUT_AMB = 3
 PCR_MV_CONC = 100
 PCR_DV_CONC = 2
@@ -34,4 +34,4 @@
 PRIMER_MAX_BASE_PENALTY = 10
 PRIMER_3_PENALTY = (32, 16, 8, 4, 2)
 PRIMER_PERMUTATION_PENALTY = 0.1
-
+END_OVERLAP = 5
--- a/test-data/test3.log	Thu Feb 13 09:20:08 2025 +0000
+++ b/test-data/test3.log	Thu Feb 05 18:00:21 2026 +0000
@@ -1,4 +1,4 @@
-VARVAMP log 
+VARVAMP log
 
 MODE = qpcr
 
@@ -8,7 +8,7 @@
 THRESHOLD = 0.7
 PRIMER_ALLOWED_N_AMB = 1
 PROBE_ALLOWED_N_AMB = 1
-TEST_DELTAG_N_AMPLICONS = 180
+TEST_DELTAG_N_AMPLICONS = 10
 DELTAG_CUTOFF = -15
 
 CONFIG SETTINGS
@@ -20,7 +20,7 @@
 PRIMER_MAX_POLYX = 4
 PRIMER_MAX_DINUC_REPEATS = 4
 PRIMER_GC_END = (1, 3)
-PRIMER_MAX_DIMER_TMP = 47
+PRIMER_MAX_DIMER_TMP = 35
 PRIMER_MIN_3_WITHOUT_AMB = 3
 PCR_MV_CONC = 100
 PCR_DV_CONC = 2
@@ -32,6 +32,7 @@
 PRIMER_MAX_BASE_PENALTY = 10
 PRIMER_3_PENALTY = (32, 16, 8, 4, 2)
 PRIMER_PERMUTATION_PENALTY = 0.1
+END_OVERLAP = 5
 QPROBE_TMP = (64, 70, 67)
 QPROBE_SIZES = (20, 30, 25)
 QPROBE_GC_RANGE = (40, 80, 60)
@@ -42,4 +43,3 @@
 QAMPLICON_LENGTH = (70, 200)
 QAMPLICON_GC = (40, 60)
 QAMPLICON_DEL_CUTOFF = 4
-
--- a/test-data/test4.log	Thu Feb 13 09:20:08 2025 +0000
+++ b/test-data/test4.log	Thu Feb 05 18:00:21 2026 +0000
@@ -1,4 +1,4 @@
-VARVAMP log 
+VARVAMP log
 
 MODE = single
 
@@ -20,7 +20,7 @@
 PRIMER_MAX_POLYX = 4
 PRIMER_MAX_DINUC_REPEATS = 4
 PRIMER_GC_END = (1, 3)
-PRIMER_MAX_DIMER_TMP = 47
+PRIMER_MAX_DIMER_TMP = 35
 PRIMER_MIN_3_WITHOUT_AMB = 3
 PCR_MV_CONC = 100.0
 PCR_DV_CONC = 2.0
@@ -32,4 +32,4 @@
 PRIMER_MAX_BASE_PENALTY = 10
 PRIMER_3_PENALTY = (32, 16, 8, 4, 2)
 PRIMER_PERMUTATION_PENALTY = 0.1
-
+END_OVERLAP = 5
--- a/varvamp.xml	Thu Feb 13 09:20:08 2025 +0000
+++ b/varvamp.xml	Thu Feb 05 18:00:21 2026 +0000
@@ -1,4 +1,4 @@
-<tool id="varvamp" name="varVAMP" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="23.0">
+<tool id="varvamp" name="varVAMP" version="@TOOL_VERSION@+galaxy@VERSION_SUFFIX@" profile="@PROFILE@">
     <description>design primers for highly diverse viruses</description>
     <macros>
         <import>macros.xml</import>
@@ -8,25 +8,21 @@
     </xrefs>
     <requirements>
         <requirement type="package" version="@TOOL_VERSION@">varvamp</requirement>
-        <requirement type="package" version="2.0.3">primer3-py</requirement>
-        <requirement type="package" version="0.7.17">seqfold</requirement>
-        <requirement type="package" version="3.12">python</requirement>
+        <requirement type="package" version="2.2">primer3-py</requirement>
+        <requirement type="package" version="0.9">seqfold</requirement>
+        <requirement type="package" version="3.13">python</requirement>
         <requirement type="package" version="9.5">coreutils</requirement>
     </requirements>
     <version_command>varvamp --version</version_command>
     <command detect_errors="exit_code"><![CDATA[
-VARVAMP_CONFIG=custom_config varvamp
-
-$mode.m_select
---name '$mode.name'
-#if $mode.main_params.specify_how in ("set_threshold", "set_both"):
-  --threshold $mode.main_params.threshold
+VARVAMP_CONFIG=custom_config varvamp $mode.m_select
+  --name '$mode.name'
+#if str($mode.threshold):
+  --threshold $mode.threshold
 #end if
-#if $mode.main_params.specify_how in ("set_n_ambig", "set_both"):
-  --n-ambig $mode.main_params.n_ambig
-  #if $mode.m_select == "qpcr":
-    --pn-ambig $mode.main_params.pn_ambig
-  #end if
+  --n-ambig $mode.n_ambig
+#if $mode.m_select == "qpcr":
+  --pn-ambig $mode.pn_ambig
 #end if
 #if str( $mode.m_select ) == "single":
   --opt-length $mode.opt_length
@@ -42,10 +38,13 @@
   --test-n $mode.test_n
   --deltaG $mode.deltaG
 #end if
+#if $mode.compatible_primers:
+  --compatible-primers '$mode.compatible_primers'
+#end if
 #if $mode.filter_blast_hits.choice == "yes":
   --database '${mode.filter_blast_hits.database.extra_files_path}/blastdb'
 #end if
---threads \${GALAXY_SLOTS:-1}
+--threads \${GALAXY_SLOTS:-2}
 
 '$alignment'
 results/
@@ -56,7 +55,7 @@
 #end if
 #if $mode.m_select == 'tiled' and $mode.scheme_outputs and 'primer_dimers' in $mode.scheme_outputs:
   ## ensure the unsolvable_primer_dimers.tsv file, which varVAMP creates only conditionally, exists in all cases, in which we try to discover it as an output
-  && cp --update=none dimers_fallback.tsv results/unsolvable_primer_dimers.tsv
+  && cp --update=none dimers_fallback.txt results/unsolvable_primer_dimers.txt
 #end if
     ]]></command>
     <configfiles>
@@ -70,6 +69,8 @@
 PRIMER_GC_END = ($mode.advanced_config.basic_primer_params.PRIMER_GC_END_min, $mode.advanced_config.basic_primer_params.PRIMER_GC_END_max)
 PRIMER_MIN_3_WITHOUT_AMB = $mode.advanced_config.basic_primer_params.PRIMER_MIN_3_WITHOUT_AMB
 PRIMER_MAX_DIMER_TMP = $mode.advanced_config.basic_primer_params.PRIMER_MAX_DIMER_TMP
+PRIMER_MAX_DIMER_DELTAG = $mode.advanced_config.basic_primer_params.PRIMER_MAX_DIMER_DELTAG
+END_OVERLAP = $mode.advanced_config.basic_primer_params.END_OVERLAP
     #if str($mode.m_select) == "qpcr":
 QPROBE_TMP = ($mode.advanced_config.qpcr_params.QPROBE_TMP_min, $mode.advanced_config.qpcr_params.QPROBE_TMP_max, $mode.advanced_config.qpcr_params.QPROBE_TMP_opt)
 QPROBE_SIZES = ($mode.advanced_config.qpcr_params.QPROBE_SIZES_min, $mode.advanced_config.qpcr_params.QPROBE_SIZES_max, $mode.advanced_config.qpcr_params.QPROBE_SIZES_opt)
@@ -78,7 +79,6 @@
 QPRIMER_DIFF = $mode.advanced_config.qpcr_params.QPRIMER_DIFF
 QPROBE_TEMP_DIFF = ($mode.advanced_config.qpcr_params.QPROBE_TEMP_DIFF_min, $mode.advanced_config.qpcr_params.QPROBE_TEMP_DIFF_max)
 QPROBE_DISTANCE = ($mode.advanced_config.qpcr_params.QPROBE_DISTANCE_min, $mode.advanced_config.qpcr_params.QPROBE_DISTANCE_max)
-END_OVERLAP = $mode.advanced_config.qpcr_params.END_OVERLAP
 QAMPLICON_LENGTH = ($mode.advanced_config.qpcr_params.QAMPLICON_LENGTH_min, $mode.advanced_config.qpcr_params.QAMPLICON_LENGTH_max)
 QAMPLICON_GC = ($mode.advanced_config.qpcr_params.QAMPLICON_GC_min, $mode.advanced_config.qpcr_params.QAMPLICON_GC_max)
 QAMPLICON_DEL_CUTOFF =  $mode.advanced_config.qpcr_params.QAMPLICON_DEL_CUTOFF
@@ -109,7 +109,7 @@
     #end if
   #end if
         ]]></configfile>
-        <configfile filename="dimers_fallback.tsv"><![CDATA[#set $line = '\t'.join(['pool', 'primer_name_1', 'primer_name_2', 'dimer melting temp'])
+        <configfile filename="dimers_fallback.txt"><![CDATA[#set $line = '\t'.join(['pool', 'primer 1', 'primer 2', 'dimer melting temp', 'deltaG'])
 $line]]></configfile>
     </configfiles>
     <inputs>
@@ -124,6 +124,7 @@
                 <param argument="--name" type="text" value="AMPLICON" label="Name your amplicon" help="This name will be used in various outputs of the tool." />
                 <expand macro="main_parameters" />
                 <expand macro="amplicon_length_restrictions" />
+                <expand macro="compatible_primers" />
                 <expand macro="blast_options" />
                 <conditional name="limit_report">
                     <param name="choice" type="select" label="Limit the number of amplicons to report?">
@@ -149,12 +150,13 @@
                 <param argument="--name" type="text" value="TILED_SCHEME" label="Name your primer scheme" help="This name will be used in various outputs of the tool." />
                 <expand macro="main_parameters" />
                 <expand macro="amplicon_length_restrictions" />
-                <param argument="--overlap" type="integer" min="1" value="100" label="Minimal required overlap between tiled amplicon inserts" help="default: 100" />
+                <param argument="--overlap" type="integer" min="0" value="25" label="Minimal required overlap between tiled amplicon inserts." help="A value of zero means that for any two overlapping amplicons the right amplicon's 5'-primer and the left amplicon's 3'-primer could be directly adjacent with no amplified insert between them. (default: 25)" />
+                <expand macro="compatible_primers" />
                 <expand macro="blast_options" />
                 <expand macro="customize_advanced" />
                 <expand macro="primer_scheme_outputs">
                     <option value="amplicon_assignment" selected="true">Primer-to-amplicon assignment in tabular format; lists primers belonging to the same amplicon on one line; required input for automated primer trimming in some downstream analysis workflows</option>
-                    <option value="primer_dimers" selected="true">If any primers in the tiling scheme are predicted to form primer dimers, details about these will be found in this tabular output.</option>
+                    <option value="primer_dimers" selected="true">If any primers in the tiling scheme are predicted to form primer dimers, details about these will be found in this output.</option>
                 </expand>
                 <expand macro="consensus_outputs" />
                 <expand macro="graphical_outputs" />
@@ -164,11 +166,11 @@
             </when>
             <when value="qpcr">
                 <param argument="--name" type="text" value="QPCR_SCHEME" label="Name your qPCR scheme" help="This name will be used in various outputs of the tool." />
-                <expand macro="main_parameters">
-                    <param argument="--pn-ambig" type="integer" min="0" value="1" label="Maximum number of ambiguous nucleotides per qPCR probe to be tolerated" help="To enforce specificity of detection, varVAMP will refuse to work if you set this value higher than for the amplicon primers above, and you may actually want to set it slightly lower than that value." />
-                </expand>
+                <expand macro="main_parameters" threshold_default="0.8" threshold_isoptional="false" />
+                <param argument="--pn-ambig" type="integer" min="0" value="1" label="Maximum number of ambiguous nucleotides per qPCR probe to be tolerated" help="To enforce specificity of detection, varVAMP will refuse to work if you set this value higher than for the amplicon primers above, and you may actually want to set it slightly lower than that value." />
                 <param argument="--test-n" type="integer" min="1" value="50" label="Top n qPCR amplicons to test" help="test the top n qPCR amplicons for secondary structures at the minimal primer temperature. (default: 50)" />
-                <param argument="--deltaG" type="integer" value="-3" label="Minimum free energy (kcal/mol/K) cutoff" help="Minimum free energy (kcal/mol/K) cutoff at the lowest primer melting temperature. (default: -3." />
+                <param argument="--deltaG" type="integer" value="-3" label="Minimum free energy (kcal/mol/K) cutoff" help="Minimum free energy (kcal/mol/K) cutoff at the lowest primer melting temperature. (default: -3)" />
+                <expand macro="compatible_primers" />
                 <expand macro="blast_options" />
                 <expand macro="customize_advanced">
                     <section name="qpcr_params" title="Constraints on qPCR probes and amplicons" expanded="false">
@@ -190,7 +192,6 @@
                         <param name="QPROBE_TEMP_DIFF_max" type="integer" min="0" value="10" label="Maximal melting temperature difference between qPCR probe and primers" />
                         <param name="QPROBE_DISTANCE_min" type="integer" min="0" value="4" label="Minimal distance of the qPCR probe from the primer on the same strand" />
                         <param name="QPROBE_DISTANCE_max" type="integer" min="0" value="15" label="Maximal distance of the qPCR probe from the primer on the same strand" />
-                        <param name="END_OVERLAP" type="integer" min="0" value="5" label="End Overlap" help="Maximal overlap in bases between the ends of the qPCR probe and the primer on the opposite strand" />
                         <param name="QAMPLICON_LENGTH_min" type="integer" min="0" value="70" label="Minimal length of qPCR amplicons" />
                         <param name="QAMPLICON_LENGTH_max" type="integer" min="0" value="200" label="Maximal length of qPCR amplicons" />
                         <param name="QAMPLICON_GC_min" type="integer" min="0" max="100" value="40" label="Minimal GC-content of qPCR amplicons" />
@@ -234,7 +235,7 @@
         <data name="primer_amplicon_assignments" format="tabular" from_work_dir="results/primer_to_amplicon_assignment.tabular" label="${tool.name} on ${on_string}: Primer to amplicon assignments">
             <filter>mode['scheme_outputs'] and 'amplicon_assignment' in mode['scheme_outputs']</filter>
         </data>
-        <data name="unresolved_primer_dimers" format="tabular" from_work_dir="results/unsolvable_primer_dimers.tsv" label="${tool.name} on ${on_string}: Unresolved primer dimers">
+        <data name="unresolved_primer_dimers" format="txt" from_work_dir="results/unsolvable_primer_dimers.txt" label="${tool.name} on ${on_string}: Unresolved primer dimers">
             <filter>mode['scheme_outputs'] and 'primer_dimers' in mode['scheme_outputs']</filter>
         </data>
         <data name="ambiguous_consensus" format="fasta" from_work_dir="results/ambiguous_consensus.fasta" label="${tool.name} on ${on_string}: Ambiguous consensus sequence">
@@ -267,11 +268,8 @@
             <param name="alignment" value="hepatitis_e_aln_shrunk.fasta"/>
             <conditional name="mode">
                 <param name='m_select' value="single"/>
-                <conditional name="main_params">
-                    <param name="specify_how" value="set_both"/>
-                    <param name="threshold" value="0.8"/>
-                    <param name="n_ambig" value="3"/>
-                </conditional>
+                <param name="threshold" value="0.8"/>
+                <param name="n_ambig" value="3"/>
                 <param name="opt_length" value="300"/>
                 <param name="max_length" value="400"/>
                 <conditional name="limit_report">
@@ -315,14 +313,11 @@
             <param name="alignment" value="hepatitis_e_aln_shrunk.fasta"/>
             <conditional name="mode">
                 <param name='m_select' value="tiled"/>
-                <conditional name="main_params">
-                    <param name="specify_how" value="set_both"/>
-                    <param name="threshold" value="0.6"/>
-                    <param name="n_ambig" value="2"/>
-                </conditional>
+                <param name="threshold" value="0.6"/>
+                <param name="n_ambig" value="2"/>
                 <param name="opt_length" value="150"/>
                 <param name="max_length" value="300"/>
-                <param name="overlap" value="76"/>
+                <param name="overlap" value="40"/>
             </conditional>
             <output name="varvamp_log" ftype="txt" compare="contains" file="test2.log" />
             <output name="primers_bed" ftype="bed">
@@ -341,7 +336,7 @@
                     <has_n_columns n="2"/>
                 </assert_contents>
             </output>
-            <output name="unresolved_primer_dimers" ftype="tabular">
+            <output name="unresolved_primer_dimers" ftype="txt">
                 <assert_contents>
                     <has_n_lines n="1"/>
                 </assert_contents>
@@ -365,13 +360,10 @@
             <param name="alignment" value="hepatitis_e_aln_shrunk.fasta"/>
             <conditional name="mode">
                 <param name='m_select' value="qpcr"/>
-                <conditional name="main_params">
-                    <param name="specify_how" value="set_both"/>
-                    <param name="threshold" value="0.7"/>
-                    <param name="n_ambig" value="1"/>
-                    <param name="pn_ambig" value="1"/>
-                </conditional>
-                <param name="test_n" value="180"/>
+                <param name="threshold" value="0.7"/>
+                <param name="n_ambig" value="1"/>
+                <param name="pn_ambig" value="1"/>
+                <param name="test_n" value="10"/>
                 <param name="deltaG" value="-15"/>
             </conditional>
             <output name="varvamp_log" ftype="txt" compare="contains" file="test3.log" />
@@ -406,11 +398,8 @@
             <param name="alignment" value="hepatitis_e_aln_shrunk.fasta"/>
             <conditional name="mode">
                 <param name='m_select' value="single"/>
-                <conditional name="main_params">
-                    <param name="specify_how" value="set_both"/>
-                    <param name="threshold" value="0.8"/>
-                    <param name="n_ambig" value="3"/>
-                </conditional>
+                <param name="threshold" value="0.8"/>
+                <param name="n_ambig" value="3"/>
                 <param name="opt_length" value="300"/>
                 <param name="max_length" value="400"/>
                 <conditional name="limit_report">
@@ -424,10 +413,10 @@
                         <param name="PRIMER_GC_RANGE_max" value="80"/>
                     </section>
                 </conditional>
-                <param name="scheme_outputs" value=""/>
-                <param name="aln_cons_outputs" value=""/>
-                <param name="plot_outputs" value=""/>
-                <param name="misc_outputs" value=""/>
+                <param name="scheme_outputs" value_json="null"/>
+                <param name="aln_cons_outputs" value_json="null"/>
+                <param name="plot_outputs" value_json="null"/>
+                <param name="misc_outputs" value_json="null"/>
             </conditional>
             <output name="varvamp_log" ftype="txt" compare="contains" file="test4.log" />
         </test>
@@ -465,6 +454,6 @@
 As a first check whether a new alignment of viral sequences can be used with specific settings of the tool, it may help to disable all configurable outputs, which will leave you with only the Analysis Log. This will be enough to see if there are any errors with the combination of alignment and settings, and whether you are on a roughly correct track (varVAMP reports some primers, for example). This way, you're not flooding your analysis history with lots of likely useless datasets, and once you've fixed potential issues you can add back more outputs and rerun the analysis.
     ]]></help>
     <citations>
-        <citation type="doi">10.5281/zenodo.10908223</citation>
+        <citation type="doi">10.1038/s41467-025-60175-9</citation>
     </citations>
 </tool>