<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pise PUBLIC "pise2.dtd" "pise2.dtd" >
<pise>
	<head>
		<title>ModelTest-NG on XSEDE</title>
		<version>0.1.7</version>
		<description>Statistical selection of best-fit models of nucleotide and protein substitution, run on XSEDE</description>
		<authors>Diego Darriba, David Posada, Alexandros Stamatakis, and Tomas Flouris</authors>
		<reference>Darriba D, Posada D., Alexandros Stamatakis, and Tomas Flouris at https://github.com/ddarriba/modeltest</reference>
		<category>Phylogeny / Alignment</category>
	</head>
	
	<command>modeltest_ng_xsede</command>
	
<!--
*****************************************************************************************************************************************
Created by Mark Miller for CSG, 10/8/2018
*****************************************************************************************************************************************
 4 Command Line Arguments
	
4.1.1 Main Arguments
done -d -*datatype nt,aa Data type is ‘nt’ for nucleotide (default), ‘aa’ for amino-acid sequences.
done -i -*input filename Input MSA file in FASTA or sequential PHYLIP format. Check

Other options.

done -t -*topology topology type. Check section 5.3
			ml maximum likelihood
			mp maximum parsimony (default)
			fixed-ml-jc fixed maximum likelihood (JC)
			fixed-ml-gtr fixed maximum likelihood (GTR)
			random random generated tree
			user fixed user defined (requires -u argument)
done -u -*utree filename User-defined tree in NEWICK format. Check section 5.3
done -q -*partitions filename Partitions filename in RAxML format. Check section 5.4
done -o -*output filename Pipes the output into a file
done -p -*processes number of threads Number of concurrent threads
done -r -*rngseed seed Sets the seed for the random number generator
4.1.2 Candidate Models
-a -*asc-bias algorithm[:values] Includes ascertainment bias correction. Check section 5.5 for more
details
lewis: Lewis (2001)
felsenstein: Felsenstein (requires number of invariant sites)
stamatakis: Leach et al. (2015) (requires invariant sites composition)
-f -*frequencies [ef] Sets the candidate models frequencies
e: Estimated - maximum likelihood (DNA) / empirical (AA)
f: Fixed - equal (DNA) / model defined (AA)
-h -*model-het [uigf] Sets the candidate models rate heterogeneity
u: Uniform
i: Proportion of invariant sites (+I)
g: Discrite Gamma rate categories (+G)
f: Both +I and +G (+I+G)
-m -*models list Sets the candidate model matrices separated by commas
dna: JC HKY TrN TPM1 TPM2 TPM3 TIM1 TIM2 TIM3 TVM GTR
protein: DAYHOFF LG DCMUT JTT MTREV WAG RTREV CPREV VT
BLOSUM62 MTMAM MTART MTZOA PMB HIVB HIVW JTTDCMUT
FLU STMTREV
-s -*schemes number of schemes Number of DNA substitution schemes.
3: JC, HKY, GTR
5: JC, HKY, TrN, TPM1, GTR
7: JC, HKY, TrN, TPM1, TIM1, TVM, GTR
11: All models defined in Sec 5.2
203: All possible GTR submatrices
-T -*template tool Sets candidate models according to a specified tool
raxml RAxML (DNA 3 schemes / AA full search)
phyml PhyML (DNA full search / 14 AA matrices)
mrbayes MrBayes (DNA 3 schemes / 8 AA matrices)
paup PAUP* (DNA full search / AA full search)

4.1.3 Other options
-*eps epsilon value Sets the model optimization epsilon
-*tol tolerance value Sets the parameter optimization tolerance
-*smooth-frequencies Forces frequencies smoothing
-H -*no-compress Disables pattern compression. ModelTest-NG ignores if there are
missing states
always on -v -*verbose Run in verbose mode
not supported: -*help Display this help message and exit
not supported: -*version Output version information and exit
 
	-->
<!-- move to expanse 3/10/2021 -->
<!-- Here are some additional items of note.

1. Scalability depends upon the number of models, just as for jModelTest2. However, calculating the number of models for ModelTest-NG is more complicated and still a bit mysterious to me. On the other hand, my review of about 2,500 jobs that ran last year, showed that

. most jobs with DNA data used 22 models, and
. most jobs with AA data used 38 models.

Thus, the rules just specify 22 threads on 22 cores for DNA data and 38 threads on 38 cores for AA data. Determining whether the data are AA is easily done by checking whether -d aa is specified.

2. For DNA data there are three mutually exclusive options for determining the number of substitution schemes:

-s <n> where n is one of 3, 5, 7, 11, or 203 specific schemes

-m <list> where the list specifies up to 11 specific schemes

-T <tool> where there are 3 schemes for either RAxML or MrBayes and 11 for PhyML and PAUP*

For AA data there are also three mutually exclusive options for determining the number of schemes:

no -m and no -T, in which case 19 AA schemes are considered

-m <list> where the list specifies up to 19 specific schemes

-T <tool> where there are 8 schemes for MrBayes, 14 for PhyML, and 19 for either RAxML or PAUP*

Note that -s only applies for DNA data. The analog for AA data is no -m and no -T. This is not being handled properly for ModelTest-NG 0.1.5 on Comet, since -s is being specified for AA data without -m and -T. Although this does not cause a problem, since -s is just ignored,

* it would still be good to fix this going forward.

3. The -m option is not working correctly for ModelTest-NG 0.1.5 on Comet. Currently the available models are separated by a comma and a space. However, they should be separated only by a comma.

* Please fix this for ModelTest-NG 0.1.6 on Expanse.

The current implementation ignores all but the first model in the list.

Best regards,  Wayne

—

[cipres@login01 rules]$ cat ModelTest-NG.Expanse.rules
Rules for running ModelTest-NG on Expanse via the CIPRES gateway

All runs are in the shared partition on a CPU node.

- Check whether the data type is amino acid, i.e, whether -d aa is specified.

- If not, the data type is DNA by default.

- Specify the number of threads (CIPRES_THREADSPP) and Slurm memory 
  according to the following table.

    Data             Slurm
    type  Threads   memory

     DNA       22      42G
      AA       38      73G

- 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=<threads>
  #SBATCH -*mem=<memory>
  ...
  srun ... <wrapper> ...
 -->
<parameters>
	
<!--  submission on gordon: the invocation line and any needed thread specification  -->
					<parameter ismandatory="1" ishidden="1" type="String">
						<name>jmodeltest2_invoke</name>
						<attributes>
							<format>
								<language>perl</language>		
								<code>"<![CDATA[modeltest_ng_0.1.7_expanse]]>"</code>
							</format>
							<group>0</group>
						</attributes>
					</parameter>							
												
<!-- this section defines the file scheduler.conf that accompanies the command line to the TG resource. It instructs the machine how to run the job.  --> 								
				<parameter type="String" ishidden="1" >
					<name>number_nodes</name>
					<attributes>
						<group>2</group>
						<paramfile>scheduler.conf</paramfile>
						<precond>
							<language>perl</language>
							<code>!$specify_datatype</code>
						</precond>
						<format>
							<language>perl</language>
							<code>
									"nodes=1\\n" .
									"node_exclusive=0\\n" .
									"mem=42G\\n" .
									"cpus-per-task=22\\n" .
									"threads_per_process=22\\n"
							</code>
						</format>
					</attributes>
				</parameter>
				
<!-- this section defines the file scheduler.conf that accompanies the command line to the TG resource. It instructs the machine how to run the job.  --> 								
				<parameter type="String" ishidden="1" >
					<name>number_nodes2</name>
					<attributes>
						<group>2</group>
						<paramfile>scheduler.conf</paramfile>
						<precond>
							<language>perl</language>
							<code>$specify_datatype</code>
						</precond>
						<format>
							<language>perl</language>
							<code>
									"nodes=1\\n" .
									"node_exclusive=0\\n" .
									"mem=73G\\n" .
									"cpus-per-task=38\\n" .
									"threads_per_process=38\\n"
							</code>
						</format>
					</attributes>
				</parameter>
<!-- end number of nodes  -->
<!-- end number of nodes  -->	
	
<!-- input file specification -->
	<parameter ismandatory="1" issimple="1" isinput="1" type="InFile"> 
	<name>infile</name>
		<attributes>
			<prompt>Input Alignment</prompt>
			<filenames>infile.phy</filenames>
			<format>
				<language>perl</language>
				<code>"-i infile.phy"</code>
			</format>	
			<group>1</group>
		</attributes>
	</parameter>	
	
<!-- begin visible parameters -->		
<!-- 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>
						<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>
						<format>
							<language>perl</language>
							<code>"runhours=$value\\n"</code>
						</format>

<!-- provide feedback on number of cpu hrs to be consumed; all runs are the same, but this must be keyed to a visible param, so here we make it conditional on a non-zero run time. -->
						<warns>
							<warn>
								<message>The job will run on 22 processors as configured. If it runs for the entire configured time, it will consume 22 x $runtime cpu hours</message>
								<language>perl</language>
								<code>!$specify_datatype</code>
							</warn>
							<warn>
								<message>The job will run on 38 processors as configured. If it runs for the entire configured time, it will consume 38 x $runtime cpu hours</message>
								<language>perl</language>
								<code>$specify_datatype</code>
							</warn>
						</warns>
						<comment>
<value>Estimate the maximum time your job will need to run. We recommend testimg 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>
				
<!-- choose the type of data -->
	<parameter  issimple="1" type="Switch"> 
	<name>specify_datatype</name>
		<attributes>
			<prompt>The dataset contains amino acid (-d aa)</prompt>
<!--  			<precond>
				<language>perl</language>
				<code>!$convert_phylip</code>
			</precond> -->
			<format>
				<language>perl</language>
				<code>($value) ?  "-d aa":""</code>
			</format>
			<group>3</group>
		</attributes>
	</parameter>
	
				<parameter type="InFile">
				<name>user_fixedtree</name>
				<attributes>
					<prompt>Select a User-defined fixed tree for likelihood calculations (-u)</prompt>
<!--  				<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond> -->	
					<filenames>userfixedtree.tre</filenames>
					<format>
						<language>perl</language>
						<code>"-u userfixedtree.tre"</code>
					</format>
					<group>8</group>
				</attributes>
			</parameter>
			
			<!--	-a -*asc-bias algorithm[:values] Includes ascertainment bias correction. Check section 5.5 for more details 
		lewis: Lewis (2001)
		felsenstein: Felsenstein (requires number of invariant sites)
		stamatakis: Leach et al. (2015) (requires invariant sites composition) -->
			<parameter type="Excl">
					<name>asc_bias</name>
					<attributes>
					<prompt>Ascertainment bias algorithm (-a)</prompt>
  				<precond>
						<language>perl</language>
						<code>$set_heterogeneity eq "u"</code>
					</precond>
						<vlist>
							<value>lewis</value>
							<label>Lewis</label>
							<value>felsenstein</value>
							<label>Felsenstein</label>
							<value>stamatakis</value>
							<label>Stamatakis</label>
						</vlist>
						<format>
							<language>perl</language>
							<code>defined $value ? "-a $value":""</code>
						</format>
						<ctrls>
							<ctrl>
								<message>To use Felsenstein, must specify the number of invariant sites in a partition file</message>
								<language>perl</language>
								<code>$asc_bias eq "felsenstein" &amp;&amp; !defined $user_partitionfile</code>
							</ctrl>
							<ctrl>
								<message>To use Stamatakis, you must specify the invariant sites composition in a partition file</message>
								<language>perl</language>
								<code>$asc_bias eq "stamatakis"  &amp;&amp; !defined $user_partitionfile</code>
							</ctrl>
						</ctrls>
						<group>25</group>
						<comment>
							<value>Felsenstein requires number of invariant sites Stamatakis Leach et al. (2015) requires invariant sites composition</value>
						</comment>
					</attributes>
			</parameter>

<!-- 	-o outputFile  Redirects the output to a file. -->
	<parameter  issimple="1" type="String"> 
	<name>name_output</name>
		<attributes>
			<prompt>Specify the name of your output file (-o)</prompt>
<!--  			<precond>
				<language>perl</language>
				<code>!$convert_phylip</code>
			</precond> -->
			<format>
				<language>perl</language>
				<code>(defined $value) ?  "-o $value":""</code>
			</format>
<!--			<ctrls>
				<ctrl>
					<message>Please enter a name for your output file</message>
					<language>perl</language>
					<code>!defined $name_output</code>
				</ctrl>
			</ctrls> -->
			<group>3</group>
		</attributes>
	</parameter>
		
<!-- 
-t -*topology topology type. Check section 5.3
ml maximum likelihood
mp maximum parsimony (default)
fixed-ml-jc fixed maximum likelihood (JC)
fixed-ml-gtr fixed maximum likelihood (GTR)
random random generated tree
user fixed user defined (requires -u argument) 	-->
	<parameter  issimple="1" type="Excl"> 
		<name>specify_topology</name>
		<attributes>
			<prompt>Specify topology type (-t)</prompt>
			<format>
				<language>perl</language>
				<code>($value) ? "-t $value":"" </code>
			</format>
			<vlist>
				<value>ml</value>
				<label>Maximium Likelihood</label>
				<value>mp</value>
				<label>Maximum Parsimony</label>
				<value>fixed-ml-jc</value>
				<label>Fixed Maximum Likelihood (JC)</label>
				<value>fixed-ml-gtr</value>
				<label>Fixed Maximum Likelihood (GTR)</label>
				<value>random</value>
				<label>Random Generated Tree</label>
				<value>user</value>
				<label>Fixed User-defined</label>
			</vlist>
			<vdef>
				<value>mp</value>
			</vdef>	
			<group>2</group>
		</attributes>
	</parameter> 
	
	<!-- -h -*model-het [uigf] Sets the candidate models rate heterogeneity
		u: Uniform
		i: Proportion of invariant sites (+I)
		g: Discrite Gamma rate categories (+G)
		f: Both +I and +G (+I+G) -->
			
			<parameter issimple="1" type="List">
				<name>set_heterogeneity</name>
				<attributes>
					<prompt>Select the candidate model's rate heterogeneity (-h)</prompt>
<!-- 					<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond>  -->
					<vlist>
						<value>u</value>
						<label>Uniform</label>
						<value>i</value>
						<label>Proportion of invariant sites (+I)</label>
						<value>g</value>
						<label>Discrete Gamma rate categories (+G)</label>
						<value>f</value>
						<label>Both +I and +G (+I+G)</label>					
					</vlist>
					<format>
						<language>perl</language>
						<code>" -h $value"</code>
					</format>
					<ctrls>
						<ctrl>
							<message>Please set the model rate heterogeneity</message>
							<language>perl</language>
							<code>!defined $set_heterogeneity </code>
						</ctrl>
					</ctrls>
					<group>5</group>
				</attributes>
			</parameter> 
			
<!-- -q -*partitions filename Partitions filename in RAxML format. Check section 5.4  -->
			<parameter type="InFile">
				<name>user_partitionfile</name>
				<attributes>
					<prompt>Select a user-defined partition file (-q)</prompt>
<!--  					<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond> -->
					<filenames>partition.txt</filenames>
					<format>
						<language>perl</language>
						<code>defined $value ? "-q partition.txt":""</code>
					</format> 
					<group>8</group>
				</attributes>
			</parameter> 
			
<!-- -r -*rngseed seed Sets the seed for the random number generator -->
			<parameter type="Integer">
				<name>specify_seed</name>
				<attributes>
					<prompt>Specify a seed value (-r)</prompt>
<!--  				<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond> -->	
					<format>
						<language>perl</language>
						<code>defined $value ? "-r $value":""</code>
					</format> 
					<group>8</group>
				</attributes>
			</parameter> 

<!-- 4.1.2 Candidate Models -->
<!-- choose models-->
<parameter type="Paragraph">
	<paragraph>
		<name>choose_models</name>
		<prompt>DNA Candidate Models</prompt>
<!--  		<precond>
			<language>perl</language>
			<code>!$convert_phylip</code>
		</precond>-->
		<parameters>
			
<!-- -f -*frequencies [ef] Sets the candidate models frequencies
	e: Estimated - maximum likelihood (DNA) / empirical (AA)
	f: Fixed - equal (DNA) / model defined (AA) 		-->	
			<parameter type="Excl">
				<name>specify_frequencies</name>
				<attributes>
					<prompt>Select the candidate models frequencies (-f)</prompt>
					<precond>
						<language>perl</language>
						<code>!$specify_datatype</code>
					</precond> 
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-f $value":""</code>
					</format>
					<vlist>
						<value>e</value>
						<label>maximum likelihood</label>
						<value>f</value>
						<label>equal</label>
					</vlist>
					<group>13</group>
				</attributes>
			</parameter> 

<!-- -m -*models list Sets the candidate model matrices separated by commas
	dna: JC HKY TrN TPM1 TPM2 TPM3 TIM1 TIM2 TIM3 TVM GTR
	protein: DAYHOFF LG DCMUT JTT MTREV WAG RTREV CPREV VT
	BLOSUM62 MTMAM MTART MTZOA PMB HIVB HIVW JTTDCMUT
	FLU STMTREV -->
			<parameter type="List">
				<name>model_lists</name>
				<attributes>
					<prompt>Enter the DNA candidate model matrices separated by commas (-m)</prompt>
  					<precond>
						<language>perl</language>
						<code>!$specify_datatype</code>
					</precond> 
					<vlist>
						<value>JC,</value>
						<label>JC</label>
						<value>HKY,</value>
						<label>HKY</label>
						<value>TrN,</value>
						<label>TrN</label>
						<value>TPM1,</value>
						<label>TPM1</label>
						<value>TPM2,</value>
						<label>TPM2</label>
						<value>TPM3,</value>
						<label>TPM3</label>
						<value>TIM1,</value>
						<label>TIM1</label>
						<value>TIM2,</value>
						<label>TIM2</label>
						<value>TIM3,</value>
						<label>TIM3</label>
						<value>TVM,</value>
						<label>TVM</label>
						<value>GTR,</value>
						<label>GTR</label>
					</vlist>
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-m $value":""</code>
					</format>
					<ctrls>
						<ctrl>
							<message>Please select a model, subscheme, or template</message>
							<language>perl</language>
							<code>!$datatype &amp;&amp; !defined $model_lists &amp;&amp; !defined $set_subschemes &amp;&amp; !defined $template_tool</code>
						</ctrl>
					</ctrls>
					<separator>' '</separator>
					<group>7</group>
					<comment>
					<value>	allowed values for dna: JC HKY TrN TPM1 TPM2 TPM3 TIM1 TIM2 TIM3 TVM GTR</value>
					</comment>
				</attributes>
			</parameter> 
			
<!-- -s -*schemes number of schemes Number of DNA substitution schemes.
	3: JC, HKY, GTR
	5: JC, HKY, TrN, TPM1, GTR
	7: JC, HKY, TrN, TPM1, TIM1, TVM, GTR
	11: All models defined in Sec 5.2
	203: All possible GTR submatrices -->
			
			<parameter type="Excl">
				<name>set_subschemes</name>
				<attributes>
					<prompt>Set the number of substitution schemes (-s)</prompt>
 					<precond>
						<language>perl</language>
						<code>!$specify_datatype</code>
					</precond>  
					<vlist>
						<value>3</value>
						<label>3</label>
						<value>5</value>
						<label>5</label>
						<value>7</value>
						<label>7</label>
						<value>11</value>
						<label>11</label>		
						<value>203</value>
						<label>203</label>				
					</vlist>
					<format>
						<language>perl</language>
						<code>" -s $value"</code>
					</format>
					<vdef>
						<value>11</value>
					</vdef>
					<group>5</group>
					<comment>
						<value>This flag sets the number of substitution schemes. 3 = JC/F81 K80/HKY SYM/GTR; 5 = JC/F81, K80/HKY, TrNef/TrN, TPM1/TPM1uf, SYM/GTR 7 = JC/F81, K80/HKY, TrNef/TrN, TPM1/TPM1uf, TIM1ef/TIM1, TVMef/TVM, SYM/GTR; 11 = all named models; 203 = All possible GTR submatrices</value>
					</comment>
				</attributes>
			</parameter> 
				
			
<!-- -T -*template tool Sets candidate models according to a specified tool
	raxml RAxML (DNA 3 schemes / AA full search)
	phyml PhyML (DNA full search / 14 AA matrices)
	mrbayes MrBayes (DNA 3 schemes / 8 AA matrices)
	paup PAUP* (DNA full search / AA full search)  -->
				<parameter type="Excl">
				<name>template_tool</name>
				<attributes>
					<prompt>Set DNA candidate models according to a specified tool</prompt>
  					<precond>
						<language>perl</language>
						<code>!$specify_datatype</code>
					</precond> 
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-T $value":""</code>
					</format>
					<vlist>
						<value>raxml</value>
						<label>RAxML (3 schemes)</label>
						<value>phyml</value>
						<label>PhyML (full search)</label>
						<value>mrbayes</value>
						<label>MrBayes (3 schemes)</label>
						<value>paup</value>
						<label>PAUP (full search)</label>
					</vlist>
					<ctrls>
						<ctrl>
							<message>Sorry the options -T, -m and -s are mutually exclusive</message>
							<language>perl</language>
							<code>defined $template_tool &amp;&amp;defined $set_subschemes || defined $template_tool &amp;&amp; defined $model_lists || defined $set_subschemes &amp;&amp; defined $model_lists </code>
						</ctrl>
					</ctrls>
					
					<group>18</group>
				</attributes>
			</parameter>
			
		</parameters>
	</paragraph>
</parameter>

<parameter type="Paragraph">
	<paragraph>
		<name>choose_models</name>
		<prompt>Protein Candidate Models</prompt>
<!--  		<precond>
			<language>perl</language>
			<code>!$convert_phylip</code>
		</precond>-->
		<parameters>
			
			<!-- -f -*frequencies [ef] Sets the candidate models frequencies
	e: Estimated - maximum likelihood (DNA) / empirical (AA)
	f: Fixed - equal (DNA) / model defined (AA) 		-->	
			<parameter type="Excl">
				<name>specify_protfrequencies</name>
				<attributes>
					<prompt>Select the candidate protein models frequencies (-f)</prompt>
 					<precond>
						<language>perl</language>
						<code>$specify_datatype</code>
					</precond>  
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-f $value":""</code>
					</format>
					<vlist>
						<value>e</value>
						<label>empirical</label>
						<value>f</value>
						<label>model defined</label>
					</vlist>
					<group>13</group>
				</attributes>
			</parameter> 	
				
<!-- -m -*models list Sets the candidate model matrices separated by commas
	dna: JC HKY TrN TPM1 TPM2 TPM3 TIM1 TIM2 TIM3 TVM GTR
	protein: DAYHOFF LG DCMUT JTT MTREV WAG RTREV CPREV VT
	BLOSUM62 MTMAM MTART MTZOA PMB HIVB HIVW JTTDCMUT
	FLU STMTREV -->
			<parameter type="List">
				<name>protmodel_lists</name>
				<attributes>
					<prompt>Enter the Amino Acid candidate model matrices separated by commas (-m)</prompt>
  					<precond>
						<language>perl</language>
						<code>$specify_datatype</code>
					</precond> 
					<vlist>
						<value>DAYHOFF,</value>
						<label>DAYHOFF</label>
						<value>LG,</value>
						<label>LG</label>
						<value>DCMUT,</value>
						<label>DCMUT</label>
						<value>JTT,</value>
						<label>JTT</label>
						<value>MTREV,</value>
						<label>MTREV</label>
						<value>WAG,</value>
						<label>WAG</label>
						<value>RTREV,</value>
						<label>RTREV</label>
						<value>CPREV,</value>
						<label>CPREV</label>
						<value>VT,</value>
						<label>VT</label>
						<value>BLOSUM62,</value>
						<label>BLOSUM62</label>
						<value>MTMAM,</value>
						<label>MTMAM</label>
						<value>MTART,</value>
						<label>MTART</label>
						<value>MTZOA,</value>
						<label>MTZOA</label>
						<value>PMB,</value>
						<label>PMB</label>
						<value>HIVB,</value>
						<label>HIVB</label>
						<value>HIVW,</value>
						<label>HIVW</label>
						<value>JTTDCMUT,</value>
						<label>JTTDCMUT</label>
						<value>FLU,</value>
						<label>FLU</label>
						<value>STMTRE,</value>
						<label>STMTRE</label>
					</vlist>
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-m $value":""</code>
					</format>
					<ctrls>
						<ctrl>
							<message>Please select a model, subscheme or template</message>
							<language>perl</language>
							<code>$datatype &amp;&amp; !defined $protmodel_lists &amp;&amp; !defined $set_subschemes &amp;&amp; !defined $protemplate_tool</code>
						</ctrl>
					</ctrls>
					<separator>' '</separator>
					<group>7</group>
					<comment>
					<value>	Allowed values for protein: DAYHOFF LG DCMUT JTT MTREV WAG RTREV CPREV VT
	BLOSUM62 MTMAM MTART MTZOA PMB HIVB HIVW JTTDCMUT FLU STMTREV</value>
					</comment>
				</attributes>
			</parameter>
			
<!-- -s -*schemes number of schemes Number of DNA substitution schemes.
	3: JC, HKY, GTR
	5: JC, HKY, TrN, TPM1, GTR
	7: JC, HKY, TrN, TPM1, TIM1, TVM, GTR
	11: All models defined in Sec 5.2
	203: All possible GTR submatrices -->
			
			<parameter type="Excl">
				<name>set_protsubschemes</name>
				<attributes>
					<prompt>Set the number of protein substitution schemes (-s)</prompt>
 					<precond>
						<language>perl</language>
						<code>$specify_datatype</code>
					</precond> 
					<vlist>
						<value>3</value>
						<label>3</label>
						<value>5</value>
						<label>5</label>
						<value>7</value>
						<label>7</label>
						<value>11</value>
						<label>11</label>		
						<value>203</value>
						<label>203</label>				
					</vlist>
					<format>
						<language>perl</language>
						<code>" -s $value"</code>
					</format>
					<vdef>
						<value>11</value>
					</vdef>
					<group>5</group>
					<comment>
						<value>This flag sets the number of substitution schemes. 3 = JC/F81 K80/HKY SYM/GTR; 5 = JC/F81, K80/HKY, TrNef/TrN, TPM1/TPM1uf, SYM/GTR 7 = JC/F81, K80/HKY, TrNef/TrN, TPM1/TPM1uf, TIM1ef/TIM1, TVMef/TVM, SYM/GTR; 11 = all named models; 203 = All possible GTR submatrices</value>
					</comment>
				</attributes>
			</parameter> 
			
			<parameter type="Excl">
				<name>protemplate_tool</name>
				<attributes>
					<prompt>Set amino acid candidate models according to a specified tool</prompt>
  					<precond>
						<language>perl</language>
						<code>$specify_datatype</code>
					</precond> 
					<format>
						<language>perl</language>
						<code>(defined $value) ? "-T $value":""</code>
					</format>
					<vlist>
						<value>raxml</value>
						<label>RAxML (full search)</label>
						<value>phyml</value>
						<label>PhyML (14 matrices)</label>
						<value>mrbayes</value>
						<label>MrBayes (8 matrices)</label>
						<value>paup</value>
						<label>PAUP (full search)</label>
					</vlist>
					<ctrls>
						<ctrl>
							<message>Sorry the options -T, -m and -s are mutually exclusive</message>
							<language>perl</language>
							<code>defined $protemplate_tool &amp;&amp; defined $set_protsubschemes || defined $protemplate_tool &amp;&amp; defined $protmodel_lists || defined $set_protsubschemes &amp;&amp; defined $protmodel_lists </code>
						</ctrl>
					</ctrls>
					
					<group>18</group>
				</attributes>
			</parameter>
			
		</parameters>
	</paragraph>
</parameter>

	
<!-- other options -->
<parameter type="Paragraph">
	<paragraph>
		<name>other_options</name>
		<prompt>Other Options</prompt>

		<parameters>
			<parameter type="Float">
				<name>set_epsilon</name>
				<attributes>
					<prompt>Sets the model optimization epsilon. (-eps)</prompt>
<!--  					<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond> -->
					<format>
						  <language>perl</language>
						  <code>defined $value ? "--eps $value":""</code>
					</format>
					<group>10</group>
				</attributes>
			</parameter> 

<!--	-*tol tolerance value Sets the parameter optimization tolerance 	-->
			<parameter type="Float">
				<name>set_tolerance</name>
				<attributes>
					<prompt>Set the parameter optimization tolerance (--tol)</prompt>
<!--  					<precond>
						<language>perl</language>
						<code>!$convert_phylip</code>
					</precond> -->
					<format>
						  <language>perl</language>
						  <code>defined $value ? "--tol $value":""</code>
					</format>
					<group>10</group>
				</attributes>
			</parameter> 	

<!-- -*smooth-frequencies Forces frequencies smoothing -->
		<parameter issimple="0"  type="Switch">
			<name>criteria_1</name>
			<attributes>
				<prompt>Force frequencies smoothing (--smooth-frequencies)</prompt>
<!--  				<precond>
					<language>perl</language>
					<code>!$convert_phylip</code>
				</precond> -->
				<format>
					<language>perl</language>
					<code>($value) ? "--smooth-frequencies":""</code>
				</format>
			</attributes>
			</parameter> 
		
<!--	-H -*no-compress Disables pattern compression. ModelTest-NG ignores if there are
missing states			-->
			<parameter type="Switch">
					<name>disable_patterncompression</name>
					<attributes>
					<prompt>Disables pattern compression (-H)</prompt>
<!--  						<precond>
							<language>perl</language>
							<code>!$convert_phylip</code>
						</precond> -->
						<format>
							<language>perl</language>
							<code>($value) ? "-H":""</code>
						</format>
						<group>13</group>
					</attributes>
			</parameter>	 
	
		</parameters>
	</paragraph>
</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>

</parameters>
</pise>


