I am trying to write a tool that based on user criteria will run a different script.
In the code below, If I select Use_Snapshot, I see the right interface but somehow galaxy tries to execute the #else part and look for “m” input parameter. The example I have seen in documentation is using the script with same name in both if and else and the number of input arguments is the same as well. Any suggestions/ideas why always #else part gets executed although right interface appears based on user selection.
<command>
#if $source.source_select==“Use_Snapshot"
cM-snapshot.sh $input $output
#else
cM.sh $m $b $ns $w $s $z $output
#end if
</command>
<inputs>
<conditional name="source">
<param name="source_select" type="select" label="Specify the input">
<option value="Use_Snapshot">Use Snapshot</option>
<option value="Set_Values">Set Values</option>
</param>
<when value="Use_Snapshot">
<param name="input" type="data" format="dbm" size="100" label="Input Snapshot"/>
<sanitizer sanitize="False"/>
</when>
<when value="Set_Values">
<param name="m" label="Omega_m h^2" type="float" value="0.1279" min="0.120" max="0.155"/>
<param name="b" label="Omega_b h^2" type="float" value="0.0232" min="0.0215" max="0.0235"/>
<param name="ns" label="n_s" type="float" value="0.8629" min="0.85" max="1.05"/>
<param name="w" label="w" type="float" value="-1.184" min="-1.30" max="-0.70"/>
<param name="s" label="sigma_8" type="float" value="0.6159" min="0.61" max="0.9"/>
<param name="z" label="z" type="float" value="1.0" min="0.0" max="1.0"/>
<sanitizer sanitize="False"/>
</when>
</conditional>
</inputs>