view fimo.xml @ 5:eca84de658b0 draft

Uploaded
author iuc
date Fri, 17 Jun 2016 13:15:48 -0400
parents 0fce5521bb96
children cdcc4bb60bc3
line wrap: on
line source

<tool id="meme_fimo" name="FIMO" version="4.11.0.3">
    <description>- Scan a set of sequences for motifs.</description>
    <requirements>
        <requirement type="package" version="6.9.3">imagemagick</requirement>
        <requirement type="package" version="4.11.0">meme</requirement>
    </requirements>
    <command>
        <![CDATA[
            mkdir -p output &&
            python $__tool_directory__/fimo_wrapper.py
            --input_motifs "${input_motifs}"
            #if str($fasta_type.fasta_type_selector) == 'history':
                --input_fasta "${fasta_type.input_database}"
            #else:
                --input_fasta "${fasta_type.input_database.fields.path}"
            #end if
            --options_type $options_type.options_type_selector
            #if str($options_type.options_type_selector) == 'advanced':
                --alpha "${options_type.alpha}"
                #if str($options_type.bgfile_type.bgfile_type_selector) == 'motif_file':
                    --bgfile "motif-file"
                #elif str($options_type.bgfile_type.bgfile_type_selector) == 'bgfile':
                    --bgfile "${options_type.bgfile_type.bgfile}"
                #end if
                ${options_type.max_strand}
                --max_stored_scores "${options_type.max_stored_scores}"
                #if str($options_type.motifs_cond.motifs_selector) == 'no':
                    #for $motif in $options_type.motifs:
                        --motif "${motif.motif}"
                    #end for
                #end if
                --output_separate_motifs ${options_type.output_separate_motifs}
                --motif_pseudo "${options_type.motif_pseudo}"
                ${options_type.no_qvalue}
                ${options_type.norc}
                #if str($options_type.parse_genomic_coord_cond.parse_genomic_coord) == 'yes':
                    --parse_genomic_coord 'yes'
                    --remove_duplicate_coords ${options_type.parse_genomic_coord_cond.remove_duplicate_coords}
                #end if
                #if str($options_type.psp_cond.psp_selector) == 'yes':
                    --input_psp "${input_psp}"
                #end if
                #if str($options_type.prior_dist_cond.prior_dist_selector) == 'yes':
                    --input_prior_dist "${input_prior_dist}"
                #end if
                ${options_type.qv_thresh}
                --thresh ${options_type.thresh}
            #end if
            --output_path '${html_outfile.files_path}'
            --html_output "${html_outfile}"
            --interval_output '${interval_outfile}'
            --txt_output "${txt_outfile}"
            --xml_output "${xml_outfile}"
            --gff_output "${gff_outfile}"
        ]]>
    </command>
    <inputs>
        <param name="input_motifs" type="data" format="memexml" label="'MEME output' formatted file"/>
        <conditional name="fasta_type">
            <param name="fasta_type_selector" type="select" label="Source for sequence to search">
                <option value="cached">Locally Cached sequences</option>
                <option value="history" selected="true">Sequences from your history</option>
            </param>
            <when value="cached">
                <param name="input_database" type="select" label="Genome to search">
                    <options from_data_table="all_fasta" />
                </param>
            </when>
            <when value="history">
                <param format="fasta" name="input_database" type="data" label="Sequences"/>
            </when>
        </conditional>
        <conditional name="options_type">
            <param name="options_type_selector" type="select" label="Options configuration">
                <option value="basic" selected="true">Basic</option>
                <option value="advanced">Advanced</option>
            </param>
            <when value="basic" />
            <when value="advanced">
                <param name="alpha" type="float" value="1.0" min="0" max="1.0" label="Alpha parameter for calculating position specific priors" help="Represents the fraction of all transcription factor binding sites that are binding sites for the TF of interest (must be between 0 and 1)."/>
                <conditional name="bgfile_type">
                    <param name="bgfile_type_selector" type="select" label="Background file type">
                        <option value="default" selected="true">Use frequencies embedded in the application from the non-redundant database</option>
                        <option value="motif_file">Use frequencies from motif file</option>
                        <option value="bgfile">Use frequencies from background file</option>
                    </param>
                    <when value="motif_file" />
                    <when value="default" />
                    <when value="bgfile">
                        <param name="bgfile" type="data" format="txt" optional="True" label="Background Model" help="File must be in MEME background file format."/>
                    </when>
                </conditional>
                <param name="max_strand" label="If matches on both strands at a given position satisfy the output threshold, only report the match for the strand with the higher score" type="boolean" truevalue="--max_strand" falsevalue="" checked="False" help="If the scores are tied, the matching strand is chosen at random.  Leave unchecked to report both matches."/>
                <param name="max_stored_scores" type="integer" value="100000" label="Maximum number of scores that will be stored" />
                <conditional name="motifs_cond">
                    <param name="motifs_selector" type="select" label="Use all motifs in input?">
                        <option value="yes" selected="true">Yes</option>
                        <option value="no">No</option>
                    </param>
                    <when value="yes"/>
                    <when value="no">
                        <repeat name="motifs" title="Limit to specified motif">
                            <param name="motif" type="text" value="" label="Specify motif by id" />
                        </repeat>
                    </when>
                </conditional>
                <param name="output_separate_motifs" type="select" label="Output a dataset per motif?" help="Output a collection consisting of a separate dataset for each motif in the input">
                    <option value="no" selected="true">No</option>
                    <option value="yes">Yes</option>
                </param>
                <param name="motif_pseudo" type="float" value="0.1" label="Pseudocount to add to counts in motif matrix" help="A pseudocount to be added to each count in the motif matrix, after first multiplying by the corresponding background frequency"/>
                <param name="no_qvalue" label="Do not compute a q-value for each p-value" type="boolean" truevalue="--no_qvalue" falsevalue="" checked="True" help="The q-value calculation is that of Benjamini and Hochberg (1995)."/>
                <param name="norc" label="Do not score the reverse complement DNA strand" type="boolean" truevalue="--norc" falsevalue="" checked="False" />
                <conditional name="parse_genomic_coord_cond">
                    <param name="parse_genomic_coord" label="Check each sequence header for UCSC style genomic coordinates" type="select">
                        <option value="no" selected="true">No</option>
                        <option value="yes">Yes</option>
                    </param>
                    <when value="yes">
                        <param name="remove_duplicate_coords" type="boolean" truevalue="yes" falsevalue="no" label="Remove duplicate entries in unique GFF coordinates?" help="Remove duplicate entries as defined by the unique GFF coordinates" />
                    </when>
                    <when value="no"/>
                </conditional>
                <conditional name="psp_cond">
                    <param name="psp_selector" type="select" label="Use position-specific priors?">
                        <option value="no" selected="true">No</option>
                        <option value="yes">Yes</option>
                    </param>
                    <when value="no"/>
                    <when value="yes">
                        <param name="input_psp" type="data" format="txt" label="Select dataset containing position specific priors" help="Format must be meme psp or wiggle."/>
                    </when>
                </conditional>
                <conditional name="prior_dist_cond">
                    <param name="prior_dist_selector" type="select" label="Use binned distribution of priors?">
                        <option value="no" selected="true">No</option>
                        <option value="yes">Yes</option>
                    </param>
                    <when value="no"/>
                    <when value="yes">
                        <param name="input_prior_dist" type="data" format="txt" label="Select dataset containing binned distribution of priors"/>
                    </when>
                </conditional>
                <param name="qv_thresh" label="Use q-values for the output threshold" type="boolean" truevalue="--qv_thresh" falsevalue="" checked="False" help="Leave unchecked to use p-values for the output threshold."/>
                <param name="thresh" type="float" value="1e-4" label="Output threshold for displaying search results" help="Only search results with a p-value less than the threshold will be output. The threshold can be set to use q-values rather than p-values via the option above."/>
            </when>
        </conditional>
        <param name="non_commercial_use" label="I certify that I am not using this tool for commercial purposes." type="boolean" truevalue="NON_COMMERCIAL_USE" falsevalue="COMMERCIAL_USE" checked="False">
            <validator type="expression" message="This tool is only available for non-commercial use.">value == True</validator>
        </param>
    </inputs>
    <outputs>
        <data format="html" name="html_outfile" label="${tool.name} on ${on_string} (html)">
            <actions>
                <conditional name="fasta_type.fasta_type_selector">
                    <when value="cached">
                        <action type="metadata" name="dbkey">
                            <option type="from_data_table" name="all_fasta" column="1" offset="0">
                                <filter type="param_value" column="0" value="seq" keep="True"/>
                                <filter type="param_value" ref="fasta_type.input_database" column="1"/>
                            </option>
                        </action>
                    </when>
                </conditional>
            </actions>
        </data>
        <data format="tabular" name="txt_outfile" label="${tool.name} on ${on_string} (text)">
            <actions>
                <conditional name="fasta_type.fasta_type_selector">
                    <when value="cached">
                        <action type="metadata" name="dbkey">
                            <option type="from_data_table" name="all_fasta" column="1" offset="0">
                                <filter type="param_value" ref="fasta_type.input_database" column="0"/>
                            </option>
                        </action>
                    </when>
                </conditional>
            </actions>
        </data>
        <data format="tabular" name="gff_outfile" label="${tool.name} on ${on_string} (almost-gff)">
            <filter>options_type['output_separate_motifs'] == 'no'</filter>
            <actions>
                <conditional name="fasta_type.fasta_type_selector">
                    <when value="cached">
                        <action type="metadata" name="dbkey">
                            <option type="from_data_table" name="all_fasta" column="1" offset="0">
                                <filter type="param_value" ref="fasta_type.input_database" column="0"/>
                            </option>
                        </action>
                    </when>
                </conditional>
            </actions>
        </data>
        <collection name="motifs" type="list" label="Motifs: ${tool.name} on ${on_string}">
            <discover_datasets pattern="(?P&lt;designation&gt;.*)" directory="output" ext="gff" visible="false" />
            <filter>options_type['output_separate_motifs'] == 'yes'</filter>
        </collection>
        <data format="cisml" name="xml_outfile" label="${tool.name} on ${on_string} (xml)">
            <actions>
                <conditional name="fasta_type.fasta_type_selector">
                    <when value="cached">
                        <action type="metadata" name="dbkey">
                            <option type="from_data_table" name="all_fasta" column="1" offset="0">
                                <filter type="param_value" ref="fasta_type.input_database" column="0"/>
                            </option>
                        </action>
                    </when>
                </conditional>
            </actions>
        </data>
        <data format="interval" name="interval_outfile" label="${tool.name} on ${on_string} (interval)">
            <actions>
                <conditional name="fasta_type.fasta_type_selector">
                    <when value="cached">
                        <action type="metadata" name="dbkey">
                            <option type="from_data_table" name="all_fasta" column="1" offset="0">
                                <filter type="param_value" ref="fasta_type.input_database" column="0"/>
                            </option>
                        </action>
                    </when>
                </conditional>
            </actions>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input_motifs" value="meme_output_xml_1.xml" ftype="memexml"/>
            <param name="fasta_type_selector" value="history"/>
            <param name="input_database" value="phiX.fasta" ftype="fasta"/>
            <param name="options_type_selector" value="basic"/>
            <param name="non_commercial_use" value="True"/>
            <output name="html_outfile" file="fimo_output_html_1.html" compare="contains"/>
            <output name="txt_outfile" file="fimo_output_txt_1.txt" compare="contains"/>
            <output name="gff_outfile" file="fimo_output_almost-gff_1.txt" compare="contains"/>
            <output name="xml_outfile" file="fimo_output_xml_1.xml" compare="contains"/>
            <output name="interval_outfile" file="fimo_output_interval_1.txt" compare="contains"/>
        </test>
        <test>
            <param name="input_motifs" value="meme_output_xml_1.xml" ftype="memexml"/>
            <param name="fasta_type_selector" value="history"/>
            <param name="input_database" value="phiX.fasta" ftype="fasta"/>
            <param name="options_type_selector" value="advanced"/>
            <param name="non_commercial_use" value="True"/>
            <output name="html_outfile" file="fimo_output_html_2.html" compare="contains"/>
            <output name="txt_outfile" file="fimo_output_txt_2.txt" compare="contains"/>
            <output name="gff_outfile" file="fimo_output_almost-gff_2.txt" compare="contains"/>
            <output name="xml_outfile" file="fimo_output_xml_2.xml" compare="contains"/>
            <output name="interval_outfile" file="fimo_output_interval_2.txt" compare="contains"/>
        </test>
        <test>
            <param name="input_motifs" value="meme_output_xml_1.xml" ftype="memexml"/>
            <param name="fasta_type_selector" value="history"/>
            <param name="input_database" value="phiX.fasta" ftype="fasta"/>
            <param name="options_type_selector" value="advanced"/>
            <param name="parse_genomic_coord" value="--parse_genomic_coord"/>
            <param name="remove_duplicate_coords" value="yes"/>
            <param name="output_separate_motifs" value="yes"/>
            <param name="non_commercial_use" value="True"/>
            <output name="html_outfile" file="fimo_output_html_2.html" compare="contains"/>
            <output name="txt_outfile" file="fimo_output_txt_2.txt" compare="contains"/>
            <output_collection name="motifs" type="list">
                <element name="MOTIF1.gff" file="motif1.gff" ftype="gff" compare="contains"/>
            </output_collection>
            <output name="xml_outfile" file="fimo_output_xml_2.xml" compare="contains"/>
            <output name="interval_outfile" file="fimo_output_interval_2.txt" compare="contains"/>
        </test>
    </tests>
    <help>

.. class:: warningmark

**WARNING: This tool is only available for non-commercial use. Use for educational, research and non-profit purposes is permitted.
Before using, be sure to review, agree, and comply with the license.**

FIMO scans a sequence database for individual matches to each of the motifs you provide (sample output for motifs and sequences).
The name FIMO stands for 'Find Individual Motif Occurrences'.  The program searches a database of sequences for occurrences of
known motifs, treating each motif independently.  Motifs must be in MEME Motif Format.  You can define the statistical threshold
(p-value) for motifs and whether FIMO scans just the given sequences or their reverse complements (where applicable).

.. class:: infomark

For detailed information on FIMO, click here_, or view the license_.

.. _here: http://meme-suite.org/doc/fimo.html?man_type=web
.. _license: http://meme-suite.org/doc/copyright.html?man_type=web

    </help>
    <citations>
        <citation type="doi">10.1093/bioinformatics/btr064</citation>
    </citations>
</tool>