view rtsne.xml @ 1:53cfe6f313b3 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/tsne commit 9820a6eac7deb86db27eb85ba756ce0267c178e8
author iuc
date Tue, 22 Aug 2017 17:48:49 -0400
parents dd53658a0843
children
line wrap: on
line source

<tool id="tsne" name="rtsne" version="0.0.2">
    <requirements>
        <requirement type="package" version="0.13">r-rtsne</requirement>
        <requirement type="package" version="2.2.1">r-ggplot2</requirement>
    </requirements>
    <command detect_errors="exit_code"><![CDATA[
cat '$script' &&
Rscript '$script' &&
mv output_plot.pdf $output1
    ]]></command>
    <configfiles>
        <configfile name="script"><![CDATA[
## Setup R error handling to go to stderr
options(show.error.messages=F, error=function(){cat(geterrmessage(),file=stderr());q("no",1,F)})
loc <- Sys.setlocale("LC_MESSAGES", "en_US.UTF-8")

## Import library
library(Rtsne)
library(ggplot2)

all <- read.delim('$input1', sep='\t', header=TRUE)

data = $data
name = $name

#if $transform == "none"
    log.all <- all[, data:ncol(all)]
#elif $transform == "log2"
    log.all <- log2(all[, data:ncol(all)])
#elsif $transform == "log2plus1"
    log.all <- log2(1+all[, data:ncol(all)])
#elif $transform == "log10"
    log.all <- log(all[, data:ncol(all)])
#elif $transform == "log10plus1"
    log.all <- log(1+all[, data:ncol(all)])
#end if

## Show/hide legend
#if $legend == "yes"
    gg_legend = NULL
#else
    gg_legend = theme(legend.position="none")
#end if

set.seed($seed) ## Sets seed for reproducibility
tsne_out <- Rtsne(as.matrix(log.all[,1:ncol(log.all)]), perplexity=$perp, theta=$theta) ## Run TSNE

embedding <- as.data.frame(tsne_out\$Y)
embedding\$Class <- as.factor(sub("Class_", "", all[,name]))

ggplot(embedding, aes(x=V1, y=V2, color=Class)) +
     geom_point(size=1.25) + 
     gg_legend +
     xlab("") +
     ylab("") +
     ggtitle('$title')

ggsave(file='output_plot.pdf')
dev.off()

        ]]></configfile>
    </configfiles>

    <inputs>
        <param name="input1" type="data" format="tabular"
            label="Tabular input dataset"
            help="Input should have column headers with an identifier column followed by consencutive numerical columns used for clustering"/>
        <param name="title" type="text" format="txt" label="Plot title"/> 
        <param name="seed" value="42.0" type="float" label="Seed value for reproducibiity" help="Set to 42 as default" />
        <param name="perp" value="10.0" type="float" label="perplexity"/> 
        <param name="theta" value="1.0" type="float" label="theta"/> 
        <param name="name" value="1" type="data_column" data_ref="input1"
            label="The column with the ID to use in grouping (or just an ID if plotting invdividuals)"/> 
        <param name="data" value="2" type="data_column" data_ref="input1"
            label="The column that contains the first numerical data"/> 
        <param name="transform" type="select" label="Advanced - log transformation">
            <option value="none">Plot the data as it is</option>
            <option value="log2">Log2(value) transform my data</option>
            <option value="log2plus1">Log2(value+1) transform my data</option>
            <option value="log10">Log10(value) transform my data</option>
            <option value="log10plus1">Log10(value+1) transform my data</option>
        </param>

        <param name="legend" type="select" label="Legend options">
            <option value="yes">Include legend on plot</option>
            <option value="no">Hide legend</option>
        </param>
    </inputs>
    <outputs>
        <data name="output1" format="pdf" from_work_dir="Rplot.pdf"/>
    </outputs>
    <tests>
        <test>
            <param name="input1" value="mtcars.txt"/>
            <param name="transform" value="none"/>
            <param name="perp" value="10.0"/>
            <output name="output1" file="Rplot.pdf"/>
        </test>
    </tests>
    <help><![CDATA[
T-distributed Stochastic Neighbor Embedding implementation by Van der Maaten (see <https://github.com/lvdmaaten/bhtsne/>
for more information on the original implementation).

Your data should be in tabular format. Objects in rows will be clustered according to the observations in columns.
Labels for objects can be assigned in the tool form by providing the column number of the identifier you wish to use.
Additionaly, the first column containing numeric data should be provided to the tool form. 

    ]]></help>
    <citations>
        <citation type="bibtex">
@Manual{,
    title = {{Rtsne}: T-Distributed Stochastic Neighbor Embedding using
      Barnes-Hut Implementation},
    author = {Jesse H. Krijthe},
    year = {2015},
    note = {R package version 0.13},
    url = {https://github.com/jkrijthe/Rtsne},
  }
        </citation>
    </citations>
</tool>