view Matrix_Manipulation.xml @ 1:f1bcd79cd923 draft default tip

Uploaded
author insilico-bob
date Tue, 27 Nov 2018 14:20:40 -0500
parents
children
line wrap: on
line source

<?xml version='1.1' encoding='utf-8'?>
<tool id="Matrix_Manipulation" name="Matrix Manipulation" version="1.2.4">
	 <description> Data manipulation before heatmap creation</description>

	<command interpreter="bash" detect_errors="aggressive">
		$__tool_directory__/Matrix_Manipulation.sh '$__tool_directory__' '${manipulation.option}' '$p_input' '$output_file' 
			'${manipulation.extra.choice}' '${manipulation.extra.thresh}' '${manipulation.extra.axis}' 
			'${manipulation.extra.transpose}' '${manipulation.extra.input2}' '${manipulation.extra.offsetvalue}' '${manipulation.extra.scalevalue}'
			
	</command>
	
	 <inputs>
	<param name="p_input" type="data" format="tabular" label="Input Matrix" />
	<conditional name="manipulation">
		<param name="option" type="select" label="Choose Manipulation Method">
			<option value="Matrix_Validations">Missing or Invalid Data</option>
			<option value="Matrix_Filters">Filter Data</option>
			<option value="Matrix_Transformations">Transform Data</option>
			<option value="Matrix_Multiply">Multiply or Correlate Matrices</option>
			<!-- <option value="Matrix_Statistics">View metadata about Heat Map Matrix</option> -->
			<!-- <option value="Split_ExcelTabs_IntoFiles">Split Excel tabs into separate tab delimited files</option> -->
		</param>
	
	
			<when value="Matrix_Validations">
			    <conditional name="extra">
				 	<param name="choice" type="select" label="Replace Invalid Value with:">
				 		<option value="Mean">Mean</option>
				 		<option value="Zero">Zero</option>
				 	</param>
					<when value="Mean">
				 		<param name="axis" type="select" label="Choose Axis:">
							<option value="Row">Row</option>
				 			<option value="Column">Column</option>
				 		</param>
				 		
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
				 		<param name="thresh" type="float" size="4" value=".05" hidden="true" />
				 		<param name="transpose" type="text" size="10" hidden="true"  value="n" />
				 		<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			 		<when value="Zero">
				 		<param name="axis" type="text" size="10" hidden="true" value="Row"/>
				 		
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
				 		<param name="thresh" type="float" size="4" value=".05" hidden="true" />
				 		<param name="transpose" type="text" size="10" hidden="true"  value="n" />
				 		<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			    </conditional>
		 	</when>
	
	
	
			<when value="Matrix_Filters">
			     <conditional name="extra">
			      <param name="choice" type="select" label="Filter Criteria:">
			 		<option value="LowerLimit">Remove row/column if any cell is less than threshold value</option>
			 		<option value="UpperLimit">Remove row/column if any cell is greater than threshold value</option>
			 		<option value="NANlimit">Remove row/column if number of invalid cells exceeds threshold value </option>
			 		<option value="NANpercent">Remove row/column if invalid cells exceeds threshold percent</option>
			 		<!-- <option value="VarianceValue">Remove row/column if Variance is below threshold value</option> -->
			 		<option value="VarianceCount">Remove row/column if Variance is not in top row/column count</option>
			 		<option value="VariancePercent">Remove row/column if Variance is not in top percent</option>
			 		<!-- <option value="MADcount">Remove row/column if Median Absolute Deviation (MAD) is not in top row/column count</option>
			 		<option value="MADpercent">Remove row/column if Median Absolute Deviation (MAD) is not in top percent</option> -->
			<!-- 	<option value="Covariance">Remove row/column if covariance exceeds threshold value</option>
			    	<option value="Median">Remove row/column if Median is less than threshold value</option>
			 		<option value="MADvalue">Remove row/column if Median Absolute Deviation (MAD) is below threshold value</option>
			 		<option value="Mean">Remove row/column if Mean is less than threshold value</option>
			 		<option value="Quantile">Remove row/column if less than Quantile_Cutoff</option>
			 		<option value="GeneList">Keep only these genes</option>
			 		<option value="Histogram">View filter histogram</option>
			 --> 
			  	</param>
			 	    <when value="LowerLimit">
						<param name="thresh" type="float" size="5" value="0.01" label="Absolute minimum value" help="Lowest value allowed or row/col removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			 	    <when value="UpperLimit">
						<param name="thresh" type="float" size="5" value="0.9" label="Absolute maximum value" help="Highest value allowed or row/col removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			 	    <when value="NANlimit">
						<param name="thresh" type="integer" size="5" value="50" label="Maximum number NANs" help="More NANs per row/col removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			  	    <when value="NANpercent">
						<param name="thresh" type="integer" size="5" value="20" label="Percent maximum" help="Above percent rows/cols removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			  	    <when value="VariancePercent">
						<param name="thresh" type="integer" size="5" value="90" label="Percentile minimum" help="Below percentile rows/cols removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when> 	
				    <when value="VarianceCount">
						<param name="thresh" type="integer" size="5" value="10" label="Number minimum" help="Below threshold rows/cols removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when> 	
				    <when value="MADpercent">
						<param name="thresh" type="integer" size="5" value="90" label="Percentile minimum" help="Below percentile rows/cols removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when> 	
				    <when value="MADcount">
						<param name="thresh" type="integer" size="5" value="10" label="Number minimum" help="Below threshold rows/cols removed."/>
						<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when> 	
			 	</conditional>
			</when>
		
		
		
			<when value="Matrix_Transformations">
			    <conditional name="extra">
			 	  <param name="choice" type="select" label="Choose Normalization Method">
			 	  	<option value="ln_normalization">Log2 Normalization</option>
			 		<option value="log_normalization">Log10 Normalization</option>
			 		<option value="mean_center_normalization">Mean Centered Normalization</option>
			 		<option value="median_center_normalization">Median Centered Normalization</option>
			 		<option value="z_score_normalization">Z-Score Normalization</option>
			 		<option value="add_offset">Add Offset Value</option>
			 		<option value="scale">Scale by Multiple</option>
			 		<option value="divide_by_sum">Divide by Sum</option>
			 		<option value="transpose">Matrix Transpose</option>
				  </param>
			 	    <when value="add_offset">
						<param name="offsetvalue" type="text" size="10" value="0.0" label="Matrix Values offset" help="Add value to each Matrix element."/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
				 		<param name="axis" type="text" size="10" hidden="true"  value="Row"/>
				 		
				 		<param name="thresh" type="float" size="4" value=".05" hidden="true" />
				 		<param name="transpose" type="text" size="10" hidden="true"  value="n" />
				 		<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
				    <when value="scale">
						<param name="scalevalue" type="text" size="10" value="1.0" label="Matrix Value scaling" help="multiply value with each Matrix element."/>
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="axis" type="text" size="10" hidden="true"  value="Row"/>
				 		
				 		<param name="thresh" type="float" size="4" value=".05" hidden="true" />
				 		<param name="transpose" type="text" size="10" hidden="true"  value="n" />
				 		<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
				    <when value="ln_normalization">
						<param name="offsetvalue" type="text" size="10" value="0.0" label="Matrix Values offset" help="Calculate log2 for each Matrix element then add offset."/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
				    <when value="log_normalization">
						<param name="offsetvalue" type="text" size="10" value="0.0" label="Matrix Values offset" help="Calculate log10 for each Matrix element then add offset."/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>	
			 		<when value="z_score_normalization">
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when> 		
			 		<when value="mean_center_normalization">
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			 		<when value="median_center_normalization">
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
					<when value="transpose">
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
				 		<param name="axis" type="text" size="10" hidden="true"  value="neither"/>
				 		
				 		<param name="thresh" type="float" size="4" value=".05" hidden="true" />
				 		<param name="transpose" type="text" size="10" hidden="true"  value="n" />
				 		<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			 		<when value="divide_by_sum">
				 		<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
			 			<param name="axis" type="select" label="Choose Axis">
			 				<option value="Row">Row</option>
			 				<option value="Column">Column</option>
			 			</param>
			 			
			 			<param name="thresh" type="float" size="4" value=".05" hidden="true" />
			 			<param name="transpose" type="text" size="10" hidden="true"  value="n" />
			 			<param name="input2" type="data" hidden="true"  value="$input1" />
				    </when>
			    </conditional>
		 	</when>
		
		
		
			<when value="Matrix_Multiply">
			    <conditional name="extra">
			    	<param name="choice" type="select" label="Choose composition type">
				 		<option value="MatrixMultiply">Matrix Multiplication</option> 
				 		<option value="Corr2Matrices">Correlate two matrices</option> 
				 		<option value="Corr1Matrix">Correlate one matrix with itself</option> 
				  	</param>	
				 	 <when value="MatrixMultiply">
					 	<param name="transpose" type="select" label="transpose matrix?">
						  <option value="y">Transpose matrix</option>
						  <option value="n" selected="true">Do Not transpose matrix</option>
					 	</param> 	
					 	<param name="input2" type="data" format="tabular" label="Second Input Matrix size NxP" />
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="thresh" type="float" size="4" value=".05" hidden="true" />
					 	<param name="axis" type="text" size="10" hidden="true" value="Row"/>
					 </when>
				 	 <when value="Corr2Matrices">
					 	<param name="transpose" type="select" label="transpose matrix?">
						  <option value="y">Transpose matrix</option>
						  <option value="n" selected="true">Do Not transpose matrix</option>
					 	</param> 	
					 	<param name="input2" type="data" format="tabular" label="Second Input Matrix size NxP" />
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="thresh" type="float" size="4" value=".05" hidden="true" />
					 	<param name="axis" type="text" size="10" hidden="true" value="Row"/>
					 </when>
				 	 <when value="Corr1Matrix">
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="thresh" type="float" size="4" value=".05" hidden="true" />
					 	<param name="axis" type="text" size="10" hidden="true" value="Row"/>
					 </when>
			   </conditional>
		 	</when>
		 	
		 	
		 	
		 	<when value="Matrix_Statistics">
			 	<conditional name="extra">
				    <param name="choice" type="select" label="Choose Metric to Filter By">
				 		<option value="Histogram">Plot info about either matrix row/column</option>
				  	</param>	
				  	<when value = "Histogram">
					 	<param name="thresh" type="float" size="4" value=".05" label="Filter Threshold (Value above/below row/column will be Removed)" />
					 	<param name="axis" type="select" label="Choose axis to Filter on (Rows or Columns)">
					 		<option value="Row">Row</option>
					 		<option value="Column">Column</option>
					 	</param>	
					 	
					 	<param name="offsetvalue" type="text" size="10" hidden="true"   value="0"/>
				 		<param name="scalevalue" type="text" size="10" hidden="true"   value="1.0"/>
					 	<param name="transpose" type="text" size="10" hidden="true"  value="n" />
					 	<param name="input2" type="data" hidden="true"  value="$input1" />
				 	</when>
			 	</conditional>
		 	</when>
		 	
		 	
		 	
		 	
		 	
		 	
		 	
		 	
		 	<!-- <when value="Split_ExcelTabs_IntoFiles">
		 		<description>into separate tab delimited files</description>
				
				 	<param name="input" type="data" format="txt" label="Input Excel.xls or Excel.xlsx file"> </param>
				 		
				    <conditional name="extra">
				 	  <param name="choice" type="select" label="Select tab" help="Select tab position or name">
						<option value="tab_number">Tab number</option>
				  	  </param>  	
				
				'$extra.tabname'
						<option value="tab_name">Tab name</option>
						<option value="all">All tabs in file</option>
				 		<option value="1">First tab only</option>
				  	  </param>  	
				    <when value="tab_name">
						<param name="tabname" type="text" size="20" value="" label="Tab Name" help="Spreadsheet Tab Name">
						</param>
				    </when>
				
				    <when value="tab_number">
						<param name="tabnumber" type="text" size="2" value="1" label="Tab position" help="Integer Tab position from left">
						</param>
				   </when>
				  </conditional>
				
				 <outputs>
				 	<data name="output_file" format="tabular" label="Output File Name" help="Name based on Input file name and tab name"/>
				 </outputs>
		 	</when> -->
		 	
		 	
		 	
 	</conditional>
 	</inputs>
 	<outputs>
	 	<data name="output_file" format="tabular" />
	 </outputs>
 </tool>