Mercurial > repos > immport-devteam > flowai
diff FCSflowAI.xml @ 1:34397a84faf1 draft
"planemo upload for repository https://github.com/ImmPortDB/immport-galaxy-tools/tree/master/flowtools/flowai commit 83ef47729f2d2cdae84171761a6795df9fb63389"
author | azomics |
---|---|
date | Tue, 23 Jun 2020 18:34:02 -0400 |
parents | |
children | fab7c5deeb65 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/FCSflowAI.xml Tue Jun 23 18:34:02 2020 -0400 @@ -0,0 +1,177 @@ +<tool id="flowAI" name="flowAI" version="1.0+galaxy0"> + <description> automatic quality control</description> + <requirements> + <requirement type="package" version="1.42.0">bioconductor-flowcore</requirement> + <requirement type="package" version="1.2.9">bioconductor-flowai</requirement> + </requirements> + <stdio> + <exit_code range="2:" level="fatal" description="See stderr for more details." /> + </stdio> + <command><![CDATA[ + Rscript $__tool_directory__/FCSflowAI.R '${input}' '${remove}' $alphaFR $chremFS $outFS $penFS '${sideFM}' '${full_rep}' $highfcs $lowfcs $qcfcs + ]]> + </command> + <inputs> + <param format="fcs" name="input" type="data" label="FCS file"/> + <param name="remove" type="select" label="Remove low quality cells from:"> + <option value="all">Flow rate, Signal acquisition and Dynamic range</option> + <option value="FR_FS">Flow rate and Signal acquisition</option> + <option value="FR_FM">Flow rate and Dynamic range</option> + <option value="FS_FM">Signal acquisition and Dynamic range</option> + <option value="FR">Flow rate</option> + <option value="FS">Signal acquisition</option> + <option value="FM">Dynamic range</option> + </param> + <param name="alphaFR" type="float" label="Significance threshold for flow rate check:" value="0.01"/> + <param name="chremFS" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Do you want to exclude the FSC and SSC parameters from the signal acquisition check?" help="The FSC and SSC parameters will not be taken into account for analysis but will not be removed."/> + <param name="outFS" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Do you want to remove outliers before the signal acquisition check?"/> + <param name="penFS" type="integer" label="Stringency of signal acquisition check (higher tolerance with higher values):" value="200"/> + <param name="sideFM" type="select" label="Include in dynamic range check:"> + <option value="both">Both limits</option> + <option value="upper">Upper limit only</option> + <option value="lower">Lower limit only</option> + </param> + <param name="highQ_FCS" type="boolean" checked="true" truevalue="TRUE" falsevalue="FALSE" label="Create FCS file with only high quality events?"/> + <param name="lowQ_FCS" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Create FCS file with only low quality events?"/> + <param name="QC_FCS" type="boolean" checked="false" truevalue="TRUE" falsevalue="FALSE" label="Create FCS file with an additional parameter where low quality events have values higher than 10,000?"/> + </inputs> + <outputs> + <data format="html" name="full_rep" label="QC of ${input.name}"> + </data> + <data format="fcs" name="highfcs" label="High quality events only from ${input.name}"> + <filter>(highQ_FCS)</filter> + </data> + <data format="fcs" name="lowfcs" label="Low quality events only from ${input.name}"> + <filter>(lowQ_FCS)</filter> + </data> + <data format="fcs" name="qcfcs" label="All events (low quality event marked up) from ${input.name}"> + <filter>(QC_FCS)</filter> + </data> + </outputs> + <tests> + <test> + <param name="input" value="input.fcs"/> + <param name="remove" value="all"/> + <param name="alphaFR" value="0.01"/> + <param name="chremFS" value="TRUE"/> + <param name="outFS" value="FALSE"/> + <param name="penFS" value="200"/> + <param name="sideFM" value="both"/> + <param name="highQ_FCS" value="TRUE"/> + <param name="lowQ_FCS" value="FALSE"/> + <param name="QC_FCS" value="FALSE"/> + <output name="full_rep" file="std/QCreport.html" compare="sim_size"/> + <output name="highfcs" file="std/hqdata.fcs" compare="sim_size"/> + </test> + <test> + <param name="input" value="input.fcs"/> + <param name="remove" value="all"/> + <param name="alphaFR" value="0.01"/> + <param name="chremFS" value="TRUE"/> + <param name="outFS" value="FALSE"/> + <param name="penFS" value="200"/> + <param name="sideFM" value="both"/> + <param name="highQ_FCS" value="TRUE"/> + <param name="lowQ_FCS" value="TRUE"/> + <param name="QC_FCS" value="TRUE"/> + <output name="full_rep" file="std/QCreport.html" compare="sim_size"/> + <output name="highfcs" file="std/hqdata.fcs" compare="sim_size"/> + <output name="lowfcs" file="std/lqdata.fcs" compare="sim_size"/> + <output name="qcfcs" file="std/alldata.fcs" compare="sim_size"/> + </test> + <test> + <param name="input" value="input.fcs"/> + <param name="remove" value="all"/> + <param name="alphaFR" value="0.01"/> + <param name="chremFS" value="TRUE"/> + <param name="outFS" value="TRUE"/> + <param name="penFS" value="200"/> + <param name="sideFM" value="both"/> + <param name="highQ_FCS" value="TRUE"/> + <param name="lowQ_FCS" value="FALSE"/> + <param name="QC_FCS" value="FALSE"/> + <output name="full_rep" file="nooutliers/QCreport_nooutliers.html" compare="sim_size"/> + <output name="highfcs" file="nooutliers/hqdata_nooutliers.fcs" compare="sim_size"/> + </test> + <test> + <param name="input" value="input.fcs"/> + <param name="remove" value="all"/> + <param name="alphaFR" value="0.01"/> + <param name="chremFS" value="FALSE"/> + <param name="outFS" value="FALSE"/> + <param name="penFS" value="200"/> + <param name="sideFM" value="both"/> + <param name="highQ_FCS" value="TRUE"/> + <param name="lowQ_FCS" value="FALSE"/> + <param name="QC_FCS" value="FALSE"/> + <output name="full_rep" file="withsfsc/QCreport_sfsc.html" compare="sim_size"/> + <output name="highfcs" file="withsfsc/hqdata_sfsc.fcs" compare="sim_size"/> + </test> + </tests> + <help><![CDATA[ + This tool automatically performs quality control of flow cytometry data. + +----- + +**Input files** + + • One or more FCS files. + +**Output files** + + • full HTML report + • new FCS file containing only high quality events (default) + • new FCS file containing only low quality events (optional) + • original FCS file containing an additional parameter where the low quality events have a value higher than 10,000 (optional) + + +The files generated will be FCS 3.0. + +---- + +Description of the approach +''''''''''''''''''''''''''' +This tool identifies anomalies from three fundamental properties of flow cytometry data: + + - *Flow rate*. Surges and substantial shifts of the rate of the cells passing through the capillary tube are detected. + + - *Signal acquisition*. Instability in the signal acquired for each channel are detected. In most cases it corresponds to flow rate surges and shifts. + + - *Dynamic range*. Values recorded in the upper limit (margin events) and negative outliers are removed. + +.. class:: infomark + +An HTML report with informative plots is generated. Users are advised to review the report and also:: + + 1. Eventually adjust the quality control parameters + 2. Discard the entire FCS file because of an unacceptable number of anomalies + 3. Program a flow cytometry maintenance because of recurrent issues + + +Parameters +'''''''''' +Default settings work well in the majority of cases. Setting customization may be needed to address properties of unique datasets. For example, high-dimensional FCS files may perform best with more tolerant setttings for signal acquisition checks. + +Example +''''''' +This section provides an example of a flowAI quality control html report with plots: + + +Flow rate check: anomalies are flagged with a green circle. In this instance a surge was detected and discarded as well as a shift from the median value later in the experiment. + +.. image:: ./static/images/flowtools/autoflowrate.png + +Signal acquistion check: Orange background (or yellow depending on the user's computer) highlights the stable region. Signal acquistion shifts are identified on a per channel basis and the largest region containing no anomalies is retained. + +.. image:: ./static/images/flowtools/autosignal.png + +Dynamic range check: red and blue lines reflect the detected number of events over time. The x-axis corresponds to that of the signal acquisition plot. + +.. image:: ./static/images/flowtools/margins.png + + ]]> + </help> + <citations> + <citation type="doi">10.1093/bioinformatics/btw191</citation> + </citations> +</tool>