<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pise PUBLIC "pise2.dtd" "pise2.dtd" >
<pise>
	<head>
		<title>EPA-NG on ACCESS</title>
		<version>0.3.8</version>
		<description>Massively Parallel Evolutionary Placement of Genetic Sequences - run on XSEDE</description>
		<authors>Pierre Barbera, Alexey M Kozlov, Lucas Czech, Benoit Morel, Diego Darriba, Tomáš Flouri, Alexandros Stamatakis,.</authors>
		<reference>Pierre Barbera, Alexey M Kozlov, Lucas Czech, Benoit Morel, Diego Darriba, Tomáš Flouri, Alexandros Stamatakis, EPA-ng: Massively Parallel Evolutionary Placement of Genetic Sequences, Systematic Biology, Volume 68, Issue 2, March 2019, Pages 365–369, https://doi.org/10.1093/sysbio/syy054</reference>
		<category>Phylogeny / Alignment</category>
	</head>
	
	<command>epa_ng_xsede</command>
<!--
*****************************************************************************************************************************************
Created by Mark Miller for CSG, 2/07/2020 or thereabouts
*****************************************************************************************************************************************
epa-ng - Massively-Parallel Evolutionary Placement Algorithm
Usage: epa-ng [OPTIONS]

Options:
  -h,-*help                   Print this help message and exit
  -v,-*version                Display version.
  -*verbose                   Display debug output.


Convert:
  -c,-*bfast TEXT:FILE        Convert the given fasta file to bfast format.
  -B,-*dump-binary            Binary Dump mode: write ref. tree in binary format then exit. NOTE: not compatible with premasking!
  -*split TEXT:FILE ...       Takes a reference MSA (phylip/fasta/fasta.gz) and combined ref + query MSA(s) (phylip/fasta/fasta.gz) and outputs a monolithic query file (fasta), as well as a reference file (fasta), ready for use. Usage: epa-ng -*split ref_alignment query_alignments+


Input:
  -t,-*tree TEXT:FILE Excludes: -*binary
                              Path to Reference Tree file.
  -s,-*ref-msa,-*msa TEXT:FILE Excludes: -*binary
                              Path to Reference MSA file.
  -b,-*binary TEXT:FILE Excludes: -*tree -*ref-msa
                              Path to binary reference file, as created using -*dump-binary.
  -q,-*query TEXT:FILE        Path to Query MSA file.
  -m,-*model TEXT=GTR+G       Description string of the model to be used, or a RAxML_info file. -*model STRING | FILE See: https://github.com/amkozlov/raxml-ng/wiki/Input-data#evolutionary-model


Output:
  -w,-*outdir,-*out-dir TEXT:DIR=./
                              Path to output directory.
  -*filter-acc-lwr FLOAT:FLOAT in [0 - 1] Excludes: -*filter-min-lwr
                              Accumulated likelihood weight after which further placements are discarded.
  -*filter-min-lwr FLOAT:FLOAT in [0 - 1]=0.01 Excludes: -*filter-acc-lwr
                              Minimum likelihood weight below which a placement is discarded.
  -*filter-min UINT=1         Minimum number of placements per sequence to include in final output.
  -*filter-max UINT=7         Maximum number of placements per sequence to include in final output.
  -*precision UINT=10         Output decimal point precision for floating point numbers.
  -*redo                      Overwrite existing files.
  -*preserve-rooting TEXT:{off,on}
                              Preserve the rooting of rooted trees. When disabled, EPA-ng will print the result as an unrooted tree.


Compute:
  -g,-*dyn-heur FLOAT:FLOAT in [0 - 1]=0.99999 Excludes: -*fix-heur -*baseball-heur -*no-heur
                              Two-phase heuristic, determination of candidate edges using accumulative threshold. Enabled by default! See -*no-heur for disabling it
  -G,-*fix-heur FLOAT:FLOAT in [0 - 1] Excludes: -*dyn-heur -*baseball-heur -*no-heur
                              Two-phase heuristic, determination of candidate edges by specified percentage of total edges.
  -*baseball-heur Excludes: -*dyn-heur -*fix-heur -*no-heur
                              Baseball heuristic as known from pplacer. strike_box=3,max_strikes=6,max_pitches=40.
  -*no-heur Excludes: -*dyn-heur -*fix-heur -*baseball-heur
                              Disables heuristic preplacement completely. Overrides all other heuristic flags.
  -*chunk-size UINT=5000      Number of query sequences to be read in at a time. May influence performance.
  -*raxml-blo                 Employ old style of branch length optimization during thorough insertion as opposed to sliding approach. WARNING: may significantly slow down computation.
  -*no-pre-mask               Do NOT pre-mask sequences. Enables repeats unless -*no-repeats is also specified.
  -*rate-scalers TEXT:{off,on,auto}
                              Use individual rate scalers. Important to avoid numerical underflow in taxa rich trees.
  -T,-*threads UINT=0         Number of threads to use. If 0 is passed as argument,program will run with the maximum number of threads available.

 -->
<parameters>
<!--  submission on comet: the invocation line and any needed thread specification  -->
					<parameter ismandatory="1" ishidden="1" type="String">
						<name>exabayes_15</name>
						<attributes> 
							<format> 
								<language>perl</language>		
								<code>"epa_ng_expanse"</code>
							</format>  
							<group>0</group>
						</attributes>
					</parameter>									

<!--  configuration of scheduler.conf, revised 5/30/2024 

All runs are on a single node of Expanse.
Ask the user whether maximum memory is needed.

- If not, use 48 cores with 96 GB of memory,
  and include the following in the run script.

  #SBATCH -p shared
  #SBATCH -qos=shared-cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=1
  #SBATCH -*cpus-per-task=48
  #SBATCH -*mem=96G
  ...
  srun -n 1 -*mpi=pmi2 <wrapper> ... -T 48

- Otherwise, use 128 cores with 243 GB of memory,
  and include the following in the run script.

  #SBATCH -p compute
  #SBATCH -qos=cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=1
  #SBATCH -*cpus-per-task=128
  #SBATCH -*mem=243G
  ...
  srun -n 1 -*mpi=pmi2 <wrapper> ... -T 128
-->												
				<parameter type="String" ishidden="1" >
					<name>conf_fileregmem</name>
					<attributes>
						<group>2</group>
						<paramfile>scheduler.conf</paramfile>
						<precond>
							<language>perl</language>
							<code>!$more_memory</code>
						</precond>
						<format>
							<language>perl</language>
							<code>
									"ChargeFactor=1.0\\n" .
									"mem=96G\\n" .
									"nodes=1\\n" .
									"node_exclusive=0\\n" .
									"threads_per_process=48\\n"
							</code>
						</format>
					</attributes>
				</parameter>
												
				<parameter type="String" ishidden="1" >
					<name>conf_filehighmem</name>
					<attributes>
						<group>2</group>
						<paramfile>scheduler.conf</paramfile>
						<precond>
							<language>perl</language>
							<code>$more_memory</code>
						</precond>
						<format>
							<language>perl</language>
							<code>
									"ChargeFactor=1.0\\n" .
									"mem=243G\\n" .
									"nodes=1\\n" .
									"node_exclusive=1\\n" .
									"threads_per_process=128\\n"
							</code>
						</format>
					</attributes>
				</parameter>
<!-- end number of nodes -->
<!-- number of threads -->
				
		<parameter issimple="1" ishidden="1"  type="String">
			<name>specify_threads_regmem</name>
			<attributes>
				<precond>
					<language>perl</language>
					<code>!$more_memory</code>
				</precond>
				<format>
					<language>perl</language>
					<code>"-T 48"</code>
				</format>
				<group>99</group>
			</attributes>
			</parameter> 
			
		<parameter issimple="1" ishidden="1"  type="String">
			<name>specify_threads_highmem</name>
			<attributes>
				<precond>
					<language>perl</language>
					<code>$more_memory</code>
				</precond>
				<format>
					<language>perl</language>
					<code>"-T 128"</code>
				</format>
				<group>99</group>
			</attributes>
			</parameter> 


<!-- input file specification -->
<!-- the input file to be operated on ends the command line -->
		<parameter issimple="1" ismandatory="1" isinput="1" type="Sequence">
			<name>infile</name>
			<attributes>
				<prompt>Input Tree File (must be in Newick format)</prompt>
				<format>
					<language>perl</language>
					<code>"--tree infile_tree.txt"</code>
				</format>
				<group>5</group>
				<filenames>infile_tree.txt</filenames>
			</attributes>
		</parameter>

<!-- Output section. -->
<!--   -w,-*outdir,-*out-dir TEXT:DIR=./ Path to output directory -->
		<parameter ishidden="1" type="String">
			<name>set_outdir</name>
			<attributes>
				<format>
					<language>perl</language>
					<code>"--out-dir ./"</code>
				</format>
			</attributes>
		</parameter>
	
<!-- Results section. To start we return all results files available-->
		<parameter ishidden="1" type="Results">
			<name>all_results</name>
			<attributes>
				<filenames>*</filenames>
			</attributes>
		</parameter>
		
<!-- This section provides visible queries that help configure the interface  -->

<!-- this sets the run time -->
				<parameter type="Float" issimple="1" ismandatory="1">
					<name>runtime</name> 
					<attributes>
						<group>1</group>
						<paramfile>scheduler.conf</paramfile>
						<prompt>Maximum Hours to Run (up to 168 hours)</prompt>
						<format>
							<language>perl</language>
							<code>"runhours=$value\\n"</code>
						</format>
						<vdef>
							<value>0.5</value>
						</vdef>
						<ctrls>
							<ctrl>
								<message>The maximum hours to run must be less than 168</message>
								<language>perl</language>
								<code>$runtime &gt; 168.0</code>
							</ctrl>
							<ctrl>
								<message>The maximum hours to run must be greater than 0.05</message>
								<language>perl</language>
								<code>$runtime &lt; 0.05</code>
							</ctrl>
						</ctrls>
						<warns>
							<warn>
								<message>The job will run on 48 processors as configured. If it runs for the entire configured time, it will consume 48 X $runtime cpu hours</message>
								<language>perl</language>
								<code>$runtime &gt;  0 &amp;&amp; !$more_memory</code>
							</warn>
							<warn>
								<message>The job will run on 128 processors as configured. If it runs for the entire configured time, it will consume 128 X $runtime cpu hours</message>
								<language>perl</language>
								<code>$runtime &gt;  0 &amp;&amp; $more_memory</code>
							</warn>
						</warns>						
						<comment>
<value>Estimate the maximum time your job will need to run. We recommend testing initially with a &lt; 0.5hr test run because Jobs set for 0.5 h or less depedendably run immediately in the "debug" queue. 
Once you are sure the configuration is correct, you then increase the time. The reason is that jobs &gt; 0.5 h are submitted to the "normal" queue, where jobs configured for 1 or a few hours times may
	run sooner than jobs configured for the full 168 hours. 
</value>
						</comment>
					</attributes>
				</parameter>
				
<!-- input files -->
<!--  -s,-*ref-msa,-*msa TEXT:FILE Excludes: -*binary
                              Path to Reference MSA file.
  -b,-*binary TEXT:FILE Excludes: -*tree -*ref-msa
                              Path to binary reference file, as created using -*dump-binary.
  -q,-*query TEXT:FILE        Path to Query MSA file.
  -m,-*model TEXT=GTR+G       Description string of the model to be used, or a RAxML_info file. -*model STRING | FILE See: https://github.com/amkozlov/raxml-ng/wiki/Input-data#evolutionary-model
 -->
 	<parameter issimple="1" type="InFile">
					<name>ref_file</name>
					<attributes>
						<group>12</group>
						<prompt>Select ref-msa file</prompt>
						<format>
							<language>pise</language>
							<code>(defined $ref_file) ? "--ref-msa ref_msa.fasta":""</code>
						</format>
						<filenames>ref_msa.fasta</filenames>
					</attributes>
				</parameter>

<!--   -b,-*binary TEXT:FILE Excludes: -*tree -*ref-msa
                              Path to binary reference file, as created using -*dump-binary.-->
				<parameter issimple="1" type="InFile">
					<name>binary_file</name>
					<attributes>
						<group>12</group>
						<prompt>Select binary file</prompt>
						<precond>
							<language>perl</language>
							<code>!defined $ref_file</code>
						</precond>
						<format>
							<language>pise</language>
							<code>(defined $binary_file) ? "--binary ref_binary.bin":""</code>
						</format>
						<filenames>ref_binary.bin</filenames>
						<comment>
							<value></value>
						</comment>
					</attributes>
				</parameter> 

<!--   -q,-*query TEXT:FILE        Path to Query MSA file.-->						
				<parameter issimple="1" type="InFile">
					<name>query_file</name>
					<attributes>
						<group>12</group>
						<prompt>Select query file</prompt>
	 					<format>
							<language>pise</language>
							<code>(defined $query_file) ? "--query query.txt":""</code>
						</format> 
						<filenames>query.txt</filenames>
						<ctrls>
							<ctrl>
								<message>Please select either a text reference file or a binary</message>
								<language>perl</language>
								<code>!defined $ref_file &amp;&amp; !defined $binary_file</code>
							</ctrl>
							<ctrl>
								<message>Please select a query file</message>
								<language>perl</language>
								<code>!defined $query_file</code>
							</ctrl>
						</ctrls>
					</attributes>
				</parameter> 

<!-- -m,-*model TEXT=GTR+G      a RAxML_info file. -*model STRING | FILE See: https://github.com/amkozlov/raxml-ng/wiki/Input-data#evolutionary-model -->
				<parameter issimple="1" type="InFile">
					<name>raxquery_file</name>
					<attributes>
						<group>12</group>
						<prompt>Select RAxML info file</prompt>
	 					<format>
							<language>pise</language>
							<code>(defined $raxquery_file) ? "--model model.txt":""</code>
						</format> 
						<filenames>model.txt</filenames>
						<comment>
							<value>As of version 0.2.0, GTRGAMMA model parameters have to be specified explicitly. There are currently two ways of doing this: Either specify a raxml-ng-style model descriptor (elaborated here), like so:

epa-ng -*model GTR{0.7/1.8/1.2/0.6/3.0/1.0}+FU{0.25/0.23/0.30/0.22}+G4{0.47} ... or pass a file containing the relevant information, coming from one of the supported tree inference programs. 
							</value>
							<value>RECOMMENDED In the case of raxml-ng, pass the [...].bestModel file resulting from an evaluation run to EPA-ng:
							This method has support for pretty much every model that raxml-ng supports, 
							so it is highly recommended you do it this way. Alternatively we also support parsing 
							the model parameters either from RAxML 8.x info files, or from IQ-TREE report files, 
							though there may be parsing problems as not all models are covered.</value>
						</comment>
					</attributes>
				</parameter>
				
			<parameter issimple="1" type="String">
					<name>model_string</name>
					<attributes>
						<group>12</group>
						<prompt>Specify the model with a text string</prompt>
	 					<format>
							<language>pise</language>
							<code>(defined $model_string) ? "--model $model_string":""</code>
						</format> 
					<ctrls>
							<ctrl>
								<message>Please specify the model parameters with a file or a text string</message>
								<language>perl</language>
								<code>!defined $raxquery_file &amp;&amp; !defined $model_string</code>
							</ctrl>
							<ctrl>
								<message>Sorry, you cannot select a parameter file AND add these values as a string</message>
								<language>perl</language>
								<code>defined $raxquery_file &amp;&amp; defined $model_string</code>
							</ctrl>
						</ctrls>
						<comment>
							<value>As of version 0.2.0, GTRGAMMA model parameters have to be specified explicitly. There are currently two ways of doing this: Either specify a raxml-ng-style model descriptor (elaborated here), like so:

epa-ng -*model GTR{0.7/1.8/1.2/0.6/3.0/1.0}+FU{0.25/0.23/0.30/0.22}+G4{0.47} ... or pass a file containing the relevant information, coming from one of the supported tree inference programs. 
							</value>
							<value>RECOMMENDED In the case of raxml-ng, pass the [...].bestModel file resulting from an evaluation run to EPA-ng:
							This method has support for pretty much every model that raxml-ng supports, 
							so it is highly recommended you do it this way. Alternatively we also support parsing 
							the model parameters either from RAxML 8.x info files, or from IQ-TREE report files, 
							though there may be parsing problems as not all models are covered.</value>
						</comment>
					</attributes>
				</parameter>
				
		<parameter issimple="1" type="Switch">
			<name>more_memory</name>
			<attributes>
				<prompt>I need more memory</prompt>	
			</attributes>
			</parameter> 
				
<!--  
  -*chunk-size UINT=5000      Number of query sequences to be read in at a time. May influence performance.
  -*raxml-blo                 Employ old style of branch length optimization during thorough insertion as opposed to sliding approach. WARNING: may significantly slow down computation.
  -*no-pre-mask               Do NOT pre-mask sequences. Enables repeats unless -*no-repeats is also specified.
  -*rate-scalers TEXT:{off,on,auto}
                              Use individual rate scalers. Important to avoid numerical underflow in taxa rich trees. -->				
<parameter type="Paragraph">
<paragraph>
		<name>compute_opts</name>
		<prompt>Compute Options</prompt>
		<parameters>
		
<!--  -g,-*dyn-heur FLOAT:FLOAT in [0 - 1]=0.99999 Excludes: -*fix-heur -*baseball-heur -*no-heur
                              Two-phase heuristic, determination of candidate edges using accumulative threshold. Enabled by default! See -*no-heur for disabling it
  -G,-*fix-heur FLOAT:FLOAT in [0 - 1] Excludes: -*dyn-heur -*baseball-heur -*no-heur
                              Two-phase heuristic, determination of candidate edges by specified percentage of total edges.
  -*baseball-heur Excludes: -*dyn-heur -*fix-heur -*no-heur
                              Baseball heuristic as known from pplacer. strike_box=3,max_strikes=6,max_pitches=40.
  -*no-heur Excludes: -*dyn-heur -*fix-heur -*baseball-heur
                              Disables heuristic preplacement completely. Overrides all other heuristic flags. -->		
		
			<parameter type="Excl">
			<name>choose_heuristic</name>
			<attributes>
				<prompt>Choose your heuristic</prompt>
				<vlist>
					<value>dyn-heur</value>
					<label>dynamic heuristic</label>
					<value>fix-heur</value>
					<label>fixed heuristic</label>
					<value>baseball-heur</value>
					<label>baseball heuristic</label>
					<value>no-heur</value>
					<label>no heuristic</label>
				</vlist>
				<flist>
					<value>dyn-heur</value>
					<code>"--dyn-heur $specify_dynamic"</code>
					<value>fix-heur</value>
					<code>"--fix-heur $specify_fixed"</code>
					<value>baseball-heur</value>
					<code>"--baseball-heur"</code>
					<value>no-heur</value>
					<code>"--no-heur"</code>
				</flist>
<comment>
<value>  -g,-*dyn-heur FLOAT:FLOAT in [0 - 1]=0.99999 Excludes: -*fix-heur -*baseball-heur -*no-heur
 Two-phase heuristic, determination of candidate edges using accumulative threshold. Enabled by default! See -*no-heur for disabling it
-G,-*fix-heur FLOAT:FLOAT in [0 - 1] Excludes: -*dyn-heur -*baseball-heur -*no-heur
Two-phase heuristic, determination of candidate edges by specified percentage of total edges.
  -*baseball-heur Excludes: -*dyn-heur -*fix-heur -*no-heur
Baseball heuristic as known from pplacer. strike_box=3,max_strikes=6,max_pitches=40.
  -*no-heur Excludes: -*dyn-heur -*fix-heur -*baseball-heur</value>
</comment>				
			</attributes>
			</parameter>
			
	<parameter type="Float">
			<name>specify_dynamic</name>
			<attributes>
				<prompt>Provide a value for the dynamic heuristic</prompt>	
				<precond>
					<language>perl</language>
					<code>$choose_heuristic eq "dyn-heur"</code>
				</precond>
				<vdef>
					<value>0.9999</value>
				</vdef>	
				<ctrls>
					<ctrl>
						<message>Please enter a value for the dynamic heuristic</message>
						<language>perl</language>
						<code>$choose_heuristic eq "dyn-heur" &amp;&amp; !defined $specify_dynamic</code>
					</ctrl>
					<ctrl>
						<message>Value for the dynamic heuristic must be between 0 and 1</message>
						<language>perl</language>
						<code>$choose_heuristic eq "dyn-heur" &amp;&amp; ($specify_dynamic &gt; 1 || $specify_dynamic &lt; 0 ) </code>
					</ctrl>
				</ctrls>
			</attributes>
			</parameter>
		
		<parameter type="Float">
			<name>specify_fixed</name>
			<attributes>
				<prompt>Provide a value for the fixed heuristic</prompt>
				<precond>
					<language>perl</language>
					<code>$choose_heuristic eq "fix-heur"</code>
				</precond>	
				<ctrls>
					<ctrl>
						<message>Please enter a value for the fixed hueristic</message>
						<language>perl</language>
						<code>$choose_heuristic eq "fix-heur" &amp;&amp; !defined $specify_fixed</code>
					</ctrl>
					<ctrl>
						<message>The value for the fixed hueristic must be beteen 0 and 1 </message>
						<language>perl</language>
						<code>$choose_heuristic eq "fix-heur" &amp;&amp; ($specify_fixed &gt; 1 || $specify_fixed &lt; 0)</code>
					</ctrl>
				</ctrls>		
			</attributes>
			</parameter>

<!--   -*chunk-size UINT=5000      Number of query sequences to be read in at a time. May influence performance. 		-->			
		<parameter type="Integer">
			<name>specify_queryseq</name>
			<attributes>
				<prompt>Number of query sequences to be read in at a time. (--chunk-size)</prompt>
				<format>
					<language>perl</language>
					<code>(defined $specify_queryseq) ? "--chunk-size $specify_queryseq":"" </code>
				</format>		
			</attributes>
			</parameter>

<!--Employ old style of branch length optimization during thorough insertion as opposed to sliding approach. WARNING: may significantly slow down computation. -->			
		<parameter type="Switch">
			<name>employ_queryseq</name>
			<attributes>
				<prompt>Employ old style of branch length optimization during thorough insertion. (--raxml-blo)</prompt>
				<format>
					<language>perl</language>
					<code>($value) ? "--raxml-blo":"" </code>
				</format>		
			</attributes>
			</parameter>

<!--   -*no-pre-mask               Do NOT pre-mask sequences. Enables repeats unless -*no-repeats is also specified. -->			
		<parameter type="Switch">
			<name>no_premask</name>
			<attributes>
				<prompt>Do not pre-mask sequences. (--no-pre-mask)</prompt>
				<format>
					<language>perl</language>
					<code>($value) ? "--no-pre-mask":"" </code>
				</format>		
			</attributes>
			</parameter>			

<!--   -*rate-scalers TEXT:{off,on,auto}
                              Use individual rate scalers. Important to avoid numerical underflow in taxa rich trees. -->	
		<parameter type="Excl">
			<name>rate_scalers</name>
			<attributes>
				<prompt>Use individual rate scalers? (--rate-scalers)</prompt>
				<vlist>
					<value>off</value>
					<label>off</label>
					<value>on</value>
					<label>on</label>
					<value>auto</value>
					<label>auto</label>
				</vlist>	
				<format>
					<language>perl</language>
					<code>"--rate-scalers $value"</code>
				</format>	
			</attributes>
			</parameter>		
		</parameters>
</paragraph>
</parameter>

<parameter type="Paragraph">
<paragraph>
		<name>output_opts</name>
		<prompt>Output Options</prompt>
		<parameters>
<!-- 
  -*filter-acc-lwr FLOAT:FLOAT in [0 - 1] Excludes: -*filter-min-lwr
                              Accumulated likelihood weight after which further placements are discarded.
  -*filter-min-lwr FLOAT:FLOAT in [0 - 1]=0.01 Excludes: -*filter-acc-lwr
                              Minimum likelihood weight below which a placement is discarded.
  -*filter-min UINT=1         Minimum number of placements per sequence to include in final output.
  -*filter-max UINT=7         Maximum number of placements per sequence to include in final output.
  -*precision UINT=10         Output decimal point precision for floating point numbers.
  -*redo                      Overwrite existing files.
  -*preserve-rooting TEXT:{off,on}
                              Preserve the rooting of rooted trees. When disabled, EPA-ng will print the result as an unrooted tree.  -->
		<parameter type="Excl">
			<name>likelihood_weight</name>
			<attributes>
				<prompt>Likelihood weight</prompt>
				<vlist>
					<value>filter-acc-lwr</value>
					<label>Accumulated likelihood weight</label>
					<value>filter-min-lwr</value>
					<label>Minimum likelihood weight</label>
				</vlist>	
			</attributes>
			</parameter>
					
		<parameter type="Float">
			<name>specify_acclw</name>
			<attributes>
				<prompt>Accumulated likelihood weight</prompt>
				<precond>
					<language>perl</language>
					<code>$likelihood_weight eq "filter-acc-lwr" </code>
				</precond>
				<format>
					<language>perl</language>
					<code>"--filter-acc-lwr $specify_acclw"</code>
				</format>		
			</attributes>
			</parameter>	
		
		<parameter type="Float">
			<name>specify_minlw</name>
			<attributes>
				<prompt>Minimum likelihood weight</prompt>
				<precond>
					<language>perl</language>
					<code>$likelihood_weight eq "filter-min-lwr" </code>
				</precond>
				<format>
					<language>perl</language>
					<code>"--filter-min-lwr $specify_minlw"</code>
				</format>	
				<vdef>
					<value>0.01</value>
				</vdef>	
			</attributes>
			</parameter>
<!--   
-*filter-min UINT=1         Minimum number of placements per sequence to include in final output.
-*filter-max UINT=7         Maximum number of placements per sequence to include in final output.
 -->
		<parameter type="Integer">
			<name>specify_minplace</name>
			<attributes>
				<prompt>Minimum number of placements per sequence to include (--filter-min)</prompt>
				<format>
					<language>perl</language>
					<code>(defined $specify_minplace) ? "--filter-min $specify_minplace":"" </code>
				</format>	
				<vdef>
					<value>1</value>
				</vdef>	
			</attributes>
			</parameter>
			
		<parameter type="Integer">
			<name>specify_maxplace</name>
			<attributes>
				<prompt>Maximum number of placements per sequence to include (--filter-max)</prompt>
				<format>
					<language>perl</language>
					<code>(defined $specify_maxplace) ? "--filter-max $specify_maxplace":"" </code>
				</format>
				<vdef>
					<value>7</value>
				</vdef>			
			</attributes>
			</parameter>	

<!-- -*precision UINT=10         Output decimal point precision for floating point numbers. -->	
			<parameter type="Integer">
			<name>specify_precision</name>
			<attributes>
				<prompt>Output decimal point precision for floating point (--precision)</prompt>
				<format>
					<language>perl</language>
					<code>(defined $specify_precision) ? "--precision $specify_precision":"" </code>
				</format>
				<vdef>
					<value>10</value>
				</vdef>			
			</attributes>
			</parameter>			
		</parameters>
		</paragraph>
		</parameter>

<!-- preserve rooting Preserve the rooting of rooted trees. When disabled, EPA-ng will print the result as an unrooted tree.-->						
		<parameter type="Switch">
			<name>preserve_rooting</name>
			<attributes>
				<prompt>Preserve rooting (--preserve-rooting)</prompt>
				<format>
					<language>perl</language>
					<code>($value) ? "--preserve-rooting on":"--preserve-rooting off" </code>
				</format>	
				<comment>
				<value>Preserve the rooting of rooted trees. When disabled, EPA-ng will print the result as an unrooted tree.</value>
				</comment>	
			</attributes>
			</parameter>
			
</parameters>
</pise>


