<?xml version = "1.0" encoding = "UTF-8" ?>
<!DOCTYPE pise PUBLIC "pise2.dtd" "pise2.dtd"  >
<!-- prepared by Mark Miller around Feb 6, 2015-->
<pise>
  <head>
    <title>Migrate-N on XSEDE</title>
    <version>4.4.4-5.0.4</version>
    <description>Estimation of Population Sizes and Gene Flow using the Coalescent</description>
    <authors>Beerli, Peter</authors>
	<reference>Beerli and Palczewski 2010: Unified Framework to Evaluate Panmixia and Migration Direction Among Multiple Sampling Locations. Genetics (2010) vol. 185 pp. 313--326
	</reference>
    <category>Population Genetics</category>
    <doclink>http://popgen.sc.fsu.edu/migratedoc.pdf</doclink>
  </head>

  <command>migraten_xsede</command>

  <parameters>
 <!--[cipres@login01 rules]$ cat Migrate.Expanse.rules
Rules for running Migrate via the CIPRES gateway

All runs are on one standard node of Expanse.

- Ask the user for the following:

  number of loci
  number of replicates

- Calculate workers = loci*replicates.

- If workers = 1, set CIPRES_NP = 1 and memory = 2G.
  Then run the serial version of Migrate on one core in the shared partition.
  Thus, 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=1
  #SBATCH -*mem=2G
  ...
  srun -*mpi=pmi2 -n $CIPRES_NP <serial-wrapper> parmfile

- If workers > 1 but < 127, set CIPRES_NP = workers+1 and 
  memory = floor(CIPRES_NP*248/128)G.
  Then run the MPI version of Migrate on CIPRES_NP cores in the shared
  partition. Thus, include the following in the run script.

  #SBATCH -p shared
  #SBATCH -*qos=shared-cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=<CIPRES_NP>
  #SBATCH -*cpus-per-task=1
  #SBATCH -*mem=<memory>
  ...
  srun -*mpi=pmi2 -n $CIPRES_NP <mpi-wrapper> parmfile

- If workers >= 127, set CIPRES_NP = 128 and memory = 243G.
  Then run the MPI version of Migrate on 128 cores in the compute partition.
  Thus, include the following in the run script.

  #SBATCH -p compute
  #SBATCH -*qos=cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=128
  #SBATCH -*cpus-per-task=1
  #SBATCH -*mem=243G
  ...
  srun -*mpi=pmi2 -n $CIPRES_NP <mpi-wrapper> parmfile


  -->
<!-- hidden parameters -->
	<!-- command name: this parameter precedes all instruction strings  -->
	<!-- migrate-n parmfile.test -nomenu forces the program to NOT show the menu and start running immediately 
	(use the -nomenu option for batch scripts and batch queue system. -->

	
	<!-- version 4.2.14 -->	
    <parameter ishidden="1" type="String"> 
	  <name>invocation_string4214</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci &gt; 0 &amp;&amp; $num_loci*$num_reps &lt; 2  &amp;&amp; $which_migraten == 4214 </code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate_4.2.14_expanse parmfile"</code>		
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>
	
	<parameter ishidden="1" type="String"> 
	  <name>invocation_string4214mpi</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci*$num_reps &gt; 1  &amp;&amp; $which_migraten == 4214 </code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate-mpi_4.2.14_expanse parmfile"</code>		
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>

<!-- version 4.4.4 -->	
	 <parameter ishidden="1" type="String"> 
	  <name>invocation_string444</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci &gt; 0 &amp;&amp; $num_loci*$num_reps &lt; 2 &amp;&amp; $which_migraten == 444</code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate_4.4.4_expanse parmfile"</code>		
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>
	
	<parameter ishidden="1" type="String"> 
	  <name>invocation_string444mpi</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci*$num_reps &gt; 1  &amp;&amp; $which_migraten == 444 </code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate-mpi_4.4.4_expanse parmfile"</code>		
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>

<!-- version 5.0.4 -->
    <parameter ishidden="1" type="String"> 
	  <name>invocation_string504</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci &gt; 0 &amp;&amp; $num_loci*$num_reps &lt; 2 &amp;&amp; $which_migraten == "504" </code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate_5.0.4_expanse parmfile"</code>		
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>
	
	<parameter ishidden="1" type="String"> 
	  <name>invocation_string5042</name>
	  <attributes>
	  	<precond>
	  		<language>perl</language>
	  		<code>$num_loci*$num_reps &gt; 1 &amp;&amp; $which_migraten == "504"</code>
	  	</precond>
  	    <format>
		  <language>perl</language>
		  <code>"migrate-mpi_5.0.4_expanse parmfile"</code>
		</format> 
		<group>0</group>
	  </attributes>
	</parameter>	
<!-- now we create scheduler.conf -->
	<!-- build the conf file -->
<!-- 
-->
 
 <!--  in this case there is one locus and no reps; slaves=1; use serial code -->
 <!-- for expanse
- If workers = 1, set CIPRES_NP = 1 and memory = 2G.
  Then run the serial version of Migrate on one core in the shared partition.
  Thus, 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=1
  #SBATCH -*mem=2G -->
 	<parameter ishidden="1" type="String">
		<name>migrate_scheduler_1</name>
		<attributes>
			<paramfile>scheduler.conf</paramfile>
			<precond>
				<language>perl</language>
				<code>$num_loci*$num_reps &gt; 0 &amp;&amp; $num_loci*$num_reps &lt; 2</code>
			</precond>
			<format>
				<language>perl</language>
				<code>
					"nodes=1\\n" .
					"node_exclusive=0\\n" .
					"mem=2G\\n" .
					"cpus-per-task=1\\n" 
				</code>
			</format>
			<group>1</group>
		</attributes>
	</parameter>
	 
<!-- In this case slaves is greater than 1 and less than 22; run in shared queue, one nodes slaves+1 cores. -->
<!-- - If workers > 1 but < 127, set CIPRES_NP = workers+1 and 
  memory = floor(CIPRES_NP*248/128)G.
  Then run the MPI version of Migrate on CIPRES_NP cores in the shared
  partition. Thus, include the following in the run script.

  #SBATCH -p shared
  #SBATCH -*qos=shared-cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=<CIPRES_NP>
  #SBATCH -*cpus-per-task=1
  #SBATCH -*mem=<memory>
  ...
  srun -*mpi=pmi2 -n $CIPRES_NP <mpi-wrapper> parmfile
 -->
 	<parameter ishidden="1" type="String">
		<name>migrate_scheduler_230</name>
		<attributes>
			<paramfile>scheduler.conf</paramfile>
			<precond>
				<language>perl</language>
				<code>$num_loci*$num_reps &gt; 1 &amp;&amp; ($num_loci*$num_reps+1) &lt; 128 </code>
			</precond>
			<format>
				<language>perl</language>
				<code>
				 	"mpi_processes=" . ($num_loci*$num_reps+1) . "\\n".
					"nodes=1\\n" .
					"node_exclusive=0\\n" .
					"mem=" . (int(($num_loci*$num_reps+1)*(248/128))) . "G\\n" .
					"cpus-per-task=1\\n" 
				</code>
			</format>
			<group>1</group>
		</attributes>
	</parameter>  
	
<!--  this case is when the number of slaves is > 127 -->
<!-- - If workers >= 127, set CIPRES_NP = 128 and memory = 243G.
  Then run the MPI version of Migrate on 128 cores in the compute partition.
  Thus, include the following in the run script.

  #SBATCH -p compute
  #SBATCH -*qos=cipres
  #SBATCH -N 1
  #SBATCH -*ntasks-per-node=128
  #SBATCH -*cpus-per-task=1
  #SBATCH -*mem=243G
  ...
  srun -*mpi=pmi2 -n $CIPRES_NP <mpi-wrapper> parmfile -->
 	<parameter ishidden="1" type="String">
		<name>migrate_scheduler_33</name>
		<attributes>
			<paramfile>scheduler.conf</paramfile>
			<precond>
				<language>perl</language>
				<code>(($num_loci*$num_reps)+1) &gt; 127</code>
			</precond>
			<format>
				<language>perl</language>
				<code>
				 	"mpi_processes=128\\n".
					"nodes=1\\n" .
					"node_exclusive=1\\n" .
					"mem=243G\\n" .
					"cpus-per-task=1\\n" 
				</code>
			</format>
			<group>1</group>
		</attributes>
	</parameter>  
	
<!-- Migrate-n is always run as mpi, excpet when there is only one loci -->
 	<parameter type="String" ishidden="1" >
			<name>jobtype</name>
			<attributes>
				<group>1</group>
				<paramfile>scheduler.conf</paramfile>
				<precond>
	  				<language>perl</language>
	  				<code>$num_loci*$num_reps &gt; 1</code>
	  			</precond>
				<format>
					<language>perl</language>
					<code>"jobtype=mpi\\n"</code>
				</format>
			</attributes>
	</parameter>	 

<!-- required input file, this is selected outside the parameters gui -->
    <parameter issimple="1" ismandatory="1" isinput = "1" type = "InFile">
	  <name>infile</name>
	  <attributes>
	    <prompt>Input File</prompt>
		<filenames>infile</filenames>
		<format>
		  <language>perl</language>
		  <code>""</code>
		</format>
	    <group>90</group>
	  </attributes>	  
	</parameter>
	
<!-- output all results files -->
	<parameter type="Results">
	  <name>all_outputfiles</name>
	  <attributes>
	    <filenames>*</filenames>
	  </attributes>
	</parameter>
	  
<!-- visible selections -->
<!-- choose code version  -->
	<parameter ismandatory = "1" issimple="1" type = "Excl">
	  <name>which_migraten</name>
	  <attributes>
	    <prompt>Select version</prompt>
	    <vlist>
	    	<value>504</value>
	    	<label>5.0.4</label>
	    	<value>444</value>
	    	<label>4.4.4</label>
	    </vlist>
	    <vdef>
	    	<value>504</value>
	    </vdef>
     	<ctrls>
	    		<ctrl>
	    			<message>Please specify which version of Migrate-N to run</message>
	    			<language>perl</language>
	    			<code>!defined $which_migraten</code>
	    		</ctrl>
	    	</ctrls>   
	  </attributes>
	</parameter>

<!-- wall time can be 0.1 - 168 hrs -->
		<parameter type="Float" issimple="1" ismandatory="1">
			<name>runtime</name> 
			<attributes>
				<group>1</group>
				<paramfile>scheduler.conf</paramfile>
				<prompt>Maximum Hours to Run (click here for help setting this correctly)</prompt>
				<vdef>
					<value>0.5</value>
				</vdef>
				<comment>
					<value>
						Estimate the maximum time your job will need to run (up to 168 hrs). Your job will be killed if it doesn't finish within the time you specify, however jobs with shorter maximum run times, especially those under .5 hrs,  are often scheduled sooner than longer jobs. 
					</value>
				</comment>
				<ctrls>
					<ctrl>
						<message>Maximum Hours to Run must be between 0.1 - 168.0.</message>
						<language>perl</language>
						<code>$runtime &lt; 0.1 || $runtime &gt; 168.0</code>
					</ctrl>
					<ctrl>
						<message>Please enter a value between 0.1 - 168.0 for the run time.</message>
						<language>perl</language>
						<code>!defined $runtime</code>
					</ctrl>
				</ctrls>
<!--  provide feedback on number of cpu hrs to be consumed -->
 			    <warns>
 			    	<warn>
						<message>The job will run on 1  processor as configured. If it runs for the entire configured time, it will consume $runtime cpu hours</message>
						<language>perl</language>
						<code>$num_loci*$num_reps &gt; 0 &amp;&amp; $num_loci*$num_reps &lt; 2 </code>
					</warn>
					<warn>
						<message>The job will run on $num_loci x $num_reps + 1 processors as configured. If it runs for the entire configured time, it will consume $num_loci x $num_reps +1 x $runtime cpu hours</message>
						<language>perl</language>
						<code>$num_loci*$num_reps &gt; 1 &amp;&amp; ($num_loci*$num_reps+1) &lt; 128</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>(($num_loci*$num_reps)+1) &gt; 127</code>
					</warn>
				</warns> 
				<format>
					<language>perl</language>
					<code>"runhours=$value\\n"</code>
				</format>	 
			</attributes>
		</parameter>
 
<!-- 	<parameter ismandatory = "1" issimple="1" type = "Switch">
	  <name>upload_parmfile</name>
	  <attributes>
	    <prompt>I will specify my own parmfile</prompt>
	  </attributes>
	</parameter>  -->
		
	<parameter ismandatory = "1" issimple="1" type = "InFile">
	  <name>choose_parmfile</name>
	  <attributes>
	    <prompt>Select parmfile</prompt>
<!-- 	    <precond>
	    		<language>perl</language>
	    		<code>$upload_parmfile</code>
	    	</precond>  -->
	    	<filenames>parmfile</filenames>
     	<ctrls>
	    		<ctrl>
	    			<message>Please specify your parmfile</message>
	    			<language>perl</language>
	    			<code>!defined $choose_parmfile</code>
	    		</ctrl>
	    	</ctrls>   
	    	<warns>
	    		<warn>
	    			<message>If the parmfile does not specify Datafile name = infile, please correct that before submitting</message>
	    			<language>perl</language>
	    			<code>$choose_parmfile</code>
	    		</warn>
	    	</warns>
	  </attributes>
	</parameter>
	
	<parameter ismandatory = "1" issimple="1" type = "Integer" isMetadata="1">
	  <name>num_loci</name>
	  <attributes>
	    <prompt>Please specify the number of loci in your input file</prompt>
		<ctrls>
			<ctrl>
				<message>Please enter a value for the number of loci in your input file</message>
				<language>perl</language>
				<code>!defined $num_loci</code>
			</ctrl>
		</ctrls>
	  </attributes>
	</parameter>
	
	<parameter ismandatory = "1" issimple="1" type = "Integer" isMetadata="1">
	  <name>num_reps</name>
	  <attributes>
	    <prompt>Please specify the number of replicates specified in your parmfile</prompt>
	    <vdef>
	    	<value>1</value>
	    </vdef>
		<ctrls>
			<ctrl>
				<message>Please enter a value for the number of replicates specified in your parmfile</message>
				<language>perl</language>
				<code>!defined $num_reps</code>
			</ctrl>
			<ctrl>
				<message>Please set the number of replicates to at least 1</message>
				<language>perl</language>
				<code>$num_reps &lt; 1</code>
			</ctrl>
		</ctrls>
	  </attributes>
	</parameter>

<!-- Auxiliary files -->
<!-- geofile Input holds a (geographic) distance matrix between the populations 
     sumfile Input holds the summary statistic of the sampled genealogies from an earlier run, to rerun some statistics
     datefile Input holds the date (default is years) of the sample. When used then you need also to supply a generation time and and a mutation rate
per year in the parmfile or the Menu.
     seedfile Input holds a random number seed
     distfile Input holds a genetic distance matrix
     catfile Input holds categories for mutation rate variation
     weightfile Input holds weights for each site -->
 	
 	<parameter issimple="1" type = "InFile">
	  <name>choose_geofile</name>
	  <attributes>
	    <prompt>Select geofile; use when geo=Yes</prompt>
	    	<filenames>geofile</filenames>
	    	<warns>
	    		<warn>
	    			<message>If the parmfile does not specify geofile name = geofile, please correct that before submitting</message>
	    			<language>perl</language>
	    			<code>defined $choose_geofile</code>
	    		</warn>
	    	</warns>
	  </attributes>
	</parameter>  
	
	<parameter issimple="1" type = "InFile">
	  <name>choose_datefile</name>
	  <attributes>
	    <prompt>Select datefile; used when tipdate file=Yes</prompt>
	    	<filenames>datefile</filenames>
	    	<warns>
	    		<warn>
	    			<message>If the parmfile does not specify datefile name = datefile, please correct that before submitting</message>
	    			<language>perl</language>
	    			<code>defined $choose_datefile</code>
	    		</warn>
	    	</warns>
	  </attributes>
	</parameter>    
     
    <parameter issimple="1" type = "InFile">
	  <name>choose_sumfile</name>
	  <attributes>
	    <prompt>Select sumfile (for restarting a previous run)</prompt>
	    	<filenames>sumfile</filenames>
	  </attributes>
	</parameter>    

	
	<parameter issimple="1" type = "InFile">
	  <name>choose_distfile</name>
	  <attributes>
	    <prompt>Select distfile</prompt>
	    	<filenames>distfile</filenames>
	  </attributes>
	</parameter> 
	
	<parameter issimple="1" type = "InFile">
	  <name>choose_catfile</name>
	  <attributes>
	    <prompt>Select catfile; used if categories=Yes</prompt>
	    	<filenames>catfile</filenames>
	  </attributes>
	</parameter>
	
	<parameter issimple="1" type = "InFile">
	  <name>choose_weightfile</name>
	  <attributes>
	    <prompt>Select weightfile; Used if weights=Yes</prompt>
	    	<filenames>weightfile</filenames>
	  </attributes>
	</parameter>
	

<!-- #####################################################################################	
the program's author recommends we do not support interface paramteer setting. 
#####################################################################################	
these will be delivered in a single file called parmfile.txt -->
<!-- inout options #

#
# Random number seed specification
#   Syntax random-seed=<AUTO | OWN:< seedfile | value >
#      AUTO           uses computer system clock to generate seed
#      OWN:seedfile   uses file seedfile with random number seed
#      OWN:value      uses number value for seed
random-seed=AUTO #OWN:355924025 -->
<!--  					<parameter type="Integer">
						<name>specify_seed</name>
						<attributes>
							<prompt>Provide a seed value</prompt>
							<vdef>
								<value>12345</value>
							</vdef>
						</attributes>
					</parameter> -->
					
<!--  add the seed if selected  -->
				
<!-- 					<parameter ishidden="1" type="String">
						<name>write_seed</name>
						<attributes>
							<group>4</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>defined $specify_seed</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
include-unknown=YES\\n
EOT
					  ]]></code>
							</format>
							<vdef>
								<value>0</value>
							</vdef>
						</attributes>
					</parameter> -->
									
					
					
<!--
# Specify the title of the run, will be overridden by title in datafile
#    Syntax: title=title text [up to 80 characters]
title=AUTO 
#
# -->

	
<!-- 	<parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Set the Basic Run Parameters</prompt>
			<parameters> -->
	
<!-- create required parmfile header -->
<!-- The section below creates the hardcoded parameter file parmfile.txt as pong as one is not uploaded
Here is the first lines. 

menu=NO

-->
 <!--  	<parameter type="String" ishidden="1">
			<name>parameter_file1</name>
			<attributes>
				<paramfile>parmfile.txt</paramfile>
				<group>1</group>
				<precond>
					<language>perl</language>
					<code>!$upload_parmfile</code>
				</precond>
				<format>
					<language>perl</language>
					<code><![CDATA[ << "EOT"
################################################################################\\n
# Parmfile for Migrate 3.6.6-Dec15/15 [do not remove these first TWO lines]\\n
# please report problems to Peter Beerli\\n
#  email: beerli@fsu.edu\\n
#  http://popgen.sc.fsu.edu/migrate.html\\n
################################################################################\\n
menu=NO\\n
EOT
					  ]]></code> 
				</format>
			</attributes>
		</parameter> -->
<!-- # Specification of length of names of indiviudals
#    Syntax: nmlength=<INTEGER between 0 .. 30> -->
<!--   	<parameter type="Integer" ishidden="0">
			<name>specify_nmlength</name>
			<attributes>
				<prompt>Specify the namelength (a value between 1 -30)</prompt>
				<paramfile>parmfile.txt</paramfile>
				<group>2</group>
				<precond>
					<language>perl</language>
					<code>!$upload_parmfile</code>
				</precond>
				<format>
					<language>perl</language>
					<code><![CDATA[ << "EOT"
nmlength=$value\\n
EOT
					  ]]></code> 
				</format>
				<vdef> 
					<value>10</value>
				</vdef>
				<ctrls>
					<ctrl>
						<message>Please specify a namelength 1 or greater</message>
						<language>perl</language>
						<code>$value &lt; 1</code>
					</ctrl>
					<ctrl>
						<message>Please specify a namelength of 30 or less</message>
						<language>perl</language>
						<code>$value &gt; 30</code>
					</ctrl>
					<ctrl>
						<message>Please specify a namelength</message>
						<language>perl</language>
						<code>!defined $value</code>
					</ctrl>
				</ctrls>
			</attributes>
		</parameter> -->
		
<!-- create required datatype parameter; this spawns other choices, which will be found in paragraph elements below -->

<!--  		<parameter type="String" ishidden="1">
			<name>parameter_datatype</name>
			<attributes>
				<paramfile>parmfile.txt</paramfile>
				<group>2</group>
				<precond>
					<language>perl</language>
					<code>!$upload_parmfile</code>
				</precond>
				<format>
					<language>perl</language>
					<code><![CDATA[ << "EOT"
datatype=$datatype\\n
EOT
					  ]]></code> 
				</format>
			</attributes>
		</parameter> -->
	
<!-- There are several datatypes such as the following:
datatype=<Allele j Microsatellites j Brownian j Sequences j Nucleotide-polymorphisms j HapMap-
SNP j Genealogies >  -->
<!--  	<parameter type = "Excl">
	  <name>datatype</name>
	  <attributes>
	    <prompt>Input type</prompt>
	    	<precond>
				<language>perl</language>
				<code>!$upload_parmfile</code>
			</precond>
			<vlist>
				<value>AllelicData</value>
				<label>Allele</label>
		  
				<value>MicrosatelliteData</value>
				<label>Microsatellite</label>

				<value>BrownianMicrosatelliteData</value>
				<label>Brownian</label>
			
				<value>SequenceData</value>
				<label>Sequences</label>
		  
				<value>NucleotidePolymorphismData</value>
				<label>Nucleotide-polymorphisms</label>

				<value>HapmapSNPfrequencydata</value>
				<label>HapMap-SNP</label>
			
				<value>GenealogySummaryOlderRun</value>
				<label>Genealogies</label>
			</vlist> 
	  </attributes>
	</parameter>  
</parameters>
</paragraph>
				
</parameter> -->

<!-- datatype=<Allele > -->
<!--  <parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Run Parameters for Allele data</prompt>
				<parameters> -->
<!--  options specific to allelic data 
include-unknown=YES
tipdate-file=YES:datefile
generation-per-year=1.000000
mutationrate-per-year={0.00000000000000000000}
inheritance-scalars={1.00000000000000000000, 2.00000000000000000000, 3.00000000000000000000, 4.00000000000000000000, 5.00000000000000000000}
population-relabel={1}
usertree=AUTOMATIC
# -->
<!--					<parameter type="Switch">
						<name>include_unknown</name>
						<attributes>
							<prompt>Include unknown data?</prompt>
							<group>4</group>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							<vdef>
								<value>1</value>
							</vdef>
						</attributes>
					</parameter>   -->
					
 <!--  					<parameter ishidden="1" type="String">
						<name>specify_unknown</name>
						<attributes>
							<precond>
								<language>perl</language>
								<code>$include_unknown</code>
							</precond>
							<group>5</group>
							<paramfile>parmfile.txt</paramfile>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
include-unknown=YES\\n
EOT
					  ]]></code>
							</format>
						</attributes>
					</parameter> -->
					
<!--  options specific to allelic data tipdate-file=YES:datefile 
IF YOU HAVE ONLY CONTEMPORARY DATA DO NOT USE THIS OPTION.
The datefile contains sampling-dates for the individuals (the tips of the genealogy). An example
is this: tipdate-file=YES:datefile.bison3
# -->
 <!--					<parameter type="Switch">
						<name>tipdate_file</name>
						<attributes>
							<prompt>Provide a tipdate file</prompt>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							<vdef>
								<value>0</value>
							</vdef>
						</attributes>
					</parameter> -->
					
 <!--					<parameter ishidden="0" type="InFile">
						<name>specify_tipdatefile</name>
						<attributes>
							<prompt>Select the tipdate file</prompt>
							<filenames>datefile</filenames>
							<paramfile>parmfile.txt</paramfile>
							<group>6</group>
							<precond>
								<language>perl</language>
								<code>$tipdate_file</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
tipdate-file=YES:datefile\\n
EOT
					  ]]></code>
							</format>
							<comment>
<value> IF YOU HAVE ONLY CONTEMPORARY DATA DO NOT USE THIS OPTION. The datefile contains sampling-dates for the individuals (the tips of the genealogy). Please see Migrate-n for the format of the datefile.</value>
							</comment>
						</attributes>
					</parameter>	-->		

<!--  options specific to allelic data 
generation-per-year=1.000000 
generation-per-year= <value>
IF YOU HAVE ONLY CONTEMPORARY DATA DO NOT USE THIS OPTION.
The datefile needs additional information about the spacing of the samples in time, the number
of generations per year helps to get this spacing, but we also need the mutation rate (see above).
Example: generation-per-year=1.000000. Currently the generation time setting needs further
tests, a generation time of 1.0 works, but other settings may fail; for the moment just use 1.0,
and translate the results in years if needed.
 -->
 <!--  				<parameter ishidden="0" type="Float">
						<name>specify_gensperyear</name>
						<attributes>
							<prompt>Enter the number number of generations per year</prompt>
							<group>8</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
generation-per-year=$value\\n
EOT
					  ]]></code>
							</format>
							<comment>
<value> IF YOU HAVE ONLY CONTEMPORARY DATA DO NOT USE THIS OPTION. The datefile contains sampling-dates for the individuals (the tips of the genealogy). Please see Migrate-n for the format of the datefile.</value>
							</comment>
						</attributes>
					</parameter>  -->

<!--  options specific to allelic data 
mutationrate-per-year= {<mutationrate1>,<mutationrate2>,...}
For example: mutationrate-per-year={0.0000005}
IF YOU HAVE ONLY CONTEMPORARY DATA DO NOT USE THIS OPTION.
If you do not know the mutation rate, guess and try out to estimate the mutation rate in the
analysis but depending on your data this may be a taxing analysis. For the moment use the
mutation rate per generation and not year, see below.-->
	
<!--  options specific to allelic data 
inheritance-scalars={1.00000000000000000000, 2.00000000000000000000, 3.00000000000000000000, 4.00000000000000000000, 5.00000000000000000000}
inheritance-scalars={value1, value2, ....} 
 -->

<!-- 					<parameter ishidden="0" type="String">
						<name>inheritance_scalar</name>
						<attributes>
							<prompt>Enter the inheritance scalars (comma separated)</prompt>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							</attributes>
					</parameter> -->
					
<!-- 					<parameter ishidden="1" type="String">
						<name>specify_inheritance_scalar</name>
						<attributes>
							<paramfile>parmfile.txt</paramfile>
							<group>10</group>
							<precond>
								<language>perl</language>
								<code>defined $inheritance_scalar</code>
							</precond>
							<format>
								<language>perl</language>
								<code>(defined $value) ? "<![CDATA[ << "EOT"
inheritance-scalars={$value}\\n" :""
EOT
					  ]]></code>
							</format>
							<comment>
<value>The inheritance scalar is relative to the locus that is set to 1.0. If that
locus is a nuclear marker and the species is diploid then all theta are equivalent to 4Nemu
if that locus is a segment of mtDNA then all  are equivalent to Ne (maternal inheritance, sex
ratio 1:1). If you have 3 loci, for example in this order: a nuclear marker, a mtDNA marker, and
an X-linked marker then the input for this option is: inheritance-scalars={1.0, 0.25, 0.75}
This expresses all loci as  = 4Ne; A second example: if you have two loci, the first is Y-
chromosome segment and the second is X-linked and you would want to express all in Y then
inheritance-scalars={1.0, 3.0} or if you want to express in (theta)x then inheritance-scalars={0.333 1.0}
Use for the reference locus the scalar 1.0 and all other scalars relative to that.</value>
							</comment>
						</attributes>
					</parameter>	-->	

<!--  options specific to allelic data 
population-relabel={1} ; this is not supported yet.
# -->

<!-- allelic data option random-subset=<NO / number> migrate can randomly subsample each population. Picking the
number specified in the random-subset. If the population sample has fewer individuals than the
specified number, all samples are taken for that population. -->
<!-- 					<parameter type="Switch">
						<name>random_subsample</name>
						<attributes>
							<prompt>Randomly Subsample</prompt>
							<group>5</group>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							<vdef>
								<value>0</value>
							</vdef>
						</attributes>
					</parameter> -->
					
<!-- 					<parameter ishidden="0" type="Integer">
						<name>specify_subsample</name>
						<attributes>
							<prompt>Select the number of individuals for the random-subset</prompt>
							<group>11</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>$random_subsample</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
random-subset=$value\\n
EOT
					  ]]></code>
							</format>
							<comment>
<value>Migrate can randomly subsample each population. Picking the number specified in the random-subset. 
If the population sample has fewer individuals than the specified number, all samples are taken for that population.</value>
							</comment>
						</attributes>
					</parameter> -->
	

<!--  options specific to allelic data 
usertree=< NO / RANDOM >
. -->

<!-- 					<parameter type="Switch">
						<name>random_starttree</name>
						<attributes>
							<prompt>Generate a Random Starting Tree</prompt>
							<group>5</group>
							<precond>
								<language>perl</language>
								<code>$datatype eq "AllelicData"</code>
							</precond>
							<vdef>
								<value>0</value>
							</vdef>
							<warns>
								<warn>
									<message>The author of the program says the random tree option is generally a bad choice. Please refer to the manual.</message>
									<language>perl</language>
									<code>$random_starttree</code>	
								</warn>
							</warns>
							<comment>
								<value>The default is NO and migrate calculates a starting tree using a UPGMA tree that uses a
very simply distance matrix between the samples and then constrains this topology to follow a coalescent. With the keyword RANDOM one can generates a random starting tree with \coalescent time
intervals" according to the start parameters. This is generally a bad choice, but in conjunction of many short chains and the replicate=YES:number option [number is bigger than 1, see below].
This can help to search the parameter space more efficiently</value>
							</comment>
						</attributes>
					</parameter> -->
					
<!-- 					<parameter ishidden="1" type="String">
						<name>choose_starttree</name>
						<attributes>
							<group>12</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>$random_starttree</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
usertree=RANDOM\\n
EOT
					  ]]></code>
							</format>
						</attributes>
					</parameter> -->
			
<!-- 			</parameters>
		</paragraph>
</parameter>  -->	

<!-- datatype=Microsatellites> -->
<!--   <parameter type="Paragraph">
		<paragraph>
			<name>microsat_options</name>
			<prompt>Run Parameters for Microsatellite Data</prompt>
				<parameters> --> 
<!-- 
include-unknown=<YES/NO>
.-->
<!-- 						<parameter type="Switch">
						<name>include_unknownmsat</name>
						<attributes>
							<prompt>Include unknown data?</prompt>
							<group>4</group>
							<precond>
								<language>perl</language>
								<code>$datatype eq "MicrosatelliteData"</code>
							</precond>
							<vdef>
								<value>1</value>
							</vdef>
							<comment>
								<value>The default is NO. Alleles that are marked with a "?" are stripped from the analysis with
include-unknown=NO. Using YES leaves the "?" in the analysis, under some circumstances this
might be the preferred way, but for most situations the unknowns can be safely stripped from the
analysi</value>
							</comment>
						</attributes>
					</parameter>  -->
					
<!-- 				<parameter ishidden="1" type="String">
						<name>specify_unknownmsat</name>
						<attributes>
							<precond>
								<language>perl</language>
								<code>$include_unknownmsat</code>
							</precond>
							<group>5</group>
							<paramfile>parmfile.txt</paramfile>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
include-unknown=YES\\n
EOT
					  ]]></code>
							</format>
						</attributes>
					</parameter>
				</parameters>
		</paragraph>
</parameter>  -->	
<!-- micro-threshold=value
specifies the window in which probabilities of change are calculated if we have allele 34 then only
probabilities of a change from 34 to 35-44 and 24-34 are considered, the probability distribution
is visualized in Figure 4 the higher this value is the longer you wait for your result, choosing it too
small will produce wrong results. If you get -Infinity during runs of migrate then you need to check
that all alleles have at least 1 neighbor fewer than 10 steps apart. If you have say alleles 8,9,11
and 35,36,39 then the default will produce a probability to reach 11 from 35 and as a result the
likelihood of a genealogy will be -Infinity because we multiply over all different allele probabilities.
Default is micro-threshold=10 -->

<!-- 					<parameter ishidden="0" type="Integer">
						<name>specify_microthreshold</name>
						<attributes>
							<prompt>Specify the window in which probabilities of change are calculated</prompt>
							<group>12</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>$datatype eq "MicrosatelliteData"</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
micro-threshold=$value\\n
EOT
					  ]]></code>
							</format>
							<comment>
<value>Migrate can randomly subsample each population. Picking the number specified in the random-subset. 
If the population sample has fewer individuals than the specified number, all samples are taken for that population.</value>
							</comment>
						</attributes>
					</parameter>  -->
					
<!-- usertree=<NO  RANDOM >
The default is NO and migrate calculates a starting tree using a UPGMA tree that uses a
very simply distance matrix between the samples and then constrains this topology to follow a
coalescent.

With the keyword RANDOM one can generates a random starting tree with \coalescent time
intervals" according to the start parameters. This is generally a bad choice, but in conjunction of
many short chains and the replicate=YES:number option [number is bigger than 1, see below].
This can help to search the parameter space more efficiently. -->

<!--					<parameter type="Switch">
						<name>random_starttreemsat</name>
						<attributes>
							<prompt>Generate a Random Starting Tree</prompt>
							<group>5</group>
							<precond>
								<language>perl</language>
								<code>$datatype eq "MicrosatelliteData"</code>
							</precond>
							<vdef>
								<value>0</value>
							</vdef>
							<warns>
								<warn>
									<message>The author of the program says the random tree option is generally a bad choice. Please refer to the manual.</message>
									<language>perl</language>
									<code>$random_starttree</code>	
								</warn>
							</warns>
							<comment>
								<value>The default is NO and migrate calculates a starting tree using a UPGMA tree that uses a
very simply distance matrix between the samples and then constrains this topology to follow a coalescent. With the keyword RANDOM one can generates a random starting tree with \coalescent time
intervals" according to the start parameters. This is generally a bad choice, but in conjunction of many short chains and the replicate=YES:number option [number is bigger than 1, see below].
This can help to search the parameter space more efficiently</value>
							</comment>
						</attributes>
					</parameter>   -->
					
<!-- 					<parameter ishidden="1" type="String">
						<name>choose_starttree</name>
						<attributes>
							<group>12</group>
							<paramfile>parmfile.txt</paramfile>
							<precond>
								<language>perl</language>
								<code>$random_starttree</code>
							</precond>
							<format>
								<language>perl</language>
								<code><![CDATA[ << "EOT"
usertree=RANDOM\\n
EOT
					  ]]></code>
							</format>
						</attributes>
					</parameter>  -->
					
<!-- datatype=Brownian> -->
<!-- <parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Run Parameters for Brownian Data</prompt>
				<parameters>
					<parameter type="InFile">
						<name></name>
						<attributes>
							<prompt></prompt>
						</attributes>
					</parameter>
				</parameters>
		</paragraph>
</parameter> -->

<!-- datatype=<Sequences> -->
<!-- <parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Run Parameters for Sequences</prompt>
				<parameters>
					<parameter type="InFile">
						<name></name>
						<attributes>
							<prompt></prompt>
						</attributes>
					</parameter>
				</parameters>
		</paragraph>
</parameter> -->

<!-- datatype=Nucleotide-polymorphisms> -->
<!-- <parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Run Parameters for Nucelotide polymorphisms</prompt>
				<parameters>
					<parameter type="InFile">
						<name></name>
						<attributes>
							<prompt></prompt>
						</attributes>
					</parameter>
				</parameters>
		</paragraph>
</parameter> -->

<!-- datatype=<HapMap-SNP> -->
<!-- <parameter type="Paragraph">
		<paragraph>
			<name>overall</name>
			<prompt>Run Parameters for HapMAP/SNP data</prompt>
				<parameters>
					<parameter type="InFile">
						<name></name>
						<attributes>
							<prompt></prompt>
						</attributes>
					</parameter>
				</parameters>
		</paragraph>
</parameter> -->

<!-- datatype=<Genealogies> -->
<!-- Genealogies: 
MAXIMUM LIKELIHOOD: Reads the sumfile (see INPUT/OUTPUT section) of a
previous run, with this options the genealogy sampling step will not be done and the genealogies
provided in the sumfile are analyzed. This datatype makes it easy to rerun the program for
different likelihood ratio test or different settings for the profile likelihood printouts.

BAYESIAN INFERENCE: reads the bayesallfile (see INPUT/OUTPUT section) of a previous
runs, currently this option simply recreates the histogram, this allows the readjust some of the
-->
</parameters>
</pise>



