<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pise PUBLIC "pise2.dtd" "pise2.dtd" >
<pise>
    <head>
      <title>Trimmomatic on XSEDE</title>
      <version>0.36</version>
      <description>A flexible read trimming tool for Illumina NGS data</description>
      <authors>Bolger, A. M., Lohse, M., and Usadel, B</authors>
      <reference></reference>
      <category>Phylogeny / Alignment</category>
      <doclink>http://www.usadellab.org/cms/index.php?page=trimmomatic</doclink>
      <doclink>http://www.usadellab.org/cms/uploads/supplementary/Trimmomatic/TrimmomaticManual_V0.32.pdf</doclink>
  </head>
	
	<command>trimmomatic_xsede</command>
	
<!-- ***********************************  created 9/12/2016 or thereabouts by mamiller ****************************************************************
 From the trimmomatic documentation
 Paired end mode
 
 java -jar <path to trimmomatic.jar> PE [-threads <threads] [-phred33 | -phred64] [-trimlog <logFile>] <input 1> <input 2> <paired output 1> <unpaired output 1> <paired output 2> <unpaired output 2> <step 1> ...


Single End Mode:

java -jar <path to trimmomatic jar> SE [-threads <threads>] [-phred33 | -phred64] [-trimlog <logFile>] <input> <output> <step 1> ...

  -->

<parameters> 

<!-- hidden parameters --> 

<!-- this will be the command line for PE-->       
    <parameter ishidden="1" type="String">
      <name>pe_command</name>
      <attributes>
      <precond>
      	<language>perl</language>
      	<code>$se_vs_pe eq "PE"</code>
      </precond> 
      <format>
      	<language>perl</language>
        <code>"trimmomatic_expanse PE -threads 12"</code>
      </format>
      <group>0</group>
      </attributes>
    </parameter> 
 
    
<!-- this will be the command line for PE after there is an insertion of phred -->       
    <parameter ishidden="1" type="String">
      <name>pe_command2</name>
      <attributes>
      <precond>
      	<language>perl</language>
      	<code>$se_vs_pe eq "PE"</code>
      </precond> 
      <format>
      	<language>perl</language>
        <code>"-trimlog trim_log.txt inputfile1.fq.gz inputfile2.fq.gz"</code>
      </format>
      <group>2</group>
      </attributes>
    </parameter> 
    
    <!-- this will be the command line for SE-->       
    <parameter ishidden="1" type="String">
      <name>se_command</name>
      <attributes>
      <prompt>Queue</prompt>
       <precond>
      	<language>perl</language>
      	<code>$se_vs_pe eq "SE"</code>
      </precond> 
      <format>
      	<language>perl</language>
    	<code>"trimmomatic_wrapper SE -threads 12"</code> 
      </format>
      <group>0</group>
      </attributes>
    </parameter> 
    
<!-- this will be the command line for SE-->       
    <parameter ishidden="1" type="String">
      <name>se_command2</name>
      <attributes>
      <prompt>Queue</prompt>
       <precond>
      	<language>perl</language>
      	<code>$se_vs_pe eq "SE"</code>
      </precond> 
      <format>
      	<language>perl</language>
    	<code>"-trimlog trim_log.txt inputfile1.fq.gz"</code> 
      </format>
      <group>2</group>
      </attributes>
    </parameter>     
    
    <parameter issimple="1" isinput="1" type="Sequence">
          <name>inputfile1</name>
          <attributes>
          <prompt>Input Sequence 1(fq)</prompt>
			<filenames>inputfile1.fq.gz</filenames>
        </attributes>
        </parameter>      
<!-- end of hidden parameters -->
	
<!-- Visible parameters -->
<!-- Parameters with visible controls start here -->
		<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.25</value>
				</vdef>
				<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>
				<ctrls>
					<ctrl>
						<message>Maximum Hours to Run must be less than 168</message>
						<language>perl</language>
						<code>$runtime &gt; 168.0</code>
					</ctrl>
					<ctrl>
						<message>Maximum Hours to Run must be greater than 0.1 </message>
						<language>perl</language>
						<code>$runtime &lt; 0.1</code>
					</ctrl>
				</ctrls>
				<warns>
					<warn>
						<message>The job will run on 12 processors as configured. If it runs for the entire configured time, it will consume 12 x $runtime cpu hours</message>
						<language>perl</language>
						<code>$runtime ne 0 </code>
					</warn>
				</warns>
				<format>
					<language>perl</language>
					<code>"runhours=$value\\n"</code>
				</format>
			</attributes>
		</parameter>
		
		<parameter ishidden="1" type="String">
			<name>trimmomatic_scheduler</name>
				<attributes>
					<paramfile>scheduler.conf</paramfile>
					<format>
						<language>perl</language>
							<code>
									"threads_per_process=12\\n" .
									"mem=23G\\n" .
									"node_exclusive=0\\n" .
									"nodes=1\\n"
								</code>
					</format>
					<group>0</group>
				</attributes>
		</parameter>
		
    <parameter ismandatory="1" issimple="1" type="Excl">
          <name>se_vs_pe</name>
          <attributes>
          	<prompt>Single-end reads or Paired-end reads?</prompt>
          	<vlist>
              <value>SE</value>
              <label>Single-end Reads</label>
              <value>PE</value>
              <label>Paired-end Reads</label>
          	</vlist>
           	<vdef>
            	<value>PE</value>
          	</vdef>
          </attributes>
    </parameter>

        <!-- input file name method 1 -->
        <parameter ismandatory="1" type = "Excl">
          <name>phred</name>
        	<attributes>
          		<prompt>phred</prompt>
           		<format>
          			<language>perl</language>
            		<code>" -phred$value"</code>
         		</format>
          		<vlist>
              		<value>33</value>
              		<label>33</label>
              		<value>64</value>
              		<label>64</label>
          		</vlist>
          		<vdef>
            		<value>33</value>
          		</vdef>
          		<group>1</group>
			</attributes>
     	</parameter>
     	
     	
     	
<!-- Begin input section --> 
       
        
        <parameter type = "InFile">
        	<name>inputfile2</name>
         		<attributes>
         			<prompt>Input Sequence 2 (fq)</prompt>
         			<precond>
          				<language>perl</language>
          				<code>$se_vs_pe eq "PE"</code>
          			</precond>
         			<filenames>inputfile2.fq.gz</filenames>
          			<group>3</group>
         		</attributes>
        </parameter> 
        
        <parameter type="String">
        	<name>pairedoutput1</name>
        	<attributes>
          		<prompt>paired output 1 filename</prompt>
          		<precond>
          			<language>perl</language>
          			<code>$se_vs_pe eq "PE"</code>
          		</precond>
          		<format>
					<language>perl</language>
					<code>"$value"</code>
				</format>
          		<vdef>
         			<value>paired_output_1.txt</value>
         		</vdef>	
          <group>6</group>
          </attributes>
        </parameter>
        
        <parameter type="String">
        	<name>unpairedoutput1</name>
        	<attributes>
          		<prompt>unpaired output 1 filename</prompt>
          		<precond>
          			<language>perl</language>
          			<code>$se_vs_pe eq "PE"</code>
          		</precond>
          		 <format>
					<language>perl</language>
					<code>"$value"</code>
				</format>
          		<vdef>
         			<value>unpaired_output_1.txt</value>
         		</vdef>	
          <group>7</group>
          </attributes>
        </parameter>
        
        <parameter type="String">
        	<name>pairedoutput2</name>
        	<attributes>
          		<prompt>paired output 2 filename</prompt>
          		<precond>
          			<language>perl</language>
          			<code>$se_vs_pe eq "PE"</code>
          		</precond>
          		 <format>
					<language>perl</language>
					<code>"$value"</code>
				</format>
          		<vdef>
         			<value>paired_output_2.txt</value>
         		</vdef>	
          <group>8</group>
          </attributes>
        </parameter>
        
        <parameter type="String">
        	<name>unpairedoutput2</name>
        	<attributes>
          		<prompt>unpaired output 2 filename</prompt>
          		<precond>
          			<language>perl</language>
          			<code>$se_vs_pe eq "PE"</code>
          		</precond>
          		<format>
					<language>perl</language>
					<code>"$value"</code>
				</format>
          		<vdef>
         			<value>unpaired_output_2.txt</value>
         		</vdef>	
          <group>9</group>
          </attributes>
        </parameter>
        
        <parameter type="String">
        	<name>seoutput1</name>
        	<attributes>
          		<prompt>single end output</prompt>
          		<precond>
          			<language>perl</language>
          			<code>$se_vs_pe eq "SE"</code>
          		</precond>
          		<format>
					<language>perl</language>
					<code>"$value"</code>
				</format>
          		<vdef>
         			<value>se_output_1.txt</value>
         		</vdef>	
          <group>8</group>
          </attributes>
        </parameter>
       
        <parameter ismandatory="1" type="Integer">
          <name>leading</name>
          <attributes>
          	<prompt>LEADING</prompt>
          	<vdef>
            	<value>30</value>
          	</vdef>
          	<format>
          		<language>perl</language>
            	<code>"LEADING:$value"</code>
          	</format>
          	<group>10</group>
          </attributes>
        </parameter>
        
        <parameter ismandatory="1" type="Integer">
          <name>trailing</name>
          <attributes>
          	<prompt>TRAILING</prompt>
          	<vdef>
            	<value>30</value>
          	</vdef>
          	<format>
          		<language>perl</language>
            	<code>" TRAILING:$value"</code>
          	</format>
          	<group>11</group>
          </attributes>
        </parameter>
        
        <parameter ismandatory="1" type="Integer">
          <name>slidingwindowsize</name>
          <attributes>
          	<prompt>SLIDINGWINDOW windowSize</prompt>
          	<group>12</group>
          	<vdef>
            	<value>4</value>
          	</vdef>
          </attributes>
        </parameter>
        
        <parameter ismandatory="1" type="String">
          <name>requiredQuality</name>
          <attributes>
          	<prompt>SLIDINGWINDOW requiredQuality</prompt>
          <format>
          	<language>perl</language>
            <code>" SLIDINGWINDOW:$slidingwindowsize:$value"</code>
          </format>
          <vdef>
            <value>20</value>
          </vdef>
          <group>13</group>
          </attributes>
        </parameter>
        
        <parameter type="Integer">
          <name>minlen</name>
          <attributes>
          	<prompt>MINLEN</prompt>
          	<format>
          		<language>perl</language>
            	<code>" MINLEN:$value"</code>
          	</format>
          	<vdef>
            	<value>36</value>
          	</vdef>
          	<group>14</group>
          </attributes>
        </parameter>
         		
	 	<parameter type="Results">
				<name>all_outputfiles</name>
				<attributes>
					<filenames>*</filenames>
				</attributes>
			</parameter>	
			
</parameters>
</pise>


