view edgeR_Design_from_Expression_Matrix.xml @ 44:261b997b241f draft

Uploaded
author yhoogstrate
date Wed, 28 May 2014 05:24:12 -0400
parents 171f3cf6233d
children 34cd814f2327
line wrap: on
line source

<?xml version="1.0" encoding="UTF-8"?>
<tool id="design_from_expression_matrix" name="edgeR: Design- from Expression matrix">
	<description>Create design- from an expression matrix</description>
	
	<command interpreter="python">
		design_matrix_creator.py
			-c $expression_matrix
			
			#set $unique_columns = []
			#for $factor in $treatments:
				#for $level in $factor.rep_factorLevel:
					#for $val in $level.factorIndex.value:
						#if str($val) not in $unique_columns:
							#set $unique_columns = $unique_columns + [str($val)]
						#end if
					#end for
				#end for
			#end for
			
			#set $unique_columns = " ".join(unique_columns)
			-s $unique_columns
			
			-t
			#for $factor in $treatments:
				#set $factor_str = str($factor.name).encode('base64').replace('\n','')
				
				#for $level in $factor.rep_factorLevel:
					#set $factor_str = $factor_str+":"+str($level.factorLevel).encode('base64').replace('\n','')+":"+",".join([str(x).strip() for x in $level.factorIndex.value])
				#end for
				
				$factor_str
			#end for
			
			#if $choose_blocking.choice == "true"
				-b
				#for blocking in $choose_blocking.blocking_repeat:
					#set $blocking_str = str($blocking.blocking_name).encode('base64').replace('\n','')
					
					#for $block_iter in $blocking.block:
						#set $block_str = ",".join([str(x).strip() for x in $block_iter.block_index.value])
						#set $blocking_str = $blocking_str+":"+$block_str
					#end for
					
					$blocking_str
				#end for
			#end if
			
			 -o $contrast_matrix
	</command>
	
	<inputs>
		<param format="tabular" name="expression_matrix" type="data" label="Expression matrix (read counts)" help="You can create a count matrix with the tool" />
		
		<repeat name="treatments" title="Factor/Condition" min="1">
			<param name="name" type="text" value="FactorName" label="Specify a name for the factor / condition" help="e.g. 'Tumor vs. Normal', 'Timepoint' or 'DiseaseState'. Field must be non-numerical, preferably only letters!!" />
			<repeat name="rep_factorLevel" title="Factor level" min="1">
				<param name="factorLevel" type="text" value="FactorLevel" label="Specify a condition" help="e.g. Tumor or Normal; Treated, untreaded or placebo. Field must be non-numerical, preferably only letters!!" />
				<param name="factorIndex" numerical="false" use_header_names="true" label="Select columns that are associated with this factor level" type="data_column" data_ref="expression_matrix" multiple="true" size="120" display="checkboxes">
					<validator type="no_options" message="Please select at least one column." />
				</param>
			</repeat>
		</repeat>
		
		<conditional name="choose_blocking">
			<param name="choice" type="select" label="Define blocking (paired or grouped samples)" help="e.g. to remove batch effects" >
				<option value="false">No</option>
				<option value="true">Yes</option>
			</param>
			<when value="false" />
			<when value="true">
				<repeat name="blocking_repeat" title="Blocking condition" min="1">
					<param name="blocking_name" type="text" value="" label="Specify a name for a blocking condition" help="e.g.'Patients' or 'Batches'" />
					<repeat name="block" title="Block" min="2">
						<param name="block_index" label="Select columns that are associated with this factor level" type="data_column" data_ref="expression_matrix" numerical="True" multiple="true" use_header_names="true" size="120" display="checkboxes">
							<validator type="no_options" message="Please select at least one column." />
						</param>
					</repeat>
				</repeat>
			</when>
		</conditional>
	</inputs>
	
	<outputs>
		<data format="tabular" name="design_matrix" label="Design matrix" />
	</outputs>
	
	<help>
edgeR: Design- from Expression matrix

**References**

The test data is coming from:  doi: 10.1093/bioinformatics/btt688.
http://www.ncbi.nlm.nih.gov/pubmed/24319002
	</help>
</tool>