view ACF/analytic_correlation_filtration.xml @ 0:cfe4b819911b draft

Uploaded
author melpetera
date Thu, 10 Oct 2019 12:20:11 -0400
parents
children
line wrap: on
line source

<tool id="Analytic_correlation_filtration" name="Analytic correlation filtration" version="2019-06-20">
	<description>
		: Detect analytic correlation among data and remove them.
	</description>
	
	
	 <command><![CDATA[
		
		
		perl $__tool_directory__/Analytic_correlation_filtration.pl
		
		
		#if str($mass_file.mass_choice)=="false":
			#if str($rt_cond.rt_choice)=="false":
				perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -o 1 -d "$dataMatrix_in" -v "$variableMetadata_in" -rt 9999999999
			#else:
				perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -o 1 -d "$dataMatrix_in" -v "$variableMetadata_in"  -rt "$rt_cond.rt_threshold" 
			#end if
		#else:
			#if str($mass_file.liste.mass_list)=="true":
				#if str($rt_cond.rt_choice)=="true":
					perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -m "$mass_file.liste.mass_file_in" -o 2 -d "$dataMatrix_in" -v "$variableMetadata_in"  -rt "$rt_cond.rt_threshold" -mass "$mass_file.mass_threshold" 
				#end if
				#if str($rt_cond.rt_choice)=="false":
					perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -m "$mass_file.liste.mass_file_in" -o 3 -d "$dataMatrix_in" -v "$variableMetadata_in"  -mass "$mass_file.mass_threshold" 
				#end if
			#else
					#if str($rt_cond.rt_choice)=="true":
						perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -m $__tool_directory__/data/default_list.csv -o 2 -d "$dataMatrix_in" -v "$variableMetadata_in" -rt "$rt_cond.rt_threshold" -mass "$mass_file.mass_threshold" 
					#end if
					#if str($rt_cond.rt_choice)=="false":
						perl $__tool_directory__/Analytic_correlation_filtration.pl -f "$file_in" -m $__tool_directory__/data/default_list.csv -o 3 -d "$dataMatrix_in" -v "$variableMetadata_in" -mass "$mass_file.mass_threshold" 
					#end if
			#end if
		#end if
	
		-r "$repres_opt.repres_opt_selector"
		
		#if str($repres_opt.repres_opt_selector)=="max_intensity_max_mass":
			-IT $repres_opt.int_threshold
			-IP $repres_opt.int_percentage
		#end if
		-correl "$correl_threshold"
		-output_sif "$sif_out"
		-output_tabular "$variableMetadata_out"
		
	]]></command>
	
	<inputs>
		<param type="data" name="file_in" format="txt" help="The .txt correlation table (you can obtain it by using the Between-table Correlation tool or for exemple the cor() function in R) " label="Correlation table file" />
		<param type="data" name="dataMatrix_in" format="tabular" help="" label="dataMatrix file" />
		<param type="data" name="variableMetadata_in" format="tabular" help="" label="variableMetadata file" />
		
		<param help="Define the minimum correlation threshold accepted to determine analytic correlation" label="Correlation threshold" type="float" name="correl_threshold" value="0.90"/>
		
		<conditional name="mass_file">
		  <param name="mass_choice" checked="true" falsevalue="false" help="'YES' if you want to take it into account; 'NO' if you don't want to take into account mass information" label="Do you want to take into account mass differences between 2 ions?" truevalue="true" type="boolean"/>
				<when value="true">
					<conditional name="liste">
						<param name="mass_list" checked="true" falsevalue="false" help="'YES' if you have your own list to upload; 'NO' if you want to use a default list" label="Do you have your own list of mass differences or do you want to use a default list ?" truevalue="true" type="boolean"/>
						<when value="false">
						
						</when>
						<when value="true">
							<param type="data" name="mass_file_in" format="tabular,csv" help="The file containing all your report and known mass differences (cf help for file example) " label="Mass differences table (format: tabular or csv) " />
						</when>
					</conditional>
					<param help="2 ions need to have a difference mass included in the list at +/- mass difference range to be considered as analytically correlated | Value recommendation : 0.005" label="Mass difference range" type="float" name="mass_threshold" value="0.005"/>
				</when>
				<when value="false">
			
				</when>
		</conditional>
		
		<conditional name="rt_cond">
			<param checked="true" falsevalue="false" help="'YES' if want to take into account retention time information; 'NO' if you don't want to take into account retention time information" label="Do you want to take into account retention time differences between 2 ions? " name="rt_choice" truevalue="true" type="boolean"/>
				<when value="true">
					<param help="Choose a retention time difference threshold between 2 ions considered as analytically correlated | Value recommendation : 0.1" label="Retention time difference threshold" type="float" name="rt_threshold" value="0.1"/>
				</when>
				<when value="false">
					
				</when>
		</conditional>
		
		<conditional name="repres_opt">
			<param name="repres_opt_selector" label="Which representative ion do you want to select for each group" type="select" display="radio" help="">
				<option value="intensity">Highest intensity</option>
				<option value="mass">Highest mass</option>
				<option value="mixt">Highest (mass2 x intensity) </option>
				<option value="max_intensity_max_mass">Highest mass between the 3 highest intensity (following intensity threshold and rules ==> see help) </option>
			</param>
			<when value="max_intensity_max_mass">
				<param help="" label="Minimum intensity threshold for the representative ion" type="float" name="int_threshold" value="1000"/>
				<param help="Example: ion A have the highest intensity of a group but not the highest mass, B is an ion that have the second highest intensity in the group and a highest mass than A, to choose B as a representative ion for the group his intensity need to be at list 50% of the A intensity." label="Percentage of highest intensity of the group accept for the new representative ion. This option allow to avoid isotope selection. " type="float" name="int_percentage" value="0.5"/>
			</when>
			<when value="intensity">
			</when>
			<when value="mass">
			</when>
			<when value="mixt">
			</when>
		</conditional>
		
	</inputs>
	
	<outputs>
		<data format="sif" label="${file_in.name}_sif" name="sif_out"/>
		<data format="tabular" label="${variableMetadata_in.name}_representative_ion" name="variableMetadata_out"/>
	</outputs>
	
	<help><![CDATA[
	
.. class:: infomark

**Authors** : **Stephanie Monnerie** (stephanie.monnerie@inra.fr) wrote this tool for analytic correlation detection.

---------------------------------------------------

.. class:: infomark

**References** : 

---------------------------------------------------
	
-----------
Input files
-----------

+-----------------------------------------+---------------+
| File                                    |     Format    |
+=========================================+===============+
| 1)  Correlation matrix                  |  txt          |
+-----------------------------------------+---------------+
| 2)  Data matrix                         |  tabular      |
+-----------------------------------------+---------------+
| 3)  Variable metadata                   |  tabular      |
+-----------------------------------------+---------------+
| **Optional file**                       |   **Format**  |
+-----------------------------------------+---------------+
| 4)  Optional : Mass differences list    |  csv/tabular  |
+-----------------------------------------+---------------+

---------------------------------------------------

-------------
Files content
-------------
	
Correlation matrix
	* File organisation : on line by correlation pairs with the first ion ID, the correlation value and the second ion ID, tabular separated ==> Fist_Ion_ID \\t Correlation_Value \\t Second_Ion_ID
	* Example:
	
.. image:: Correlation_matrix.JPG
	:width: 800
	
Data matrix file
	* "variable x sample" **dataMatrix** : tabular separated file of the numeric data matrix, with . as decimal, and NA for missing values; the table must not contain metadata apart from row and column names; the row and column names must be identical to the rownames of the variable metadata (see below)

Variable metadata file
	* "variable x metadata" **variableMetadata** tabular separated file of the numeric and/or character variable metadata, with . as decimal and NA for missing values

.. class:: warningmark

For more information about input files, refer to the corresponding "W4M HowTo" page:
http://workflow4metabolomics.org/sites/workflow4metabolomics.org/files/files/w4m_TableFormatForGalaxy_150908.pdf


Mass differences list
	* A file containing list of known adducts, fragments or isotopes with the mass differences linked to them
	* Example:

.. image:: Adduct_fragment_list.JPG
	:width: 350

---------------------------------------------------
	
----------
Parameters
----------

Take into account mass diffrences between 2 ions :
	* You can enter a list of mass differences that are known. The file must be organized with a first column for the mass difference type (isotope, fragment, etc...), a second column with the mass difference chemical formula (H+, -2H+K, etc...) and a third column for the mass difference value
	* If you are choosing to use a mass differences table, you have to choose a mass difference range that will be a threshold to accept or not a difference value as true (recognize a mass difference value in the file +/- this threshold).

Take into acount retention time :
	* You can use retention time as a criteria to group ions. You have to choose a value that will be use as intervalle : 2 ions are group when their retention time is equal +/- the threshold.

Choose the representative ion for each group, there are 3 possibilities to determine the representative ion :
	* The ion with the highest intensity (recommandated for LC/MS)
	* The ion with the highest mass
	* The ion with the highest "mass2 * intensity" value 
	* The ion with the highest mass between the 3 highest intensity of the group, except if the highest mass ion have an intensity < determined percentage of the highest intensity ion one (for exemple 50%) (recommandated for GC/MS)
	

---------------------------------------------------
	
--------------
Example of use
--------------

Add exemples according to the ppt presentation !



	]]></help>
</tool>