diff 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 diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Matrix_Manipulation.xml	Tue Nov 27 14:20:40 2018 -0500
@@ -0,0 +1,406 @@
+<?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>
\ No newline at end of file