view mda_advanced_heatmap_gen.xml @ 2:19382473a76b draft

Uploaded
author insilico-bob
date Thu, 08 Feb 2018 14:47:49 -0500
parents 603f99d9e776
children 9359e0a0d40b
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8" ?>
<tool id="mda_advanced_heatmap_gen" name="Advanced NG-CHM Generator" version="2.3">
  <requirements>
    <requirement type="package" version="3.4.1">r-base</requirement> 
  </requirements>
  <description> Create Clustered Heat Maps with Advanced Options</description>
<command interpreter="bash" detect_errors="aggressive">$__tool_directory__/heatmap_advanced.sh  'advanced' 'Heat_Map_$hmname' '$hmdesc' '$inputmatrix' ${d_rows.rowOrderMethod} ${d_rows.rowDistanceMeasure} ${d_rows.rowAgglomerationMethod} ${d_cols.columnOrderMethod} ${d_cols.columnDistanceMeasure} ${d_cols.columnAgglomerationMethod} $summarymethod '$__tool_directory__;$__tool_data_path__' ${d_rows.rowDendroCut} ${d_cols.colDendroCut} $rowDataType $colDataType 'c_${d_rows.rcutrows.rowDendroTreeCut}' 'c_${d_cols.ccutrows.colDendroTreeCut}' 't_$rowTopItems' 't_$colTopItems' 

    "
    #for $attr in $hm_attribute
      ${attr.attrbute_key}:${attr.attrbute_value};
    #end for
    "

    #for $op in $operations
       ${op.class_name}
       ${op.repeatinput.file_name}
       ${op.cattype.cat}
       ${op.cattype.bartype}
      #end for
 	'$output' 
 </command>
	<stdio>
      <exit_code range="1:" level="fatal" />
	</stdio>
  <inputs>
    <param name="inputmatrix" type="data" format="Tabular" label="Input Data Matrix" help="Tab delimited text file with row labels, column labels, and data."/>
    <param name="hmname" size="40" type="text" value="Heat_Map_name"  label="Heat Map Name" help="Short Name for heat map (no spaces)."/>
           <sanitizer>
              <valid>
                <add preset="string.printable"/>
            	<remove value="&quot;"/>
            	<remove value="&apos;"/>
                <remove value=" "/> 
              </valid>
           </sanitizer>
    <param name="hmdesc" size="100" optional="true" type="text" value="Heat_Map_description" label="Heat Map Description" help="Longer description of the heat map contents."/>
           <sanitizer>
              <valid>
                <add preset="string.printable"/>
            	<remove value="&quot;"/>
            	<remove value="&apos;"/>
                <remove value=" "/> 
              </valid>
           </sanitizer>
    <param name="summarymethod" 	type="select"  label="Data Summarization Method" help="For large matrices, the selected method is used to aggregate data values in the summary view.">
		<option value="average">Average</option>
		<option value="sample">Sample</option>
		<option value="mode">Mode</option>
    </param>
      <conditional name="d_rows">
			<param name="rowOrderMethod" type="select" label="Row ordering method" help="Determine if rows should be clustered, randomized, or remain as is.">
				<option value="Hierarchical">Hierarchical Clustering</option>
				<option value="Original">Original Order</option>	    
				<option value="Random">Random</option>	    
			</param>
	        <when value="Hierarchical">
				<param name="rowDistanceMeasure" type="select"  label="Row Distance Metric" help="For clustering, select the method of determining distance between rows.">
					<option value="euclidean">Euclidean</option>
					<option value="binary">Binary</option>
					<option value="manhattan">Manhattan</option>
					<option value="maximum">Maximum</option>
					<option value="canberra">Canberra</option>	    
					<option value="minkowski">Minkowski</option>	    
					<option value="correlation">Correlation</option>	    
				</param>
				<param name="rowAgglomerationMethod" type="select"  label="Row Clustering Method" help="For clustering, select algorithm for building clusters.">
					<option value="average">Average Linkage</option>
					<option value="complete">Complete Linkage</option>
					<option value="single">Single Linkage</option>
					<option value="ward" selected="true">Ward</option>
					<option value="mcquitty">Mcquitty</option>	    
					<option value="median">Median</option>	    
					<option value="centroid">Centroid</option>	    
				</param>
	            <param name="rowDendroCut" type="select" label="Row Cluster Covariate Bar" help="To generate a row covariate bar based on clusters, select the number of clusters(classes) to use.">
	        		<option value="0" selected="true" >None</option>
	        		<option value="2" >2</option>
	        		<option value="3" >3</option>
	        		<option value="4" >4</option>
	        		<option value="5" >5</option>
	        		<option value="6" >6</option>
	        		<option value="7" >7</option>
	        		<option value="8" >8</option>
	        		<option value="9" >9</option>
	        		<option value="10" >10</option>
	            </param>
     			<conditional name="rcutrows">
					<param name="raddcuts" type="select" label="Add row gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
						<option value="none">None</option>
						<option value="treecuts">Cluster-Based Gaps</option>	    
						<option value="positional">Fixed Gaps</option>	    
					</param>
		        	<when value="none">
		  		    	<param name="rowDendroTreeCut" type="text" size="0" hidden="true"   value="0"/>
		        	</when>
		        	<when value="treecuts">
			            <param name="rowDendroTreeCut" type="select" label="Cluster-Based Gap" help="Gaps will be placed between clusters. Select the number of clusters." >
			        		<option value="0t" selected="true" >None</option>
			        		<option value="2t" >2</option>
			        		<option value="3t" >3</option>
			        		<option value="4t" >4</option>
			        		<option value="5t" >5</option>
			        		<option value="6t" >6</option>
			        		<option value="7t" >7</option>
			        		<option value="8t" >8</option>
			        		<option value="9t" >9</option>
			        		<option value="10t" >10</option>
			            </param>
			        </when>
		        	<when value="positional">
		  		    	<param name="rowDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
					</when>
			    </conditional>
	        </when>
	        <when value="Original">
			    <param name="rowDistanceMeasure" type="text" size="0"   hidden="true"   value="n/a"/>
			    <param name="rowAgglomerationMethod" type="text" size="0"  hidden="true"    value="n/a"/>
	  		    <param name="rowDendroCut" type="text" size="0" hidden="true"   value="0"/>
     			<conditional name="rcutrows">
					<param name="raddcuts" type="select" label="Add row gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
						<option value="none">None</option>
						<option value="positional">Fixed Gaps</option>	    
					</param>
		        	<when value="none">
  		    			<param name="rowDendroTreeCut" type="text" size="100" value="None"  hidden="true"/>
		        	</when>
		        	<when value="positional">
  		    			<param name="rowDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
		        	</when>
		        </conditional>
	        </when>
	        <when value="Random">
			    <param name="rowDistanceMeasure" type="text" size="0"  hidden="true"    value="n/a"/>
			    <param name="rowAgglomerationMethod" type="text" size="0"  hidden="true"    value="n/a"/>
	 		    <param name="rowDendroCut" type="text" size="0" hidden="true"    value="0"/>
     			<conditional name="rcutrows">
					<param name="raddcuts" type="select" label="Add row gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
						<option value="none">None</option>
						<option value="positional">Fixed Gaps</option>	    
					</param>
		        	<when value="none">
  		    			<param name="rowDendroTreeCut" type="text" size="100" value="None"  hidden="true"/>
		        	</when>
		        	<when value="positional">
  		    			<param name="rowDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
		        	</when>
		        </conditional>
	        </when>
    </conditional>
	<param name="rowTopItems" size="100" type="text" value="None" label="Row Top Items" help="A few rows can be labeled in the full summary heat map. To do so provide a comma delimited list of row labels."/>
    <param name="rowDataType" type="select" label="Row Label Type" help="Enable label driven link-outs by specifying the type of row labels.">
        <option value="labels" selected="true" >None</option>
        <option value="bio.probe.affymetrix" >Affymetrix Probe Id</option>
        <option value="bio.feature.agilent" >Agilent Id</option>
        <option value="bio.sample.cbioportal" >cBioPortal sample Id</option>
        <option value="bio.transcript.ensemble" >Ensemble transcript Id</option>
        <option value="bio.gene.entrez" >Gene Entrez Id</option>
        <option value="bio.gene.hugo" >Gene HUGO symbol</option>
        <option value="bio.go" >Gene Ontology (GO) Id</option>
        <option value="bio.geo.acc" >GEO Accession Id</option>
        <option value="bio.probe.illumina" >Illumina Probe Id</option>
        <option value="bio.probe.infinium" >Infinium Probe Id</option>
        <option value="bio.pathway.mdanderson" >MD Anderson pathway Id</option>
        <option value="bio.mirna" >miRNA Id</option>
        <option value="bio.mirna.mimat" >miRNA MIMAT Id</option>
        <option value="bio.pubmed" >Pubmed Id</option>
        <option value="bio.pubmed.search" >Pubmed Search Term</option>
        <option value="scholar" >Scholarly term</option>
        <option value="bio.gene.unigene" >Unigene CId</option>
        <option value="bio.protein.uniprot" >UniProt Id</option>
    </param>    
	<conditional name="d_cols">
		<param name="columnOrderMethod" type="select" label="Column ordering method" help="Determine if columns should be clustered, randomized, or remain as is.">
			<option value="Hierarchical">Hierarchical Clustering</option>
			<option value="Original">Original Order</option>	    
			<option value="Random">Random</option>	    
		</param>
        <when value="Hierarchical">
			<param name="columnDistanceMeasure" type="select"  label="Column Distance Metric" help="For clustering, select the method of determining distance between columns.">
				<option value="euclidean">Euclidean</option>
				<option value="binary">Binary</option>
				<option value="manhattan">Manhattan</option>
				<option value="maximum">Maximum</option>
				<option value="canberra">Canberra</option>	    
				<option value="minkowski">Minkowski</option>	    
				<option value="correlation">Correlation</option>	    
			</param>
			<param name="columnAgglomerationMethod" type="select"  label="Column Clustering Method" help="For clustering, select algorithm for building clusters.">
				<option value="average">Average Linkage</option>
				<option value="complete">Complete Linkage</option>
				<option value="single">Single Linkage</option>
				<option value="ward" selected="true">Ward</option>
				<option value="mcquitty">Mcquitty</option>	    
				<option value="median">Median</option>	    
				<option value="centroid">Centroid</option>	    
			</param>
            <param name="colDendroCut" type="select" label="Column Cluster Covariate Bar" help="To generate a column covariate bar based on clusters, select the number of clusters(classes) to use.">
        		<option value="0" selected="true" >None</option>
        		<option value="2" >2</option>
        		<option value="3" >3</option>
        		<option value="4" >4</option>
        		<option value="5" >5</option>
        		<option value="6" >6</option>
        		<option value="7" >7</option>
        		<option value="8" >8</option>
        		<option value="9" >9</option>
        		<option value="10" >10</option>
            </param>
   			<conditional name="ccutrows">
				<param name="caddcuts" type="select" label="Add column gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
					<option value="none">None</option>
					<option value="treecuts">Cluster-Based Gaps</option>	    
					<option value="positional">Fixed Gaps</option>	    
				</param>
	        	<when value="none">
	  		    	<param name="colDendroTreeCut" type="text" size="0" hidden="true"   value="0"/>
	        	</when>
	        	<when value="treecuts">
		            <param name="colDendroTreeCut" type="select" label="Cluster-Based Gap" help="Gaps will be placed between clusters. Select the number of clusters.">
		        		<option value="0t" selected="true" >None</option>
		        		<option value="2t" >2</option>
		        		<option value="3t" >3</option>
		        		<option value="4t" >4</option>
		        		<option value="5t" >5</option>
		        		<option value="6t" >6</option>
		        		<option value="7t" >7</option>
		        		<option value="8t" >8</option>
		        		<option value="9t" >9</option>
		        		<option value="10t" >10</option>
		            </param>
		        </when>
	        	<when value="positional">
	  		    	<param name="colDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
		        </when>
		    </conditional>
        </when>
        <when value="Original">
		    <param name="columnDistanceMeasure" type="text" size="0" hidden="true"    value="n/a"/>
		    <param name="columnAgglomerationMethod" type="text" size="0"   hidden="true"  value="n/a"/>
		    <param name="colDendroCut" type="text" size="0"  hidden="true"   value="0"/>
   			<conditional name="ccutrows">
				<param name="caddcuts" type="select" label="Add column gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
					<option value="none">None</option>
					<option value="positional">Fixed Gaps</option>	    
				</param>
	        	<when value="none">
 		    			<param name="colDendroTreeCut" type="text" size="100" value="None"  hidden="true"/>
	        	</when>
	        	<when value="positional">
 		    			<param name="colDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
	        	</when>
	        </conditional>
         </when>
        <when value="Random">
		    <param name="columnDistanceMeasure" type="text" size="0"  hidden="true"   value="n/a"/>
		    <param name="columnAgglomerationMethod" type="text" size="0"  hidden="true"   value="n/a"/>
		    <param name="colDendroCut" type="text" size="0"  hidden="true"   value="0"/>
   			<conditional name="ccutrows">
				<param name="caddcuts" type="select" label="Add column gap(s)" help="To separate portions of the heat map with gaps, select a gap method.">
					<option value="none">None</option>
					<option value="positional">Fixed Gaps</option>	    
				</param>
	        	<when value="none">
 		    			<param name="colDendroTreeCut" type="text" size="100" value="None"  hidden="true"/>
	        	</when>
	        	<when value="positional">
 		    			<param name="colDendroTreeCut" type="text" size="100" value="None" label="Fixed Gap Location(s)" help="Enter a comma delimited list of row numbers where gaps should be created."/>
	        	</when>
	        </conditional>
        </when>
    </conditional>
	<param name="colTopItems" size="100" type="text" value="None" label="Column Top Items" help="A few columns can be labeled in the full summary heat map. To do so provide a comma delimited list of column labels."/>
    <param name="colDataType" type="select" label="Column Label Type" help="Enable label driven link-outs by specifying the type of column labels.">
        <option value="labels" selected="true" >None</option>
        <option value="bio.probe.affymetrix" >Affymetrix Probe Id</option>
        <option value="bio.feature.agilent" >Agilent Id</option>
        <option value="bio.sample.cbioportal" >cBioPortal sample Id</option>
        <option value="bio.transcript.ensemble" >Ensemble transcript Id</option>
        <option value="bio.gene.entrez" >Gene Entrez Id</option>
        <option value="bio.gene.hugo" >Gene HUGO symbol</option>
        <option value="bio.go" >Gene Ontology (GO) Id</option>
        <option value="bio.geo.acc" >GEO Accession Id</option>
        <option value="bio.probe.illumina" >Illumina Probe Id</option>
        <option value="bio.probe.infinium" >Infinium Probe Id</option>
        <option value="bio.pathway.mdanderson" >MD Anderson pathway Id</option>
        <option value="bio.mirna" >miRNA Id</option>
        <option value="bio.mirna.mimat" >miRNA MIMAT Id</option>
        <option value="bio.pubmed" >Pubmed Id</option>
        <option value="bio.pubmed.search" >Pubmed Search Term</option>
        <option value="scholar" >Scholarly term</option>
        <option value="bio.gene.unigene" >Unigene CId</option>
        <option value="bio.protein.uniprot" >UniProt Id</option>
    </param>    
    <repeat name="operations" title="Covariate Bars">
        <param name="class_name" size="25" type="text" value="" label="Covariate Name" help="Covariate heat map display label.">
           <sanitizer>
              <valid>
                <add preset="string.printable"/>
            	<remove value="&quot;"/>
            	<remove value="&apos;"/>
                <remove value=" "/> 
              </valid>
           </sanitizer>
        </param>
        <param name="repeatinput" type="data" format="Tabular" label="Covariate File" help="Tab delimited text file with row or column label and covariate value on each line."/>
        <conditional name="cattype">
			<param name="cat" type="select" label="Covariate Type" help="Identify the covariate as belonging to rows or columns and containing categorical or continuous values.">
			  <option value="row_categorical" >Row Categorical</option>
			  <option value="row_continuous" >Row Continuous</option>
			  <option value="column_categorical" >Column Categorical</option>
			  <option value="column_continuous" >Column Continuous</option>
			</param>
	        <when value="row_continuous">
		 		<param name="bartype" type="select" label="Display Type">
				  <option value="color_plot" >Standard</option>
				  <option value="bar_plot" >Bar Plot</option>
				  <option value="scatter_plot" >Scatter Plot</option>
				</param>
	        </when>
	        <when value="column_continuous">
		 		<param name="bartype" type="select" label="Display Type">
				  <option value="color_plot" >Standard</option>
				  <option value="bar_plot" >Bar Plot</option>
				  <option value="scatter_plot" >Scatter Plot</option>
				</param>
	        </when>
	        <when value="column_categorical">
	 	 		<param name="bartype" type="text"  hidden="true" value="color_plot"/>
	        </when>
	        <when value="row_categorical">
	 	 		<param name="bartype" type="text"  hidden="true" value="color_plot"/>
	        </when>
	 	</conditional>
     </repeat>       
     <repeat name="hm_attribute" title="Heat Map Attributes">
        <param name="attrbute_key" size="50" type="text" value="" label="Heat Map Attribute Key" help="For map level attributes. Enter the key (no spaces).">
           <sanitizer invalid_char="_">
              <valid initial="">
                <add preset="string.letters"/>
                <add preset="string.digits"/>
              </valid>
              <mapping initial="">
              </mapping>
           </sanitizer>
        </param>
        <param name="attrbute_value" size="50" type="text" label="Heat Map Attributes Value" help="For map level attributes. Enter the value (no spaces).">
           <sanitizer invalid_char="_">
              <valid initial="">
                <add preset="string.letters"/>
                <add preset="string.digits"/>
              </valid>
              <mapping initial="">
              </mapping>
           </sanitizer>
        </param>
    </repeat>       
  </inputs>
  <outputs>
    <data name="output" label='Heat_Map_$hmname' format="ngchm"/>
  </outputs>
 <tests>
    <test>
      <param name="inputmatrix" value="400x400.txt" />
      <param name="hmname" value="testRun" />
      <param name="$hmdesc" value="validateTool" />
      <param name="summarymethod" value="Average" />
      <param name="rowOrderMethod" value="Hierarchical" />
      <param name="rowDistanceMeasure" value="Manhattan" />
      <param name="rowAgglomerationMethod" value="Ward" />
      <param name="columnOrderMethod" value="Hierarchical" />
      <param name="columnDistanceMeasure" value="Manhattan" />
      <param name="columnAgglomerationMethod" value="Ward" />
      <output name="output" file="Galaxy400x400-noCovariates.ngchm" lines_diff="10" />     

    </test>
<!--   galaxy/test-data/    dir where the input and output file that should match tool output will be copied -->
  </tests>
 </tool>