view gprofiler_gost.xml @ 0:51916b7025ba draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/gprofiler/ commit ed9b518a6aaf6a5aada47e39c039f6936e41b290"
author iuc
date Thu, 14 Nov 2019 06:00:39 -0500
parents
children
line wrap: on
line source

<?xml version="1.0"?>
<tool id="gprofiler_gost" name="gProfiler GOSt" version="@VERSION@">
    <description>performs functional enrichment analysis of gene lists</description>
    <macros>
        <import>macros.xml</import>
    </macros>
    <edam_topics>
        <edam_topic>topic_0091</edam_topic>
    </edam_topics>
    <edam_operations>
        <edam_operation>operation_2436</edam_operation>
    </edam_operations>
    <expand macro="requirements"></expand>
    <expand macro="version_command" />
    <command detect_errors="aggressive">Rscript $script_file</command>
    <configfiles>
        <configfile name="script_file"><![CDATA[

options( show.error.messages=F, error = function () { cat( geterrmessage(), file=stderr() ); q( "no", 1, F ) } )
loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")

suppressPackageStartupMessages({
    library("gprofiler2")
})

set_user_agent(paste(get_user_agent(), "galaxy"))
sessionInfo()

#if $tool_settings.base_url
    set_base_url('${tool_settings.base_url}')
#end if

#if $advanced_options.custom_bg
    custom_bg <- scan('${$advanced_options.custom_bg}', character(), quote = "")
#else
    custom_bg = NULL
#end if

query <- scan('${input.file_name}', character(), quote = "")

sources <- c()

#if $data_sources.go_sources
    #for $source in $data_sources.go_sources
        #if $source
            sources <- c(sources, '$source')
        #end if
    #end for
#end if

#if $data_sources.bp_sources
    #for $source in $data_sources.bp_sources
        #if $source
            sources <- c(sources, '$source')
        #end if
    #end for
#end if

#if $data_sources.reg_sources
    #for $source in $data_sources.reg_sources
        #if $source
            sources <- c(sources, '$source')
        #end if
    #end for
#end if

#if $data_sources.proto_sources
    #for $source in $data_sources.proto_sources
        #if $source
            sources <- c(sources, '$source')
        #end if
    #end for
#end if

#if $data_sources.hp_sources
    sources <- c(sources, '$data_sources.hp_sources')
#end if

if (length(sources) == 0) {
    stop("No sources selected")
}


response <- gost( query
                , organism                    = '${organism.organism}'
                , ordered_query               = $ordered_query
                , significant                 = $advanced_options.significant
                , exclude_iea                 = $data_sources.exclude_iea
                , measure_underrepresentation = $advanced_options.measure_underrepresentation
                , evcodes                     = $advanced_options.evcodes
                , user_threshold              = $advanced_options.user_threshold
                , correction_method           = '${advanced_options.correction_method}'
                , domain_scope                = '${advanced_options.domain_scope}'
                , numeric_ns                  = '${advanced_options.numeric_ns}'
                , custom_bg                   = custom_bg
                , sources                     = sources
                )

cat('\nversion:\n')
response[['meta']][['version']]

cat('\ntimestamp:\n')
response[['meta']][['timestamp']]

cat('\nquery metadata:\n')
response[['meta']][['query_metadata']]

output <- response[['result']]
output[['parents']] <- vapply(output[['parents']], paste, collapse = ",", character(1L))
output.colnames = colnames(output)
write.table(output, file='${output}', quote=FALSE, sep='\t', row.names = FALSE, col.names = output.colnames)

#if $tool_settings.export_plot
    plot <- gostplot(response, capped = TRUE, interactive = TRUE)
    htmlwidgets::saveWidget(plotly::as_widget(plot), '${plot}', selfcontained = TRUE)
#end if

        ]]></configfile>
    </configfiles>
    <inputs>
        <expand macro="input" />
        <expand macro="organism" />

        <param name="ordered_query" type="boolean" checked="false" truevalue="T" falsevalue="F" label="Ordered query" help="When input gene lists are ranked this option may be used to get GSEA style p-values." />

        <section name="advanced_options" title="Advanced options" expanded="false">
            <param name="significant" type="boolean" checked="true" truevalue="T" falsevalue="F" label="Significant only" help="Whether all or only statistically significant results should be returned." />
            <param name="measure_underrepresentation" type="boolean" checked="false" truevalue="T" falsevalue="F" label="Measure underrepresentation" />
            <param name="evcodes" type="boolean" checked="false" truevalue="T" falsevalue="F" label="Evidence codes" help="Include evidence codes to the results. Note that this can decrease performance and make the query slower. In addition, a column ’intersection’ is created that contains the gene id-s that intersect between the query and term." />
            <param name="user_threshold" type="float" value="0.05" label="User threshold" help="Custom p-value threshold, results with a larger p-value are excluded." />
            <param name="correction_method" type="select" multiple="false" label="Correction method" help="The algorithm used for multiple testing correction.">
                <option selected="true" value="gSCS">g:SCS threshold</option>
                <option value="bonferroni">Bonferroni correction</option>
                <option value="fdr">Benjamini-Hochberg FDR</option>
            </param>
            <param name="domain_scope" type="select" multiple="false" label="Statistical domain scope" help="Effective genomic landscape for statistical testing.">
                <option selected="true" value="annotated">Only annotated genes</option>
                <option value="known">All known genes</option>
                <option value="custom">Custom</option>
            </param>
            <param name="custom_bg" type="data" format="tabular" optional="true" label="Custom background" />
            <param name="numeric_ns" type="text" value="" optional="true" label="Numeric IDs treated as" help="The prefix for fully numeric IDs. Check the “Resources” section below for the complete list of supported namespaces. E.g., ENTREZGENE_ACC, WIKIGENE_ACC." />
        </section>

        <section name="data_sources" title="Data sources" expanded="false">
            <param name="go_sources" type="select" multiple="true" display="checkboxes" optional="true" label="Gene Ontology">
                <option selected="true" value="GO:BP">GO biological process</option>
                <option selected="true" value="GO:MF">GO molecular function</option>
                <option selected="true" value="GO:CC">GO cellular component</option>
            </param>

            <param name="exclude_iea" type="boolean" checked="false" truevalue="T" falsevalue="F" label="No electronic GO annotations" help="Exclude electronic GO annotations (IEA evidence code)." />

            <param name="bp_sources" type="select" multiple="true" display="checkboxes" optional="true" label="biological pathways">
                <option selected="true" value="KEGG">KEGG</option>
                <option selected="true" value="REAC">Reactome</option>
                <option selected="true" value="WP">WikiPathways</option>
            </param>

            <param name="reg_sources" type="select" multiple="true" display="checkboxes" optional="true" label="regulatory motifs in DNA">
                <option selected="true" value="TF">TRANSFAC</option>
                <option selected="true" value="MIRNA">miRTarBase</option>
            </param>

            <param name="proto_sources" type="select" multiple="true" display="checkboxes" optional="true" label="protein databases">
                <option selected="true" value="HPA">Human Protein Atlas</option>
                <option selected="true" value="CORUM">CORUM</option>
            </param>

            <param name="hp_sources" type="select" multiple="true" display="checkboxes" optional="true" label="Human phenotype ontology">
                <option selected="true" value="HP">HP</option>
            </param>
        </section>

        <expand macro="tool_settings">
            <param name="export_plot" type="boolean" checked="false" truevalue="T" falsevalue="F" label="Export plot" help="An interactive Plotly graph will be created alongside the tabular output. The plot is very similar to the one shown in the g:GOSt web tool." />
        </expand>
    </inputs>
    <outputs>
        <data name="output" format="tabular" label="${tool.name} on ${on_string}" />

        <data name="plot" format="html" label="${tool.name} on ${on_string} (plot)">
            <filter>tool_settings['export_plot']</filter>
        </data>
    </outputs>
    <tests>
        <test>
            <param name="input" ftype="txt" value="example_query.txt" />
            <param name="base_url" value="http://biit.cs.ut.ee/gprofiler_archive3/e94_eg41_p11" />
            <output name="output" ftype="tabular" file="example_gost_results.txt" />
        </test>
        <test expect_num_outputs="2">
            <param name="input" ftype="txt" value="example_query_2.txt" />
            <param name="base_url" value="http://biit.cs.ut.ee/gprofiler_archive3/e94_eg41_p11" />

            <conditional name="organism">
                <param name="organism" value="mmusculus" />
            </conditional>

            <param name="ordered_query" value="T" />
            <param name="significant" value="F" />
            <param name="measure_underrepresentation" value="T" />
            <param name="evcodes" value="T" />
            <param name="user_threshold" value="0.1" />
            <param name="domain_scope" value="known" />
            <param name="correction_method" value="fdr" />
            <param name="numeric_ns" value="WIKIGENE_ACC" />

            <section name="data_sources">
                <param name="go_sources" value="GO:MF,GO:CC" />
                <param name="exclude_iea" value="T" />
                <param name="bp_sources" />
                <param name="reg_sources" />
                <param name="proto_sources" />
                <param name="hp_sources" />
            </section>

            <param name="export_plot" value="T" />

            <output name="output" ftype="tabular" file="example_gost_results_2.txt" sort="true" />
        </test>
    </tests>
    <help><![CDATA[
**What it does**
  This tool wraps gprofiler2 R package which performs a request to g:Profiler g:GOSt tool through its API.
    g:Profiler g:GOSt performs functional enrichment analysis of gene lists. The output is a table with the results
    and (optionally) a publication ready plot similar to the one shown in the g:GOSt web tool.

-----

@REFERENCES@

    ]]></help>
    <expand macro="citations"></expand>
</tool>